Universidade Federal do Rio Grande do Sul - UFRGS
Programa de Pós-Graduação em Computação
Mestrado em Ciência da Computação
Disciplina: Aprendizagem de Máquina
Professor: Paulo Engel
Aluno: Mauricio Volkweis Astiazara
Comparação 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 célula inicial e chegar a uma célula final utilizando quatro ações possível:
mover-se para cima, mover-se para baixo, mover-se para direita e mover-se para esquerda. No
caminho existem alguma células que presentam um penhasco. Caso o agente “caia” no penhasco,
ele volta a célula inicial. A medida que o agente atua no ambiente, recebe recompensas (ou
reforços). As recompensas negativas podem ser interpretadas como punições. O agente recebe como
recompensa por chegar a célula final o valor zero. Por andar em outras células sem cair no penhasco
recebe -1. Por cair no penhasco, -100. Se o agente tentar sair dos limites da grade, ele recebe o
reforço mas fica na mesma célula. Existe um limite de passos que o agente pode dar: 100. Depois
disso, ele volta ao início. Os algoritmos implementados para serem comparados neste problema de
aprendizagem foram o Q-Learning tradicional e a derivação Q-Lambda de Watkins.
A linguagem de programação selecionada para a implementação foi C-Sharp. Foi realizada
uma modelagem conceitual da aplicação produzindo o seguinte diagrama de classes em notação
UML:
Na implementação, além dos parâmetros dos referidos algoritmos, foram tornados parâmetros
todas as especificações do problema do penhasco, tornando possível alterar valores de recompensas,
limites e também a própria grade, possibilitando assim a criação de mapas diferentes.
A seleção da ação a ser executada foi implementada em ambos os algoritmos utilizando uma
política épsilon-gulosa, onde épsilon representa a probabilidade do agente executar uma ação
randômica com objetivo exploratório em detrimento de uma ação gulosa (com a maior recompensa
conhecida). Se épsilon for zero o agente é totalmente guloso. Se épsilon for 1, o agente é
totalmente randômico. O código-fonte abaixo implementa esta seleção de ação.
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 atualização da tabela Q foi implementada através do código-
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 atualização da tabela Q foi implementada através do código-
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;
}
}
}
_proximaAcao = aLinha;
}
Foram realizadas 10 execuções dos algoritmos com as seguintes configurações: Q-Learning,
Q-Lambda com lambda = 1, Q-Lambda com lambda = 3 e Q-Lambda com lambda = 7. Os demais
parâmetros foram iguais para todas as execuções, com os valores épsilon=0,001, alfa=0,5 e
gama=0,5. O total de recompensa e o episódio médio de convergência para cada configuração são
mostrados na tabela abaixo:
Configuração Total de
Recompensa
Episódio Médio de
Convergência
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 são exibidos nos gráficos 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 Episódios
Com essa amostragem, que é muito baixa (apenas 10 execuções), aparentemente pode-se
concluir que o algoritmo Q-Lambda com o parâmetro lambda = 0 possui um desempenho muito
semelhante ao Q-Learning tradicional. Mas a medida que o parâmetro 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
Episódio Médio de Convergência em 10 Episódios

Mais conteúdo relacionado

PPTX
Curso Básico de Java - Aula 5
PDF
Lista funcões e recursividade
DOCX
Exercícios java 20 02
PDF
FIS146 - Informática Aplicada a Fı́sica
ODP
Curso de Delphi - Lógica de Programação 3
PPTX
8a. aula -_estrutura_de_controle_de_repeticao_-_while_java
DOCX
Concurso público informatica pref
PPTX
Aprendizagem por reforço
Curso Básico de Java - Aula 5
Lista funcões e recursividade
Exercícios java 20 02
FIS146 - Informática Aplicada a Fı́sica
Curso de Delphi - Lógica de Programação 3
8a. aula -_estrutura_de_controle_de_repeticao_-_while_java
Concurso público informatica pref
Aprendizagem por reforço

Mais de Mauricio Volkweis Astiazara (20)

PDF
Como Programar Melhor em Java: dicas e sites relacionados
PDF
Sistemas Imunológicos Artificiais
PDF
Sistema Imunológico Artificial para Predição de Fraudes e Furtos de Energia E...
PDF
Sistema Imunológico Artificial para Predição de Fraudes e Furtos de Energia E...
PDF
Classificador de Documentos Naïve Bayes
PDF
Visão Computacional
PDF
Sistema de Recomendação de Páginas sobre Saúde
PDF
Sistema de Recomendação de Páginas sobre Saúde
PDF
Processamento de Imagens
PDF
Percepção, Movimento e Ação
PDF
Memória e Aprendizagem
PDF
Gerência de Requisitos
DOC
Testes de Sistema
PPT
Telefonia Móvel
DOC
Telefonia Móvel
PPT
Realidade Virtual
PDF
Protótipo de Simulador de Elevadores
DOC
Protótipo de Simulador de Elevadores
PPT
Planejamento de Informática
DOC
Planejamento de Informática
Como Programar Melhor em Java: dicas e sites relacionados
Sistemas Imunológicos Artificiais
Sistema Imunológico Artificial para Predição de Fraudes e Furtos de Energia E...
Sistema Imunológico Artificial para Predição de Fraudes e Furtos de Energia E...
Classificador de Documentos Naïve Bayes
Visão Computacional
Sistema de Recomendação de Páginas sobre Saúde
Sistema de Recomendação de Páginas sobre Saúde
Processamento de Imagens
Percepção, Movimento e Ação
Memória e Aprendizagem
Gerência de Requisitos
Testes de Sistema
Telefonia Móvel
Telefonia Móvel
Realidade Virtual
Protótipo de Simulador de Elevadores
Protótipo de Simulador de Elevadores
Planejamento de Informática
Planejamento de Informática
Anúncio

Último (20)

PDF
Geoquímica_de_Solos_Apresentacao_Paulo[1].pdf
PPT
ciclos biogeoquímicos - QUÍMICA - ENSINO MÉDIO
PPTX
Aula Introdutória sobre Genéitca Molecular
PDF
Apresentação de Slides Corporativo Preto e Branco.pdf.pdf
PPTX
QUÍMICA - REAÇÕES DE OXIRREDUÇÃO - AULA -2
PDF
Folder sobre o histórico da biotecnologia.
PPTX
Teorias da Evolução. biologia, teorias de Darwin.
PDF
História da Psicologia Social - aulas 1, 2 e 3.pdf
PPT
Citologia - organelas-slides de introducao a citologia
PDF
SISTEMA CARDIOVASCULAR NAJSJSJAKDJSKAKDKKA
PPTX
Sistema_Digestorio_6ano_com_imagens.pptx
PPT
Introdução a psicologia - 11111111111111
PPTX
REAÇÕES DE OXIRREDUÇÃO.pptx - ENSINO MÉDIO
PPT
SLIDE- Morfologia da Folha (atualizado).pdf
PDF
Protocolo de Atenção Especializada do SUS
PPTX
GRUPO 11.pptx VULCANISMO E SEUS PRODUTOS
PPT
AAula 003 Citologia - organelas[1].pauapt
PPTX
Meios de cultura para Microbiologia.pptx
PDF
Exercícios de Cristalografia e Mineralogia Sistemática 4.pdf
PPTX
Ciências da Natureza para o ENEM (4).pptx
Geoquímica_de_Solos_Apresentacao_Paulo[1].pdf
ciclos biogeoquímicos - QUÍMICA - ENSINO MÉDIO
Aula Introdutória sobre Genéitca Molecular
Apresentação de Slides Corporativo Preto e Branco.pdf.pdf
QUÍMICA - REAÇÕES DE OXIRREDUÇÃO - AULA -2
Folder sobre o histórico da biotecnologia.
Teorias da Evolução. biologia, teorias de Darwin.
História da Psicologia Social - aulas 1, 2 e 3.pdf
Citologia - organelas-slides de introducao a citologia
SISTEMA CARDIOVASCULAR NAJSJSJAKDJSKAKDKKA
Sistema_Digestorio_6ano_com_imagens.pptx
Introdução a psicologia - 11111111111111
REAÇÕES DE OXIRREDUÇÃO.pptx - ENSINO MÉDIO
SLIDE- Morfologia da Folha (atualizado).pdf
Protocolo de Atenção Especializada do SUS
GRUPO 11.pptx VULCANISMO E SEUS PRODUTOS
AAula 003 Citologia - organelas[1].pauapt
Meios de cultura para Microbiologia.pptx
Exercícios de Cristalografia e Mineralogia Sistemática 4.pdf
Ciências da Natureza para o ENEM (4).pptx
Anúncio

Comparação de Algoritmos Baseados em Q-Learning

  • 1. Universidade Federal do Rio Grande do Sul - UFRGS Programa de Pós-Graduação em Computação Mestrado em Ciência da Computação Disciplina: Aprendizagem de Máquina Professor: Paulo Engel Aluno: Mauricio Volkweis Astiazara Comparação 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 célula inicial e chegar a uma célula final utilizando quatro ações possível: mover-se para cima, mover-se para baixo, mover-se para direita e mover-se para esquerda. No caminho existem alguma células que presentam um penhasco. Caso o agente “caia” no penhasco, ele volta a célula inicial. A medida que o agente atua no ambiente, recebe recompensas (ou reforços). As recompensas negativas podem ser interpretadas como punições. O agente recebe como recompensa por chegar a célula final o valor zero. Por andar em outras células sem cair no penhasco recebe -1. Por cair no penhasco, -100. Se o agente tentar sair dos limites da grade, ele recebe o reforço mas fica na mesma célula. Existe um limite de passos que o agente pode dar: 100. Depois disso, ele volta ao início. Os algoritmos implementados para serem comparados neste problema de aprendizagem foram o Q-Learning tradicional e a derivação Q-Lambda de Watkins. A linguagem de programação selecionada para a implementação foi C-Sharp. Foi realizada uma modelagem conceitual da aplicação produzindo o seguinte diagrama de classes em notação UML: Na implementação, além dos parâmetros dos referidos algoritmos, foram tornados parâmetros todas as especificações do problema do penhasco, tornando possível alterar valores de recompensas, limites e também a própria grade, possibilitando assim a criação de mapas diferentes. A seleção da ação a ser executada foi implementada em ambos os algoritmos utilizando uma
  • 2. política épsilon-gulosa, onde épsilon representa a probabilidade do agente executar uma ação randômica com objetivo exploratório em detrimento de uma ação gulosa (com a maior recompensa conhecida). Se épsilon for zero o agente é totalmente guloso. Se épsilon for 1, o agente é totalmente randômico. O código-fonte abaixo implementa esta seleção de ação. 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 atualização da tabela Q foi implementada através do código- 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 atualização da tabela Q foi implementada através do código- 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 execuções dos algoritmos com as seguintes configurações: Q-Learning, Q-Lambda com lambda = 1, Q-Lambda com lambda = 3 e Q-Lambda com lambda = 7. Os demais parâmetros foram iguais para todas as execuções, com os valores épsilon=0,001, alfa=0,5 e gama=0,5. O total de recompensa e o episódio médio de convergência para cada configuração são mostrados na tabela abaixo: Configuração Total de Recompensa Episódio Médio de Convergência 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 são exibidos nos gráficos 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 Episódios
  • 4. Com essa amostragem, que é muito baixa (apenas 10 execuções), aparentemente pode-se concluir que o algoritmo Q-Lambda com o parâmetro lambda = 0 possui um desempenho muito semelhante ao Q-Learning tradicional. Mas a medida que o parâmetro 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 Episódio Médio de Convergência em 10 Episódios