Pregunta

Para un proyecto de clase IA que necesito para implementar un algoritmo de aprendizaje por refuerzo, que es mejor que un simple juego de Tetris. El juego está escrito en Java y tenemos el código fuente. Sé que los fundamentos de la teoría del aprendizaje de refuerzo, pero me preguntaba si alguien en la comunidad SO tenía las manos en la experiencia con este tipo de cosas.

  1. ¿Cuáles serían sus lecturas recomendadas para ser una implementación de aprendizaje reforzado en un juego de Tetris?
  2. ¿Hay buenas proyectos de código abierto que logran cosas similares que serían vale la pena mirar?

Editar:. Cuanto más específico sea el mejor, pero los recursos generales sobre el tema son bienvenidos

Seguimiento:

pensó que sería bueno si he publicado un seguimiento.

Aquí está la solución (código y valoración crítica) que terminó con para cualquier estudiante futuras:)

.

Papel / Código

¿Fue útil?

Solución

Tome una mirada en el 2009 RL-competencia . Uno de los dominios del problema es una juego de Tetris . Hubo un problema tetris el año anterior también. Aquí está la de 52 páginas informe final desde el quinto puesto finalista de ese año, que entra en muchos detalles acerca de cómo funcionaba el agente.

Otros consejos

El libro electrónico Heaton Investigación es bastante bueno explicar los conceptos de redes neuronales (con código). El capítulo 4 está dedicado al aprendizaje de las máquinas y los diversos métodos de entrenamiento para sus redes. Hay una descarga de las aplicaciones de biblioteca y de la muestra para que usted pueda mirar.

Aquí es un buen libro sobre el tema:

aprendizaje automático y minería de datos: Introducción a los principios y algoritmos
por Igor Kononenko, Matjaz Kukar (junio de 2007)

También echa un vistazo a estos proyectos de código abierto:

TD-Gammon , gnubackgammon, o cualquier otro proyecto similar eran masiva éxitos en los juegos.

Sutton y Barto del libro "aprendizaje por refuerzo: Una introducción" también tiene alguna otra Casos de estudio .

Esto no es específico de aprendizaje reforzado, pero Stanford tiene una gran serie de conferencias sobre href="http://www.youtube.com/watch?v=UzxYlbK2c7E" en Youtube e iTunes.

El enlace es a la primera conferencia que dura aproximadamente 30 minutos para sumergirse en el contenido.

arpillera es una biblioteca reciente de Java que proporciona implementaciones de muchos algoritmos de aprendizaje de refuerzo común, así como una unos entornos y herramientas útiles.

Esta pregunta es muy viejo, pero para cualquiera que lea esto en 2018, yo recomiendo que lo use OpenAI líneas de base si está interesado en las referencias sólidas de algoritmos RL existentes. Estos algoritmos son ejecutadas por un grupo de empleados de OpenAI que realmente saben estas cosas, y han sido ampliamente afinado y depurado.

Para ser justos, no es necesario para estos Tetris, pero hoy en día lo sospecha preguntas de la tarea puede implicar algunos ambientes más sofisticados.

https://github.com/openai/baselines

Yo sugeriría que aprender RL4J que está basado en Java. Yo estaba usando esto y me sorprendió cómo funcionan las cosas sin problemas y se puede aprender incluso redes LSTM en un refuerzo algoritmo con el algoritmo de aprendizaje crítico Actor (llamado A3C)

Aquí está el enlace: https://github.com/deeplearning4j/dl4j-examples/blob / master / rl4j-ejemplos /

Me di cuenta de que esta pregunta es bastante anticuado (10 años) y que una colección de marcos RL modernos y ambientes podría ser útil aquí. He creado GitHub repo para esto y la intención de actualizarlo regularmente.

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

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top