martes, 17 de diciembre de 2019

MuZero: el nuevo hito de Google DeepMind

"[...] MuZero learns a model that, when applied iteratively, predicts the quantities most directly relevant to planning: the reward, the action-selection policy, and the value function. When evaluated on 57 different Atari games - the canonical video game environment for testing AI techniques, in which model-based planning approaches have historically struggled - our new algorithm achieved a new state of the art. When evaluated on Go, chess and shogi, without any knowledge of the game rules, MuZero matched the superhuman performance of the AlphaZero algorithm that was supplied with the game rules."  (Abstract)


Cada poco tiempo, Google DeepMind nos tiene acostumbrados a darnos agradables sorpresas que indican que el estudio en inteligencia artificial va en el buen camino a la hora de lograr una inteligencia artificial general. El nuevo hito del que os voy a hablar a continuación es un pequeño paso más allá de AlphaZero, al que el equipo de Google han denominado MuZero ("Mastering Atari, Go, Chess and Shogi by Planning with a Learned Model)".

En concreto MuZero es un pequeño paso para uno mucho mayor que es seguro que está en camino, conformando una base que muy previsiblemente va a revolucionar el campo del aprendizaje automático. El paper publicado por DeepMind es bastante entendible y además han ofrecido una especie de pseudocódigo para facilitar su entendimiento. De hecho, gracias a esta ayuda me ha sido bastante sencillo aplicar la técnica utilizada en MuZero para desarrollar un algoritmo capaz de aprender a jugar al famoso juego Conecta 4. Podéis seguir el código en mi repositorio de GitHub: https://github.com/Zeta36/muzero

Pero, ¿cuál es la novedad detrás de MuZero?

Grosso modo, la innovadora idea ha sido la de utilizar un par de subredes neuronales capaces de "imaginar" la dinámica del entorno donde se desarrolla el modelo. Hasta ahora, el éxito detrás de los desarrollos de RL (reinforce learning) se conseguían gracias a que para el entrenamiento de la red neuronal se le ofrecía al modelo la dinámica (determinista) del entorno que debía aprender a resolver, además de ofrecerle la recompensa obtenida en cada paso. En otras palabras: el modelo aprendía "fácilmente" gracias a que en cada momento se conocía el estado completo del entorno así como el futuro inmediato (y la recompensa obtenida) tras realizar una acción. Y desde luego esta estrategia funciona, pero NO es así como los seres vivos aprenden en el mundo real.

En nuestro día a día, la dinámica de los fenómenos no están a nuestro alcance en todo momento. Cuando un bebé, por ejemplo; aprende a caminar con los meses no tiene a su alcance una dinámica perfecta del entorno. Del mismo modo, cuando de más mayores aprendemos a jugar a un nuevo videojuego que hemos comprado, normalmente al principio no tenemos ni idea de las recompensas que cada acción nos va a ofrecer ni tampoco conocemos la dinámica del mismo: es decir, que si nos dan una videoconsola con  un mando y un juego al que nunca hemos jugado, nuestra mente no tiene a su disposición la dinámica del juego: no sabemos qué hace cada acción (el futuro inmediato tras pulsar ciertos botones), no sabemos la recompensa (¿qué pasará si ese objeto choca con nosotros?), etc. En resumen: los seres vivos debemos aprender la dinámica de cada entorno antes siquiera de comenzar a adquirir buenas habilidades en la resolución del problema en cuestión.

Y precisamente la novedad de MuZero es que han logrado idear un método que posiblemente sea "similar" al método neurológico mediante el que nuestro cerebro funciona en estas situaciones. El modelo en cuestión consiste no sólo en una red neuronal profunda, sino en tres subredes independientes aunque interconectadas: dos encargadas de ir entendiendo poco a poco la dinámica del entorno, y una más encargada de predecir el valor (y las acciones más recomendables) en cada uno de estos estados "imaginados". Y decimos "imaginados" porque MuZero no pretende lograr predecir una dinámica "perfecta" del entorno, sino que se limita a generar unos estados intermedios codificados (y comprimidos), lo cual permite mejorar la eficiencia en el tiempo de entrenamiento.



El inicio de un nuevo paradigma

Los resultados mostrados en el paper de MuZero son sorprendentes. Y lo son por dos motivos: primero porque consigue superar el estado del arte en los resultados de la mayoría de los juegos a los que han aplicado el algoritmo, y segundo, porque este estado del arte se ha logrado "imitando" el modo en que los seres vivos neuronalmente aprenden, mediante el uso de varias redes neuronales que interaccionan unas con otras mediante entradas y salidas codificadas y compactificadas. Nuestro cerebro posee subredes muy similares a las utilizadas por Google, pero se trata de una tecnología que no obstante está dando sus primeros pasos. Es muy probable que en próximos estudios DeepMind mejore aún más esta técnica logrando un hito aún mayor. El potencial de este nuevo paradigma de aprendizaje es inmenso y muy pronto veremos resultados realmente asombrosos, con toda seguridad durante el curso del año que viene.

El hecho de utilizar varias redes neuronales para simular el modo en que nuestro cerebro genera lo que David Hume denominó "ideas", una especie de generación interna codificada (compactificada y en cierto modo "imperfecta") que sirven fundamentalmente a nuestro cerebro para modelar el caótico mundo de nuestro alrededor y su dinámica, van a permitir en el corto-medio plazo enormes avances fundamentalmente en robótica.

Los brazos robóticos (y las máquinas robóticas totalmente móviles) por fin aprenderán con eficiencia a modificar y tratar tareas complejas sin la necesidad del uso de simuladores "perfectos" y deterministas (lo cual es en la práctica el mayor problema que afronta este campo a la hora de lograr aprender técnicas de movilidad y patrones útiles y eficaces).

La prensa no se ha hecho de momento demasiado eco de MuZero, pero muy pronto alguna variante de su idea fundamental: aprender a "imaginar" y modelar la dinámica del entorno, llegará el próximo año a los medios de comunicación conforme se logren avances más significativos, lo cual es algo que casi seguro ocurrirá.

Lo dicho, el camino hacia una inteligencia artificial de propósito general sigue su camino a buen paso; siendo cuestión de tiempo (varias décadas) y de potencia de cálculo (nuevas versiones en las tarjetas TPU).


Nota. Si os habéis quedado con ganas de más detalles técnicos, a parte del paper original podéis visitar esta entrada de blog: "How To Build Your Own MuZero AI Using Python". También podéis visitar este vídeo de YouTube donde se explica el funcionamiento del algoritmo: "MuZero: Mastering Atari, Go, Chess and Shogi by Planning with a Learned Model".