Saltar al contenido principal

Q-Learning Tic Tac Toe

Una demostración del uso de técnicas de aprendizaje reforzado en videojuegos.

El aprendizaje automático ha tenido un auge espectacular en los últimos años. Se habla especialmente de las técnicas que permiten la existencia de la IA Generativa, especialmente en sus variedades de texto, imágenes y vídeo. Uno de los campos que más me interesan personalmente es su uso en cuestiones de gameplay, como método para crear entidades autónomas más creíbles en contextos jugables complejos. En este caso, decidí hacer una IA capaz de jugar al típico tres en raya con diferentes niveles de dificultad configurables.

Lista de jugadas y sus valores Q.

¿Qué es Q-Learning?

Q-Learning es una técnica de aprendizaje reforzado que permite aprender la política óptima para un proceso de decisión de Márkov finito dado, maximizando el valor de una “recompensa” en función del estado que toma.

Ejemplos de procesos de decisión de Markov son el tres en raya, el ajedrez o las damas, ya que el estado del juego contiene toda la información relevante para decidir el siguiente movimiento, aunque se puede aplicar a campos como la agricultura o las finanzas. La ventaja clave de usar Q-Learning es que no hace falta conocer explícitamente el proceso en concreto, solo basta con modelar la obtención de recompensa y los estados asociados.

Esto significa que no es necesario conocer las probabilidades de transición entre estados, sino únicamente observar el estado resultante y la recompensa obtenida tras cada acción.

Render final

Proceso de decisión de Márkov.

Aprendizaje reforzado aplicado a IAs para videojuegos

Una vez tenemos la IA entrenada para que tome las decisiones más óptimas, se puede implementar fácilmente que cometa “fallos” porcentualmente en función de la dificultad deseada para el jugador. Esto nos da un modelo altamente configurable para adecuarse a muchos niveles de dificultad, e incluso modificarlo dinámicamente de manera trivial.

Render final

Esquema del funcionamiento básico del Q-Learning.

Demostración del modelo entrenado en Unity.