Pergunta

projeto

Para um ai-classe Eu preciso implementar um algoritmo de aprendizado por reforço que bate um simples jogo de tetris. O jogo é escrito em Java e temos o código-fonte. Eu sei o básico de reforço teoria da aprendizagem, mas queria saber se alguém na comunidade SO tinha as mãos na experiência com este tipo de coisa.

  1. O que seus leituras recomendadas ser para uma implementação reforçada aprendizagem em um jogo de tetris?
  2. Existem bons projetos de código aberto que realizam coisas semelhantes que seriam vale a pena conferir?

Edit:. Quanto mais específico melhor, mas os recursos gerais sobre o assunto são bem-vindas

Acompanhamento:

pensei que seria bom se eu postei uma continuação.

Aqui está a solução (código e writeup) acabei por quaisquer futuros estudantes:.)

Papel / Código

Foi útil?

Solução

Dê uma olhada em 2009 RL-competição. Um dos domínios de problemas é um tetris jogo . Houve um problema tetris no ano anterior também. Aqui está o 52 páginas relatório final partir finalista quinto lugar daquele ano, que entra em muitos detalhes sobre como o agente trabalhava.

Outras dicas

O Heaton Research ebook é muito bom para explicar conceitos de redes neurais (com código). Capítulo 4 é dedicado ao aprendizado de máquina e os vários métodos de treinamento para suas redes. Há uma biblioteca para download e aplicativos de amostra para você olhar.

Aqui está um bom livro sobre o assunto:

Machine Learning e Data Mining: Introdução aos Princípios e Algoritmos
por Igor Kononenko, Matjaz Kukar (junho de 2007)

Também dê uma olhada nestes projetos de código aberto:

TD-Gammon , gnubackgammon, ou qualquer outro projeto semelhante eram enormes sucessos em jogos.

livro

O Sutton e Barto "Reinforcement Learning: An Introduction" também tem alguma outra Estudos de caso .

Isso não é específico para a aprendizagem reforçada, mas Stanford tem uma grande série de palestras sobre aprendizagem de máquina no Youtube e iTunes.

O link é para a primeira palestra que leva aproximadamente 30 minutos para mergulhar no conteúdo.

serapilheira é uma biblioteca Java recente que fornece implementações de muitos reforço comum algoritmos de aprendizagem, bem como um alguns ambientes e ferramentas úteis.

Esta questão é realmente velho, mas para quem lê este em 2018, eu recomendo que você use OpenAI linhas de base se você estiver interessado em referências sólidas de algoritmos RL existentes. Esses algoritmos são implementados por um grupo de funcionários da OpenAI que realmente conhecem essas coisas, e têm sido extensivamente aperfeiçoá-lo e depurado.

Para ser justo, você não precisa destes para Tetris, mas hoje em dia eu perguntas de casa suspeitos podem envolver alguns ambientes mais sofisticados.

https://github.com/openai/baselines

Eu sugeriria para aprender RL4J que é baseado java. Eu estava usando isso e fiquei espantado com como as coisas funciona sem problemas e você pode aprender redes LSTM mesmo em um algoritmo de aprendizado por reforço com o algoritmo Ator Critic (chamado A3C)

Aqui está o link: https://github.com/deeplearning4j/dl4j-examples/blob / mestre / rl4j-exemplos /

Eu notei que esta questão é bastante desatualizado (10 anos) e que uma coleção de quadros RL modernas e ambientes poderia ser útil aqui. Eu criei GitHub repo para isso e pretendemos atualizá-lo regularmente.

https://github.com/TheMTank/RL-code-resources

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top