Question

Pour un projet ai-classe que je dois mettre en œuvre un algorithme d'apprentissage de renforcement qui bat un simple jeu de tetris. Le jeu est écrit en Java et nous avons le code source. Je sais que les bases de la théorie d'apprentissage par renforcement, mais me demandais si quelqu'un dans la communauté SO avait les mains sur l'expérience avec ce genre de chose.

  1. Quelles seraient vos lectures recommandées pour être une mise en œuvre de l'apprentissage renforcé dans un jeu de tetris?
  2. Y a-t-il des bons projets open source qui accomplissent des choses semblables qui seraient la peine de vérifier?

Edit:. Plus spécifique mieux, mais les ressources générales sur le sujet sont les bienvenus

Suivi:

Je pensais que ce serait bien si je posté un suivi.

Voici la solution (code et writeup) J'ai fini avec pour les futurs étudiants:)

.

papier / code

Était-ce utile?

La solution

Jetez un oeil à l'édition 2009 RL-compétition . L'un des domaines de problème est un jeu tetris . Il y avait un problème de tetris l'année précédente aussi. Voici le de finaliste pour la cinquième place cette année-là, qui va dans beaucoup de détails sur la façon dont l'agent a travaillé.

Autres conseils

TD-Gammon , gnubackgammon, ou tout autre projet similaire ont été massives succès dans les jeux.

Le livre de Sutton & Barto "Apprentissage par renforcement: Une introduction" a aussi un autre études de cas .

Ce n'est pas spécifique à l'apprentissage renforcé, mais Stanford a une grande série de conférences sur sur Youtube et iTunes.

Le lien est à la première conférence qui prend environ 30 minutes pour plonger dans le contenu.

Jute est une bibliothèque récente Java qui fournit des implémentations de nombreux algorithmes d'apprentissage de renforcement commun ainsi qu'un peu d'environnements et d'outils.

Cette question est vraiment vieux, mais pour tous ceux qui lisent ceci en 2018, je vous recommande fortement d'utiliser OpenAI Baselines si vous êtes intéressé par de solides références des algorithmes de RL existants. Ces algorithmes sont mis en œuvre par un groupe d'employés de OpenAI qui savent vraiment ce genre de choses, et ont été largement peaufiné et mises au point.

Pour être juste, vous n'avez pas besoin ces derniers pour Tetris, mais aujourd'hui je pense aux questions de devoirs peut impliquer certains environnements plus sophistiqués.

https://github.com/openai/baselines

Je suggère d'apprendre RL4J qui est basé sur Java. J'utilisais et je suis étonné de voir comment les choses fonctionne bien et vous pouvez apprendre même les réseaux de LSMC dans un algorithme d'apprentissage par renforcement avec algorithme Acteur critique (appelé A3C)

Voici le lien: https://github.com/deeplearning4j/dl4j-examples/blob / maître / rl4j-exemples /

J'ai remarqué que cette question est tout à fait obsolète (10 ans) et une collection de cadres de RL modernes et des environnements pourrait être utile ici. J'ai créé repo GitHub pour cela et l'intention de le mettre à jour régulièrement.

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

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top