El aprendizaje por refuerzo o reinforcement learning sigue siendo un reto en Inteligencia Artificial, con muchos campos por explorar. Básicamente, consiste en entrenar a agentes inteligentes que interaccionan con un entorno en base a acciones. Estas se repetirán y “reforzarán” en base a las recompensas que obtenga en agente, que pueden ser positivas o negativas.
Los videojuegos son un buen campo de pruebas para esta tecnología al contar con todos estos factores. Álvaro Barbero, Ainhoa Goñi, Juan Antonio Montesino y Alejandro Vaca, data scientists del Instituto de Ingeniería del Conocimiento (IIC), presentaron en un meetup organizado por el grupo MAD_RL su experiencia y avances en la competición de Connect X en Kaggle.
¿Cómo juega un agente inteligente a Connect X?
El equipo del IIC ya había hecho algunas pruebas en videojuegos con aprendizaje por refuerzo cuando surgió el reto de Kaggle en Connect X, el famoso juego del 4 en raya. En esta competición, la posición en el ranking de los participantes depende del score obtenido según el nivel de habilidad estimado de su agente inteligente, que juega contra otros oponentes.
La acción en este entorno consiste en elegir el número de columna en la que se coloca la ficha, que se repite hasta conseguir el 4 en raya. De hecho, las recompensas se dan al agente cuando finaliza el juego y no en cada acción: 1 punto si gana, -1 punto si pierde o 0 puntos si no quedan celdas vacías y, por tanto, el juego queda en empate.
Aunque parezca fácil, la competición tiene muchas restricciones: entregar solo un script, de un tamaño muy reducido, el agente solo debe devolver una acción y en menos de 5 segundos, el agente no puede almacenar información, etc.
¿Cómo adaptarse a estas condiciones? El equipo del IIC quería utilizar algunos de los algoritmos creados para otros videojuegos y adaptarlos a la competición. Una vez resueltas algunas de ellas, los agentes se entrenaron en un simulador contra una inteligencia artificial proporcionada por Kaggle, y después contra sí mismos, para así ir mejorando y poder presentarse a la competición real de Connect X. Sin embargo, los resultados obtenidos en el ranking resultaron ser mejorables.
Mejorar al agente de aprendizaje por refuerzo
En la competición, el agente de aprendizaje por refuerzo se encuentra con muchos tipos de oponentes y, por tanto, de estrategias. Y si está acostumbrado a un tipo de jugador, el del simulador, probablemente no obtenga los mejores resultados ante la variedad de comportamientos y experiencias que se le presentan.
Desde el IIC, se pensó en corregirlo creando experiencias diversas en una liga evolutiva. Esto es una competición de agentes propia para acercarlos a la realidad de Kaggle y que cada agente juegue con agentes distintos antes de entrar en la competición real. Para ello, se basaron en técnicas Population Based Training o PBT, para que los agentes con peor rendimiento aprendan de los que tengan mejor rendimiento en esta liga, que es muy similar a una deportiva.
- Cada agente (con diferentes parámetros) juega contra sí mismo y adquiere su propio conocimiento del juego.
- Los agentes juegan entre ellos con recompensas. Al final de las jornadas, la mitad de los agentes que ha obtenido los peores resultados copia a la otra mitad, aplicando una pequeña mutación en sus parámetros para así obtener una estrategia ligeramente diferente.
- Se sigue entrenando solo a los mejores agentes, que se enfrentan entre sí y contra los agentes que ya fueron descalificados.
A la espera de los resultados en Kaggle, se probó con juegos parecidos a Connect X y se llegó a la conclusión de que este tipo de entornos son más caóticos que los de otros videojuegos probados anteriormente en el IIC. Las acciones realizadas por el agente tienen más impacto, no se puede rectificar fácilmente y, por tanto, requieren de una planificación más precisa. Por estos motivos, el equipo sigue trabajando en el desarrollo de sus algoritmos de aprendizaje por refuerzo, para que puedan adaptarse a diversidad de situaciones.