|
Grado en Ingeniería Informática |
TRABAJOS FIN DE GRADO curso: 2019-20
Aplicación de Deep Reinforcement Learning a un juego real |
Tecnologías Específicas
Computación
Descripcion y Objetivos
Este trabajo está fundamentado en aprendizaje automático, y en concreto, mediante el uso de técnicas ‘deep’, que actualmente experimentan un gran auge en el mundo científico y tecnológico. En particular, se abordará un problema novedoso dentro de la IA en juegos y el aprendizaje por refuerzo cuyo objetivo es aplicar la reciente técnica Deep Reinforcement Learning al aprendizaje en juegos. Éstos siempre han servido para optimizar algoritmos novedosos, aprovechando su naturaleza abstracta, acotada y un conjunto de reglas definidas.
El aprendizaje por refuerzo, también conocido como reinforcement learning en inglés, es un área específica del aprendizaje automático (machine learning). Se trabaja con la idea de que un “agente” realiza determinadas acciones dentro de un entorno, el cual le retorna un estado adquirido y una recompensa (que puede ser positiva o negativa). Basándose en su experiencia y las recompensas obtenidas, el agente puede por tanto aprender comportamientos que maximicen la utilidad. Q-Learning se corresponde con el algoritmo clásico, que recientemente ha sido extendido a Deep Q-Learning donde se emplean redes neuronales en lugar de tablas (que serían inviables en algunos casos reales) para trabajar con las entradas y salidas a partir de la realización de acciones desde un estado en particular. Ha demostrado una buena capacidad para juegos como snake. En este proyecto se pretende aplicar este paradigma a otro juego. Planteamos inicialmente el conocido juego Tetris, si bien durante el desarrollo del proyecto, el juego podría diferir a otro que pudiera resultar de mayor interés y ajuste, circunstancia que se sabría tras realizar las fases iniciales de análisis y estudio de adecuación. Cuando finalice el mismo, el código y los resultados se pondrán en un repositorio público para que quede a la disposición de la comunidad investigadora.
Por tanto, los objetivos principales de este trabajo son el conocimento de una técnica de computación avanzada y de vanguardia como es el algoritmo Depp Q-Learning, y ser capaz de aplicarlo a un problema/juego real. Además de la implemebtación, la estudiante tendrá que realizar una experimentación, que conlleve un estudio y comparativa entre diferentes configuraciones. Finalmente, a partir los resultados, se realizará un análisis, del cual esperamos poder extraer conclusiones interesantes.
Metodología y Competencias
El desarrollo de este trabajo conlleva distintas tareas/fases:
1. Estudio de la técnica deep reinforcement learning, y su aplicación al problema de snake, donde ha demostrado buenos resultados.
2. Caracterización del juego escogido (inicialmente Tetris)
3. Adaptación de Deep-RL al juego escogido en el apartado 2. Si esta caracterización vemos que no es compatible con la técnica, eligiríamos otro juego y volveríamos a la fase 2.
4. Aplicar el código/algoritmo al juego, y estudiar su comportamiento mediante diferentes experimentaciones.
5. Análisis de los resultados.
Este TFG permite completar las competencias específicas [CM1], [CM5] y [CM7] de la Intensificación de Computación, es decir, se trabajarán principalmente (en distinto grado) las siguientes competencias específicas de la tecnología de computación:
[CM1] Capacidad para tener un conocimiento profundo de los principios fundamentales y modelos de la computación y saberlos aplicar para interpretar, seleccionar, valorar, modelar, y crear nuevos conceptos, teorías, usos y desarrollos tecnológicos relacionados con la informática.
[CM5] Capacidad para adquirir, obtener, formalizar y representar el conocimiento humano en una forma computable para la resolución de problemas mediante un sistema informático en cualquier ámbito de aplicación, particularmente los relacionados con aspectos de computación, percepción y actuación en ambientes o entornos inteligentes.
[CM7] Capacidad para conocer y desarrollar técnicas de aprendizaje computacional y diseñar e implementar aplicaciones y sistemas que las utilicen, incluyendo las dedicadas a extracción automática de información y conocimiento a partir de grandes volúmenes de datos.
Medios a utilizar
Recursos online, ya que este proyecto conlleva una primera etapa de documentación, posteriormente una fase de diseño del problema y estudio de adecuación del problema a la técnica.
Se tendrá que escribir el código necesario (posiblemente en Python) para desarrollar el aprendizaje, el cual muy probablemente va a suponer el uso de tecnologías como TensorFlow o Keras.
Se necesitaría el uso de GPUs, que en principio se puede probar con la extensión de Google Colaboratory, pero que en momentos puntuales podría necesitar de la Tesla dedicada a Deep Learning (laboratorio SIMD).
Inicialmente, lo imprescindible sería un PC de características estándar y con conexión a Intenet.
Bibliografía
- Arulkumaran, K.; Deisenroth, M. P.; Brundage, M.; Bharath, A. A. (November 2017). "Deep Reinforcement Learning: A Brief Survey". IEEE Signal Processing Magazine. 34 (6): 26–38. arXiv:1708.05866. doi:10.1109/MSP.2017.2743240. ISSN 1053-5888.
- Mnih, Volodymyr; et al. (December 2013). Playing Atari with Deep Reinforcement Learning (PDF). NIPS Deep Learning Workshop 2013.
- Francois-Lavet, Vincent; Henderson, Peter; Islam, Riashat; Bellemare, Marc G.; Pineau, Joelle (2018). "An Introduction to Deep Reinforcement Learning".
Web:
- https://towardsdatascience.com/how-to-teach-an-ai-to-play-games-deep-reinforcement-learning-28f9b920440a
- https://www.freecodecamp.org/news/an-introduction-to-deep-q-learning-lets-play-doom-54d02d8017d8/
Tutor FLORES GALLEGO, MARIA JULIA | Alumno JIMÉNEZ FERNÁNDEZ, LUNA |
| |