Aprendizagem por Reforço: Uma Introdução
Replicação Python para o livro Reinforcement Learning: An Introduction (2ª edição) de Sutton & Barto
Se você tiver alguma confusão sobre o código ou quiser relatar um bug, abra um problema em vez de me enviar um e-mail diretamente e, infelizmente, não tenho respostas de exercícios para o livro.
Conteúdo
Capítulo 1
- Jogo da velha
Capítulo 2
- Figura 2.1: Um problema de bandido exemplar do banco de testes de 10 braços
- Figura 2.2: Desempenho médio de métodos de valor de ação ávidos por épsilon no ambiente de teste de 10 braços
- Figura 2.3: Estimativas iniciais otimistas do valor da ação
- Figura 2.4: Desempenho médio da seleção de ação UCB na plataforma de teste de 10 braços
- Figura 2.5: Desempenho médio do algoritmo gradiente bandido
- Figura 2.6: Um estudo de parâmetros dos vários algoritmos bandidos
Capítulo 3
- Figura 3.2: Exemplo de grade com política aleatória
- Figura 3.5: Soluções ótimas para o exemplo gridworld
Capítulo 4
- Figura 4.1: Convergência da avaliação iterativa de políticas em um pequeno mundo em rede
- Figura 4.2: O problema do aluguel de carro de Jack
- Figura 4.3: A solução para o problema do jogador
Capítulo 5
- Figura 5.1: Funções de valor de estado aproximadas para a política de blackjack
- Figura 5.2: A política ideal e a função de valor de estado para o blackjack encontrada por Monte Carlo ES
- Figura 5.3: Amostragem de importância ponderada
- Figura 5.4: Amostragem de importância ordinária com estimativas surpreendentemente instáveis
Capítulo 6
- Exemplo 6.2: Passeio aleatório
- Figura 6.2: Atualização em lote
- Figura 6.3: Sarsa aplicado ao mundo com grade ventosa
- Figura 6.4: A tarefa de caminhar pelo penhasco
- Figura 6.6: Desempenho provisório e assintótico dos métodos de controle de TD
- Figura 6.7: Comparação entre Q-learning e Double Q-learning
Capítulo 7
- Figura 7.2: Desempenho de métodos TD de n etapas em caminhada aleatória de 19 estados
Capítulo 8
- Figura 8.2: Curvas médias de aprendizado para agentes Dyna-Q variando no número de etapas de planejamento
- Figura 8.4: Desempenho médio dos agentes Dyna em uma tarefa de bloqueio
- Figura 8.5: Desempenho médio dos agentes Dyna em uma tarefa de atalho
- Exemplo 8.4: A varredura priorizada reduz significativamente o tempo de aprendizagem na tarefa do labirinto Dyna
- Figura 8.7: Comparação da eficiência das atualizações esperadas e de amostra
- Figura 8.8: Eficiência relativa de diferentes distribuições de atualização
Capítulo 9
- Figura 9.1: Algoritmo Gradiente de Monte Carlo na tarefa de passeio aleatório de 1000 estados
- Figura 9.2: Algoritmo TD semigradiente de n etapas na tarefa de passeio aleatório de 1000 estados
- Figura 9.5: Base de Fourier versus polinômios na tarefa de passeio aleatório de 1000 estados
- Figura 9.8: Exemplo do efeito da largura do recurso na generalização inicial e na precisão assintótica
- Figura 9.10: Ladrilhos únicos e múltiplos na tarefa de passeio aleatório de 1000 estados
Capítulo 10
- Figura 10.1: A função cost to go para a tarefa Mountain Car em uma corrida
- Figura 10.2: Curvas de aprendizado para Sarsa semigradiente na tarefa Mountain Car
- Figura 10.3: Desempenho de uma etapa versus várias etapas do Sarsa semigradiente na tarefa Mountain Car
- Figura 10.4: Efeito do alfa en no desempenho inicial do Sarsa semigradiente de n etapas
- Figura 10.5: Sarsa semigradiente diferencial na tarefa de enfileiramento de controle de acesso
Capítulo 11
- Figura 11.2: Contra-exemplo de Baird
- Figura 11.6: O comportamento do algoritmo TDC no contraexemplo de Baird
- Figura 11.7: O comportamento do algoritmo ETD em expectativa no contraexemplo de Baird
Capítulo 12
- Figura 12.3: Algoritmo de retorno λ off-line em passeio aleatório de 19 estados
- Figura 12.6: Algoritmo TD(λ) em caminhada aleatória de 19 estados
- Figura 12.8: Algoritmo TD(λ) on-line verdadeiro em caminhada aleatória de 19 estados
- Figura 12.10: Sarsa(λ) com substituição de traços no Mountain Car
- Figura 12.11: Comparação resumida dos algoritmos Sarsa(λ) no Mountain Car
Capítulo 13
- Exemplo 13.1: Corredor curto com ações alternadas
- Figura 13.1: REINFORCE no mundo da rede de corredores curtos
- Figura 13.2: REINFORCE com linha de base no mundo da grade de corredor curto
Ambiente
- píton 3.6
- entorpecido
- matplotlib
- nascido no mar
- tqdm
Uso
Todos os arquivos são independentes
python any_file_you_want.py
Contribuição
Se você quiser contribuir com alguns exemplos ausentes ou corrigir alguns bugs, sinta-se à vontade para abrir um problema ou fazer uma solicitação pull.