Comparação de Algoritmos Baseados em Q-Learning

download Comparação de Algoritmos Baseados em Q-Learning

of 4

  • date post

    28-Nov-2014
  • Category

    Science

  • view

    261
  • download

    3

Embed Size (px)

description

 

Transcript of Comparação de Algoritmos Baseados em Q-Learning

  • 1. Universidade Federal do Rio Grande do Sul - UFRGS Programa de Ps-Graduao em Computao Mestrado em Cincia da Computao Disciplina: Aprendizagem de Mquina Professor: Paulo Engel Aluno: Mauricio Volkweis Astiazara Comparao de Algoritmos Baseados em Q-Learning Para comparar dois algoritmos de aprendizagem baseados em Q-Learning foi utilizado o problema do Penhasco (Cliff-walking). Neste problema, um agente situado numa grade deve aprender a sair de uma clula inicial e chegar a uma clula final utilizando quatro aes possvel: mover-se para cima, mover-se para baixo, mover-se para direita e mover-se para esquerda. No caminho existem alguma clulas que presentam um penhasco. Caso o agente caia no penhasco, ele volta a clula inicial. A medida que o agente atua no ambiente, recebe recompensas (ou reforos). As recompensas negativas podem ser interpretadas como punies. O agente recebe como recompensa por chegar a clula final o valor zero. Por andar em outras clulas sem cair no penhasco recebe -1. Por cair no penhasco, -100. Se o agente tentar sair dos limites da grade, ele recebe o reforo mas fica na mesma clula. Existe um limite de passos que o agente pode dar: 100. Depois disso, ele volta ao incio. Os algoritmos implementados para serem comparados neste problema de aprendizagem foram o Q-Learning tradicional e a derivao Q-Lambda de Watkins. A linguagem de programao selecionada para a implementao foi C-Sharp. Foi realizada uma modelagem conceitual da aplicao produzindo o seguinte diagrama de classes em notao UML: Na implementao, alm dos parmetros dos referidos algoritmos, foram tornados parmetros todas as especificaes do problema do penhasco, tornando possvel alterar valores de recompensas, limites e tambm a prpria grade, possibilitando assim a criao de mapas diferentes. A seleo da ao a ser executada foi implementada em ambos os algoritmos utilizando uma
  • 2. poltica psilon-gulosa, onde psilon representa a probabilidade do agente executar uma ao randmica com objetivo exploratrio em detrimento de uma ao gulosa (com a maior recompensa conhecida). Se psilon for zero o agente totalmente guloso. Se psilon for 1, o agente totalmente randmico. O cdigo-fonte abaixo implementa esta seleo de ao. public Acao ObterAcao(int pEstado) { ItensQ itens = ObterItensQ(pEstado); ItemQ item; if (_sorteador.NextDouble() < _epsilon) { item=itens.Item(_sorteador.Next(itens.Total)); } else { item=itens.ObterMelhor(); } _ultimoSelecionado = item; return item.Acao; } Para o algoritmo Q-Learning, a atualizao da tabela Q foi implementada atravs do cdigo- fonte abaixo: public void ReceberRecompensa(double pRecompensa, int pNovoEstado) { ItensQ futuro = ObterItensQ(pNovoEstado); _ultimoSelecionado.Recompensa = _ultimoSelecionado.Recompensa + _alfa * (pRecompensa + _gama * futuro.ObterMelhor().Recompensa - _ultimoSelecionado.Recompensa); } Para o algoritmo Q-Lambda, a atualizao da tabela Q foi implementada atravs do cdigo- fonte abaixo: public void ReceberRecompensa(double pRecompensa, int pNovoEstado) { _proximoEstado = pNovoEstado; // a = _ultimoSelecionado // a' = aLinha // a* = aOtimo ItemQ aLinha = ObterAcaoPolitica(pNovoEstado); ItensQ futuro = _q.Item(pNovoEstado); ItemQ aOtima = futuro.ObterMelhor(); double Sigma = pRecompensa + _gama * aOtima.Recompensa - _ultimoSelecionado.Recompensa; _ultimoSelecionado.Erro++; foreach (ItensQ itens in _q) { foreach (ItemQ item in itens) { item.Recompensa = item.Recompensa + _alfa * Sigma * item.Erro; if (aLinha == aOtima) { item.Erro = _gama * _lambda * item.Erro; } else { item.Erro = 0; } }
  • 3. } _proximaAcao = aLinha; } Foram realizadas 10 execues dos algoritmos com as seguintes configuraes: Q-Learning, Q-Lambda com lambda = 1, Q-Lambda com lambda = 3 e Q-Lambda com lambda = 7. Os demais parmetros foram iguais para todas as execues, com os valores psilon=0,001, alfa=0,5 e gama=0,5. O total de recompensa e o episdio mdio de convergncia para cada configurao so mostrados na tabela abaixo: Configurao Total de Recompensa Episdio Mdio de Convergncia Q-Learning -65858 77,6 Q-Lambda com lambda = 0 -61401 78,1 Q-Lambda com lambda = 0.5 -62510 41,7 Q-Lambda com lambda = 1 -60950 29,1 Estes mesmos dados so exibidos nos grficos abaixo: Q-Learning Q-Lambda (0) Q-Lambda (0.5) Q-Lambda (1) -42000 -41000 -40000 -39000 -38000 -37000 -36000 -35000 -34000 Total de Recompensa em 10 Episdios
  • 4. Com essa amostragem, que muito baixa (apenas 10 execues), aparentemente pode-se concluir que o algoritmo Q-Lambda com o parmetro lambda = 0 possui um desempenho muito semelhante ao Q-Learning tradicional. Mas a medida que o parmetro lambda aumentado, o desempenho melhora. Com lambda = 1, o desempenho do Q-Lambda muito superior ao Q- Learning tradicional. Q-Learning Q-Lambda (0) Q-Lambda (0.5) Q-Lambda (1) 0 10 20 30 40 50 60 70 80 90 Episdio Mdio de Convergncia em 10 Episdios