lunes, 9 de diciembre de 2024

Notas sobre aprendizaje por refuerzo (XII): autoaprendizaje y el caso de AlphaGo y AlphaZero

En los últimos tres o cuatro posts de esta ya larga serie dedicada al aprendizaje por refuerzo ('reinforcement learning'), voy a ir algo más rápido, en el sentido de sobrevolar un poco más los temas (que son progresivamente más complejos) y quedarme con  las ideas y enunciados principales, en un nivel algo más divulgativo.

En el post de hoy hablo del caso de autoaprendizaje con dos agentes que, como el propio nombre indica, contiene dos elementos nuevos:

  • El hecho de considerar dos agentes, en lugar de uno sólo, como habíamos hecho hasta ahora
  • El introducir la idea de autoaprendizaje.

Además, esto permitirá saltar de unas ideas que pueden parecer teóricas, a una realización muy concreta y conocida: AlphaGo y su sucesor AlphaZero. 


Repaso: Lo que hemos visto de aprendizaje por refuerzo


Antes, y como siempre en esta serie de posts sobre aprendizaje por refuerzo, un resumen de lo que hemos hablado hasta ahora



Estamos, al menos hasta ahora, ante la situación de un agente que interactúa con un entorno que se encuentra en un estado s. Sobre ese entorno, el agente aplica unas acciones, a, como consecuencia de las cuales, el entorno puede experimentar una transición y cambiar de estado, pasando del estado s al s', y el agente recibe una recompensa r. El agente decide la acción a aplicar en cada momento, siguiendo una política π y su objetivo es maximizar la recompensa obtenida lo largo de una secuencia o trayectoria.

Los métodos más básicos, aquellos en que el espacio de estado es reducido, siguen un enfoque tabular, en que se tabulan, de ahí el nombre, los posibles estados y para ellos se calculan unas funciones que nos dan el valor, Q, de la recompensa esperada. Cuando la dimensión del espacio de estados es muy alta, como sucede habitualmente en problemas reales, dejan de tener sentido estos métodos tabulares así que renunciamos a representar la situación del entorno mediante su estado, y a cambio lo representamos mediante unas características ('features') y la obtención de valores o acciones vienen a ser unas funciones con base en esas características e implementadas mediante redes neuronales profundas, dando lugar al 'deep reinforcement learning'.

Cuando tratamos problemas ya no de alta dimensionalidad, sino continuos, como es la locomoción de robots, se adoptan los denominados métodos basados en políticas en que se prescinde de la visión de valores, y se trabaja directamente en optimizar las políticas, que pasan a considerarse como estocásticas, es decir, como distribuciones de probabilidad. 

Finalmente, en el último post, hablábamos del aprendizaje basado en modelos ('model-based'), en que el agente primero consigue un modelo del entorno y luego ya prescinde del entorno propiamente dicho par a trabajar con ese modelo local durante todo el entrenamiento.


La interacción de dos agentes


Ahora toca introducir varias novedades. La primera es que vamos a hablar de dos agentes en lugar de uno. Hasta ahora siempre habíamos considerado un agente interactuando con su entorno, pero ahora hablamos de dos agentes interaccionando entre sí.

En la referencia bibliográfica que ha guiado toda esta serie de posts, y que también lo hace con éste, el libro 'Deep reinforcement learning' de Aske Plaat, se nos indica que hay dos motivos que hacen interesante considerar este caso, a saber:


  • Que nos acerca a situaciones más realistas donde es habitual la existencia de varios agentes 
  • Que se han obtenido grandes éxitos en esta variante de aprendizaje por refuerzo, especialmente en el campo de los juegos.


Problemas de suma cero


Nos centramos además, en un tipo de problema muy común en el mundo de los juegos, que son los de suma cero, es decir, la ganancia de un agente supone en la misma medida la pérdida del otro.

Esto supone dos cosas: por un lado, que el entorno para un agente dado, es fundamentalmente el otro agente, y que este entorno es, por decirlo de alguna manera, hostil.

Si en los problemas que habíamos tratado hasta ahora, podíamos considerar al entrono 'neutral' (reacciona a las acciones del agente pero sin ningún 'propósito' ni de beneficiarle ni de perjudicarle) en los problemas de que hablamos ahora, el otro agente, que viene a ser el entorno, trabaja en contra del primer agente (y, as u vez, éste trabaja en contra del segundo agente, naturalmente. Por lo tanto, cuando un agente intenta aprender una política óptima, debe de tener en cuenta todos los posibles contraataques


Autoaprendizaje


Un enfoque para el aprendizaje por refuerzo en este caso es el denominado autoaprendizaje en el que sustituimos al entorno por una copia de nosotros mismos.

¿Qué quiere decir esto?

Nosotros somos uno de los agentes y nos comportamos racionalmente para intentar ganar el juego. Suponemos, evidentemente, que el otro agente es tan racional como nosotros y, por lo tanto, que podría actuar exactamente conforme a nuestra política. Por tanto, el otro agente, y por ende el entorno, tiene exactamente el mismo modelo que nosotros mismos.

Se trata, además, de un caso de aprendizaje basado en modelo, puesto que disponemos de un modelo del entorno.

En el autoaprendizaje se crea una suerte de círculo virtuoso en que usamos el entorno (que es una copia de nosotros mismos) para generar ejemplos de entrenamiento. Con esos ejemplos, mejoramos nuestro comportamiento, nuestra política, y también la del entorno, (que es una copia de nosotros mismos). Y así sucesivamente, tanto el agente como su entorno (que, ¿lo he dicho ya? es una copia de él mismo) van mejorando, y mejorando, y mejorando... sin ningún apoyo externo. Y así hasta la excelencia.

Se me ocurre decir, de mi cosecha, que es, además, una forma de aprendizaje muy económica y práctica, porque no necesitamos de ningún entorno del que aprender o del que obtener información mediante sensores o mecanismos similares.

Anotar finalmente que me estoy tomando la libertad de traducir como 'autoaprendizaje' lo que en realidad sería auto-juego ('self-play') o juego con uno mismo. Me ha parecido que como autoaprendizaje transmitía mejor la idea.


Algunos algoritmos


Como decía al inicio del post, no voy a profundizar en detalles algorítmicos, pero para beneficio del lector más avanzado, y por si 'quiere tirar del hilo' menciono los algoritmos que aparecen en el libro de Plaat.

El autor nos habla de MCTS ('MonteCarlo Tree Search') que es un algoritmo de búsqueda en un árbol o Alpha Zero tabula rasa


AlphaGo y AlphaZero.


Como no es difícil de imaginar, este tipo de aprendizaje se adapta de manera excelente al caso de juegos con dos jugadores y reglas muy claras.

Y, en efecto, se ha utilizado, por ejemplo, para jugar al ajedrez o el mucho más complicado juego del Go, dos juegos, tanto el ajedrez como el Go que, aunque complejos, se pueden considerar de información perfecta, en el sentido de que los dos agentes tienen una información completa y precisa de la situación del juego en cada momento.

En este campo del Go son casi míticos los sistemas AlphaGo y AlphaZero, siendo el primero el que batió a Lee Sedol en el legendario encuentro de Mayo de 2016.

AlphaGo, combinaba un aprendizaje supervisado con base en información de jugadores expertos con autoaprendizaje, usando tanto MCTS y autoaprendizaje. Su evolución AlphaGo Zero ya utilizaba únicamente autoaprendizaje mediante AlphaZero tabula rasa. Finalmente, AlphaZero, es una generalización del anterior válido para otros juegos. 


Conclusiones


Aunque superficialmente, hemos visto cómo se extiende el modelo de aprendizaje por refuerzo al caso de dos agentes, y también hemos conocido algunas ideas sobre el autoaprendizaje, que ha concluido a éxitos tan sonoros de la inteligencia artificial como la consecución de AlphaGo y su sucesor AlphaZero.


Artículos de este blog relacionados



No hay comentarios:

Publicar un comentario