1 de agosto de 2018

INTELIGENCIA ARTIFCIAL La IA que evoluciona y muta podría desbancar al aprendizaje profundo

La computación evolutiva funciona de una forma completamente distinta a las redes neuronales. Su objetivo consiste en crear un código informático capaz de resolver un problema específico mediante un enfoque contrario a la intuición.
La forma convencional de crear un código se basa en escribirlo desde el inicio con un objetivo concreto en mente. Pero la computación evolutiva usa un enfoque diferente. Comienza con un código generado completamente al azar. Y no solo utiliza una versión, a veces puede emplear cientos de miles de fragmentos de código ensamblados aleatoriamente.
La técnica prueba cada uno de estos fragmentos código para ver si alcanza el objetivo requerido. Por supuesto, todo el código es horrible porque se genera de forma aleatoria. Pero por casualidad, algunos fragmentos de código resultan un poco mejores que otros. Estas piezas se reproducen en una nueva generación de código, que incluye más copias de los códigos más eficientes.
La siguiente generación de códigos no puede ser una copia idéntica de la primera, debe presentar alguna variación, como el cambio de dos términos en el código, una especie de mutación puntual. O pueden involucrar dos códigos cortados a la mitad cuyas mitades se combinan, como en la recombinación sexual.
Cada una de las nuevas generaciones se prueba para testear su funcionamiento. Las mejores piezas de código se reproducen de forma prioritaria en la siguiente generación, y así sucesivamente.
De esta forma, el código evoluciona. Va mejorando con el tiempo y, después de muchas generaciones, si las condiciones son las adecuadas, puede ser mejor que cualquier código diseñado por un codificador humano.
Los científicos informáticos han aplicado con éxito la computación evolutiva a problemas que van desde el diseño de robots hasta la construcción de piezas de aviones. Pero fue perdiendo popularidad debido al gran interés en el aprendizaje profundo. Así que es importante averiguar si este enfoque es capaz de igualar el rendimiento de las máquinas de aprendizaje profundo. Para ello, Wilson y su equipo utilizaron el enfoque para desarrollar un código capaz de dominar algunos videojuegos típicos de las décadas de 1980 y 1990.
Estos juegos están disponibles en una base de datos llamada Arcade Learning Environment, que se usa cada vez más para probar el comportamiento de aprendizaje de varios tipos de algoritmos. La base de datos consta de 61 juegos de Atari, como Pong, Space Invaders, Breakout y Kung Fu Master.
La tarea consiste en crear un algoritmo que aprenda a jugar al Pong mirando únicamente la pantalla, igual que hacemos los humanos. Entonces el algoritmo debe analizar cada posición del juego para decidir cómo moverse para maximizar su puntuación.
Los controles para todos los juegos son iguales. Se componen de las ocho direcciones en las que se puede mover el controlador (arriba, abajo, izquierda y derecha más cuatro direcciones diagonales), un botón presionable, los mismos ocho movimientos combinados con el botón, y también está la opción de hacer nada en absoluto. No todos los juegos usan las 18 combinaciones posibles, de hecho, algunos usan tan solo cuatro.
Primero hay que crear el código. El enfoque evolutivo requiere un vocabulario de términos que pueden concatenarse para formar un código informático. Los términos van desde acciones simples como ADD (x + y) / 2, hasta otras más complejas, como "regresa el vector-x de 1 elemento si x es un escalar". La elección de los términos que componen este vocabulario es importante. Para ello, el equipo de Wilson utiliza un conjunto ya definido para la programación genética cartesiana (como se llama su técnica).
El proceso comienza creando aleatoriamente un código con 40 términos. Este es el "genoma" del programa. Este genoma se prueba para ver su nivel en el juego, algo que se juzga en función de la puntuación obtenida. En función del resultado, el genoma se reproduce con mutaciones y se prueba nuevamente, y así sucesivamente. En total, el equipo probó 10.000 genomas utilizando este método.
Los resultados son interesantes. Al principio los genomas juegan fatal, pero van mejorando con el tiempo. Y después de muchas generaciones juegan bien, a veces mejor que los humanos.
Muchos genomas acabaron desarrollando estrategias de juego completamente nuevas, a menudo complejas. Pero a veces encontraron estrategias simples que los humanos habían pasado por alto. Por ejemplo, al jugar Kung Fu Master, el algoritmo evolutivo descubrió que el ataque más potente consiste en dar un golpe mientras el personaje está agachado. Esta posición es más segura porque esquiva la mitad de las balas dirigidas al jugador mientras ataca cualquier cosa cercana. La estrategia del algoritmo consistió en limitarse a usar esta maniobra todo el rato, algo que realmente tiene sentido.
Eso sorprendió a los jugadores humanos involucrados en el estudio. "Emplear esta estrategia logró una mejor puntuación que jugar de forma normal, y ahora el algoritmo solo usa los golpes agachados cuando ataca en este juego", explican Wilson y su equipo.
En general, el código evolutivo obtuvo buenos resultados en muchos de los juegos, incluso superó a los humanos en el Kung Fu Master. Del mismo modo, el código evolutivo es igual de bueno que muchos enfoques de aprendizaje profundo e incluso los supera en Asteroids, Defender y Kung Fu Master.
También produce un resultado más rápido. "Aunque los programas son relativamente pequeños, funcionan bien y requieren menos tiempo de entrenamiento", señalan Wilson y su equipo.
Su pequeño tamaño ofrece otra ventaja, ya que es más ver cómo funciona. Un conocido problema con las técnicas de aprendizaje profundo es que a veces es imposible saber por qué han tomado una decisión concreta, lo que puede tener implicaciones prácticas y legales (ver El secreto más oscuro de la inteligencia artificial: ¿por qué hace lo que hace?).
Se trata de un trabajo interesante que debería sugerir que centrarse exclusivamente en el aprendizaje profundo puede estar pasando por alto algunos enfoques muy útiles. El enfoque evolutivo es una alternativa poderosa que se puede aplicar en un amplio conjunto de situaciones. De hecho, algunos investigadores han comenzado a usarlo para desarrollar mejores máquinas de aprendizaje profundo. ¿Qué podría salir mal?
Fuente:Technologyreview.es