La inteligencia artificial es un área de investigación que actualmente está siendo estudiada por multitud de universidades y compañías que consiguen muchos resultados asombrosos. Una de ellas es OpenAI, fundación sin ánimo de lucro creada en diciembre de 2015 cuyo objetivo es la investigación en inteligencia artificial.
OpenAI ha logrado multitud de publicaciones y desarrollos, uno de los que ha tenido más repercusión mediática fue un programa capaz de aprender a jugar al Dota2.
¿Qué es Dota2?
Dota2 es un videojuego basado en una arena de combate multijugador en línea, donde compiten dos equipos por destruir la fortaleza enemiga. El videojuego tiene una gran complejidad y requiere mucha habilidad e inteligencia para llegar a jugarlo bien.
Dota2 es el e-sport que más dinero mueve en el mundo, llegando hasta 25 millones de dólares en el campeonato internacional solo en premios a participantes, por lo que mueve un volumen de negocio mucho mayor. Estamos hablando, pues, de un videojuego del que viven muchas personas. Muchos jugadores se dedican a él de forma profesional y entrenan diariamente para ser los mejores.
Primer logro de OpenAI en Dota2
El primer logro que consiguió el equipo de OpenAI en el videojuego Dota2, fue en agosto de 2017 con un programa capaz de ganar a uno de los mejores jugadores del mundo en ese momento, Danil Ishutin. Consiguió ganar 2-0 dominando la partida de principio a fin, habiendo entrenado durante 2 semanas para conseguir ese nivel.
A pesar de haber ganado, la victoria les supo a poco, porque Danil tuvo que someterse a algunas restricciones para jugar contra la máquina. Por ejemplo, no pudo elegir libremente los personajes con los que iba a jugar, sino que los tuvo que escoger de una lista.
Los algoritmos de OpenAI para Dota2
Tras esto, OpenAI decidió plantearse el crear 5 algoritmos basados en el aprendizaje por refuerzo capaces de jugar de forma cooperativa en las partidas por equipos y enfrentarlos contra un equipo profesionales del Dota2. Para ello entrenaron mediante aprendizaje por refuerzo 5 redes neuronales muy grandes usando un tipo de algoritmo llamado PPO (Proximal Policy Optimization) con 128.000 CPUs cores y 256 GPUs.
Con esto, fueron capaces de que la inteligencia artificial jugase contra ella misma en un día un equivalente de 180 años. Todo esto partiendo de cero y sin ningún tipo de aprendizaje inicial solo compitiendo contra ella misma. Esta forma de aprendizaje en la IA es muy similar a la que se utilizó anteriormente para ganar al campeón mundial del Go.
El conseguirlo es todo un reto, debido a las muy diferentes dificultades que supone el Dota2 frente a juegos que ya han sido dominados por la IA como el ajedrez y el Go.
- El hecho que en media el algoritmo tenga que decidir durante una partida unos 20.000 movimientos frente a 40 en el ajedrez o 150 en el Go.
- Es un juego parcialmente observable, en el sentido que cada jugador solo ve hasta una pequeña distancia a su alrededor y no todo el mapa completo.
- La cantidad de opciones distintas entre las que hay que elegir, que en media suponen unas 1000 acciones validas distintas frente a 35 en el ajedrez y 250 en el Go.
- La gran cantidad de información necesaria para representar un estado del juego, que llegaron a representar mediante 20.000 números.
- Por último, conseguir que colaboraran en equipo los 5 algoritmos, uno de los motivos más importantes por lo que se hicieron famosos.
OpenAI Five y el avance para el aprendizaje por refuerzo
Pese a todas estas dificultades, OpenAI consiguió desarrollar un programa de 5 redes neuronales llamado OpenAI Five, capaz de jugar en equipo. Su última versión tiene, además, muchas menos restricciones que la que se enfrentó a Ishutin. Esto se debe, en parte, a las críticas recibidas por las limitaciones que OpenAI impuso inicialmente al jugador.
Este trabajo ha sido un gran avance en el área del aprendizaje por refuerzo porque han conseguido hacer que 5 algoritmos independientes sean capaces de colaborar sin ningún canal directo de comunicación entre ellos en una tarea en la que simplemente conseguir que aprenda a jugar un solo algoritmo tiene una gran dificultad.
OpenAI Five frente a jugadores profesionales
Para comprobar su rendimiento, el 5 de agosto de 2018, enfrentaron a OpenAI Five contra un equipo de jugadores de Dota2 en el percentil 99.95% de habilidad. El algoritmo ganó a los expertos en una competición al mejor de tres: OpenAI Five ganó las dos primeras partidas y perdió la última.
OpenAI Five en las dos primeras partidas, después de seleccionar los personajes, el programa estimaba un 95% y un 76.2% de probabilidad de ganar. Y en la última partida, le permitieron a la audiencia escoger los personajes con los que debía jugar el programa.
El público seleccionó un equipo de personajes muy malo. La red estimó una probabilidad de ganar del 2,9%, lo que indica que era consciente de que esos personajes no se deben escoger. Aun así, la partida duró 35 minutos, cuando la media es de 45.
Tras esto, probaron a subir un escalón más de dificultad con la competición internacional del 2018, donde enfrentaron OpenAI Five contra un equipo de Dota2 situado en el top 18 del mundo. También redujeron aún más las restricciones del juego, una de ellas muy importante que criticaba la comunidad del Dota2 y que tan solo pudieron entrenar 6 días antes de la competición.
En esta ocasión, perdió el programa de OpenAI las dos partidas que jugaron, aunque consiguieron mantener buenas opciones de ganar durante los primeros 20-35 minutos. Lo que es un muy buen resultado teniendo en cuenta que se enfrentaron con uno de los mejores equipos del mundo.
OpenIA Five frente a los mejores jugadores del mundo
Pese a la derrota, todo esto no hizo más que motivar al equipo de desarrolladores, quienes decidieron seguir intentado mejorar su sistema hasta conseguir ganar a los campeones del mundo del Dota2. Para ello, aumentaron el tamaño del modelo al doble, utilizaron los parámetros de la versión anterior (transfer learning) y entrenaron el modelo más tiempo.
En tan solo 10 días, ya consiguieron un ratio del 80% de victorias frente a la versión anterior. Esta vez, en comparación con la anterior, el entrenamiento tiene 8 veces más capacidad de cálculo, han experimentado unos 45.000 años de juego en 10 meses de tiempo real. Como resultado de semejante cantidad de experiencias, el nuevo sistema tiene un ratio de victorias del 99.9% contra su predecesora.
Como test del nivel que había alcanzado el nuevo OpenAI Five, decidieron enfrentarlo el 13 de Abril de 2019 contra los actuales campeones del mundo del Dota2 desde “The International” de 2018. El resultado fue que el sistema ganó 2-0 en una competición al mejor de 3, y en la segunda partida con clara superioridad. Convirtiéndose así en la primera IA que gana a un equipo campeón del mundo en un e-sport, todo un hito en este campo de investigación.
Para mayor exhibición en el evento, probaron a jugar en modo cooperativo con el bot. Jugaron una partida de 5 vs 5, donde cada equipo lo formó 2 humanos y 3 bots. El resultado fue una partida muy interesante en la que se analiza la forma de interactuar humanos y bots.
Después de este gran evento con increíbles resultados, el equipo publicó el OpenAI Five Arena. Este es un experimento abierto al público durante 4 días, en el cual cualquier persona puede jugar con el bot de OpenAI Five en modo cooperativo o competitivo. El resultado fue que ganó el 99.4% de 35.466 partidas que jugó contra 30.937 personas. Aún están revisándose estas partidas para extraer conclusiones, pero ya se sabe que algunas de estas victorias se deben a un bug del sistema.
Todo esto ha motivado al equipo de OpenAI y van a continuar mejorando el programa a pesar de haber logrado ya un hito en la IA. Solucionar estos retos tan difíciles, nos acerca a problemas del mundo real, donde la diversidad de opciones para definir una estrategia es enorme, no está acotada por un conjunto pequeño de reglas e incluso se debe trabajar de forma cooperativa.
Por otro lado, la capacidad de cálculo necesaria para OpenAI Five ha sido enorme, pero se espera que los algoritmos de aprendizaje por refuerzo se vayan volviendo más eficientes y accesibles con el tiempo. Quién sabe si pronto OpenAI alcanza otro hito en la inteligencia artificial. ¿Tú qué crees?