Los juegos de Atari son un buen recurso para medir a la computación evolutiva contra el "deep learning"

Los juegos de Atari son un buen recurso para medir a la computación evolutiva contra el "deep learning"
2 comentarios Facebook Twitter Flipboard E-mail

El ajedrez y el póker son juegos que suponen un extra de concentración por las estrategias que implican, y se han usado para retar la capacidad de robots e inteligencias artificiales. Pero los videojuegos también exigen mucha habilidad, sobre todo los más complicados, y es lo que unos investigadores ha utilizado para ver si el aprendizaje evolutivo supera al deep learning y a las redes neuronales.

Esto es interesante porque la computación evolutiva es una rama de la inteligencia artificial que, a diferencia del deep learning y de las redes neuronales, se inspira en los mecanismos de la evolución biológica. De ahí que haya investigadores trabajando en ver si la evolutiva es más potente que el resto, y para ello han recurrido a juegos como el 'Pong' o 'Space Invaders'.

La selección artificial al servicio de ganar en videojuegos míticos

Los videojuegos han figurado como prueba de habilidad de inteligencias artificiales ya en ocasiones anteriores. Ejemplo de ello es DeepMind, la inteligencia artificial de Google que se enfrentó a 'Starcraft II' tras batir al mejor jugador humano al 'Go'.

Esta vez la idea era ver si la computación evolutiva podía igualar en desempeño al deep learning, y para ello Dennis Wilson y su equipo de investigadores de la Universidad de Touluse en Francia han optado por ponerla a prueba con juegos de Atari, inspirados en el experimento que ya se hizo en 2013 con una red neuronal, la cual demostró que podía aprender a jugar (y ser bastante buena). Se trata de los 61 jugos de Atari que se hallan en la base de datos de Arcade Learning Environment, que según explican en el MIT se están usando cada vez más para probar el aprendizaje de algoritmos.

El objetivo en este caso era crear un algoritmo que pudiese jugar a un juego como el 'Pong' recogiendo sólo la información de la pantalla, es decir, como un ser humano, de modo que tenía que analizar cada posición en el juego y decidir cómo moverse para obtener la máxima puntuación. Pero la secuencia de código que lo define tenía que obtenerse a partir de computación evolutiva, que es algo distinta a los modos más convencionales.

Pong
Una captura de una versión posterior (1972) del 'Pong' original.

Para ello se creó un código con 40 sectores, lo que vendría a ser el "genoma" del programa (luego profundizaremos en esta analogía). Este "genoma" se puso a prueba para ver cómo se desenvolvía con los juegos, y según cómo quedase se reproduciría o no, siendo de nuevo puesto a prueba con las "mutaciones" que su reproducción genera (es decir, modificaciones con respecto al original).

Así sucesivamente hasta que se lograse un código que lleva a la meta deseada, algo que estos científicos hicieron con 10.000 "genomas". Y lo que vieron es que los primeros códigos se desenvolvían muy mal con el juego, pero iban mejorando hasta que las últimas generaciones mostraban un desempeño incluso mejor que los seres humanos.

Los códigos ganadores (o más evolucionados) no siempre eran los más complejos. Por ejemplo, el algoritmo evolutivo dio con una clave para ganar en 'King Fu Master': la repetición de uno de los ataques (exclusivamente, sin hacer otra cosa), una estrategia que a posteriori vieron que tenía sentido.

Space Invaders
Una captura de pantalla de 'Space Invaders'. (Imagen: 3D Juegos)

Una computación que imita a la naturaleza (y puede "ganarle")

Decíamos que la computación evolutiva se inspira en los mecanismos de evolución biológica, y por ello hay ciertos símiles que nos ayudan a entenderla, empezando por entender el código usado para el desarrollo de algoritmos como si fuese el código genético. Así, del mismo modo que ocurre en la fecundación, momento en el que los gametos entremezclan su ADN para consolidar el del futuro individuo por recombinación genética, en la computación evolutiva se generan miles de fragmentos de código que se ponen a prueba y los mejores se seleccionan para ser reproducidos en una nueva generación, obteniéndose recombinaciones y cambios que podrían equipararse a mutaciones.

Cada una de estas nuevas generaciones de código es probada para ver cómo trabaja, y se eligen los fragmentos que mejor resultado dan para ser reproducidos en otra generación. De este modo, el código evoluciona seleccionándose siempre los mejores fragmentos (trabajando de una manera similar a la selección natural), a diferencia de los otros sistemas en los que se escribe un código partiendo de principios esenciales según la meta de la que se trate.

En este caso, el equipo de Wilson concluye que la computación evolutiva es al menos tan buena como el deep-learning en juegos como 'Asteroids', 'Defender' y 'Kung Fu Master' y que puede llegar a requerir menos tiempo de aprendizaje. Además, permite conocer con más detalle cómo trabaja, algo que es complicado en algunos casos de deep-learning, puntualizan.

En Xataka | Esta inteligencia artificial es capaz de recrear motores de videojuegos con sólo ver dos minutos del juego

Comentarios cerrados
Inicio