Universidad de Castilla-La Mancha
 
Escuela Superior de Ingeniería Informática

 

  cambiar a curso:   2018-19   2020-21



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

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
 

 

Sindicación  Sindicación  Sindicación  Sindicación

Curso: 2019-20
© Escuela Superior de Ingeniería Informática
Edificio Infante Don Juan Manuel
Avda. de España s/n
02071 Albacete

informatica.ab@uclm.es
aviso legal
generar código QR de la página