Reinforcement Learning

¿Qué es el Reinforcement Learning y cuáles son sus aplicaciones?

¿Te imaginas a una IA que aprende a jugar ajedrez por sí sola y logra superar a campeones mundiales sin enseñanza humana? AlphaZero, desarrollado por DeepMind, es un ejemplo sorprendente del poder del Reinforcement Learning (RL). Este programa dominó el ajedrez a través de su autoaprendizaje, sin requerir estrategias humanas predefinidas ni bases de datos de movimientos históricos. Lamentablemente no es posible jugar contra AlphaZero, sin embargo, te invitamos a tratar de predecir sus movimientos en uno de sus enfrentamientos contra Stockfish, otro de los motores más fuertes y populares del mundo. Para esto sigue el paso a paso del siguiente video: https://www.youtube.com/watch?v=R0xmkILU9vo. Recuerda anotar los puntos obtenidos y revisar tus resultados en la descripción ¡esperamos que te vaya bien!

¿Cómo funciona este tipo de aprendizaje?

La pregunta que nos hacemos es: ¿Cómo es que no fueron necesarios datos o  información externa para lograr el aprendizaje logrado con RL? La explicación preliminar que se puede dar es que este modelo está inspirado directamente en cómo aprendemos los seres vivos a través de la interacción con nuestro entorno.

Figura 1: Reinforcement Learning en el entrenamiento canino [1]

Por ejemplo (Figura 1), un perro (agente) puede aprender a cómo buscar una rama a través de su experiencia con su entorno (el exterior y su amo), obteniendo recompensas dependiendo de su efectividad en la búsqueda. Si es que estas recompensas son mejores para entregas más rápidas, entonces el perro aprenderá estrategias para obtener estos resultados.  

De esta forma, Alpha Zero (agente) funciona de la misma manera. Este sistema se perfeccionó jugando contra sí (entorno) millones de veces y utilizando la retroalimentación del resultado (recompensa) de cada partida para aprender y mejorar sus estrategias.

Se extrae de estos ejemplos que los modelos de RL están compuestos siempre por un agente, un entorno y por la búsqueda constante de maximizar una recompensa. A continuación, se detalla cada uno de estos elementos y cómo es que se relacionan entre sí:

El agente puede ser cualquier sistema capaz de percibir su entorno y tomar decisiones. Este va eligiendo sus acciones según la información que recibe del entorno y con el objetivo de maximizar la recompensa total a largo plazo. El entorno determina las reglas y cómo es que las acciones del agente afectan el estado del sistema. Además, este proporciona retroalimentación al agente a través de recompensas o penalizaciones según las acciones tomadas. La recompensa puede ser positiva, negativa o neutra y el objetivo del agente es maximizar la recompensa acumulada a largo plazo tomando secuencias de acciones óptimas.

Explotación vs exploración

Un problema recurrente que aparece en esta búsqueda de decisiones óptimas es el trade-off entre explotación y exploración. Supongamos que estás con un amigo excavando buscando diamantes. Al cabo de unas horas tu amigo encuentra un diamante y se retira victorioso. En ese momento te enfrentas a una complicada decisión: ¿Dónde sigo cavando?

Puedo excavar donde lo estaba haciendo mi amigo, de esta manera estaría ocupando la  explotación del conocimiento ganado. Básicamente el análisis es: si mi amigo encontró un diamante en ese lugar, entonces debería haber otro cerca. En la Figura 2 [2] se muestra cada una de las posibilidades de tomar esta decisión. 

Figura 2: Representación de la explotación del conocimiento: excavar donde lo estaba haciendo el amigo.

Otra opción sería seguir excavando donde yo lo estaba haciendo o probar en otro lugar donde aún nadie lo haya hecho. Esto sería optar por la exploración.

En RL el agente se encuentra en este constante enfrentamiento, respecto a cuál heurística seguir o qué decisión tomar. Se busca garantizar una buena exploración del espacio de estados y al mismo tiempo garantizar que en algún momento se aplique lo aprendido para obtener una buena recompensa. Este trade-off se ha convertido en un área activa de investigación, en el cual se presentan y discuten posibles soluciones para problemas de RL. Estas decisiones son aún más complicadas cuando la dinámica del entorno es en sí misma una función del tiempo, haciendo que lo aprendido no sea relevante para el estado actual [4].  

Algoritmos

El proceso de decisión secuencial que se toma puede ser caracterizado como un proceso de decisión de Markov o MDP (por sus siglas en inglés) en el que se determina una función de transición de probabilidad que mapea estados y acciones a otros estados. El modelo es Markov si las transiciones de estado son independientes de cualquier estado o acción anterior [5]. Existen varios algoritmos de RL para resolver MDPs, cada uno con características y ventajas distintas. Dependiendo del problema a resolver se puede preferir uno u otro. Entre los más utilizados en la industria se encuentran: 

  1. Q-Learning:
  • Q-Learning es un algoritmo de aprendizaje por refuerzo basado en valores de acción. Busca aprender la función Q, que evalúa la calidad de tomar una acción en un estado específico y sigue una estrategia de exploración y explotación para maximizar las recompensas.
  1. SARSA (State-Action-Reward-State-Action):
  • Similar a Q-Learning, SARSA es un algoritmo de aprendizaje por refuerzo basado en valores de acción. A diferencia de Q-Learning, SARSA elige la próxima acción basada en una política específica, lo que significa que se enfoca en tomar decisiones considerando la política actual.
  1. Deep Q-Networks (DQN):
  • DQN es una extensión del Q-Learning que utiliza redes neuronales profundas para aproximar la función Q en entornos más complejos. Esta técnica ha sido fundamental en el éxito del aprendizaje por refuerzo en entornos de juegos de video complejos.
  1. Policy Gradient Methods:
  • Estos métodos se centran en aprender directamente la política del agente, es decir, la estrategia que determina la acción a tomar en un estado específico. Ejemplos incluyen REINFORCE, Actor-Critic, y Proximal Policy Optimization (PPO).
  1. A3C (Asynchronous Advantage Actor-Critic):
  • A3C es una variante del algoritmo Actor-Critic que utiliza múltiples agentes de manera asincrónica para mejorar la eficiencia del entrenamiento en entornos distribuidos.
  1. TRPO (Trust Region Policy Optimization):
  • TRPO es un algoritmo que optimiza la política del agente utilizando métodos de gradiente con restricciones de confianza para garantizar mejoras estables y eficientes en el desempeño del agente.

Cabe destacar que la resolución que se toma depende principalmente del modelo y problema que se tenga. La Figura 3 [6] es un ejemplo de esto. 

Figura 3: Árbol de clasificación de métodos de RL.

Aplicaciones del Reinforcement Learning

Estos métodos han sido utilizados en diversas áreas, por ejemplo para conducción autónoma y específicamente con AWS DeepRacer, que ocupa cámaras para visualizar el camino y un modelo de RL para controlar la aceleración y la dirección (véase la liga de AWS DeepRacer en  https://aws.amazon.com/es/deepracer/ [8]). Por otro lado, en la automatización industrial, robots basados en RL se utilizan para tareas eficientes, como en el enfriamiento de los centros de datos de Google [9]. En cuanto al procesamiento de lenguaje natural (NLP), RL se aplica en tareas tales como resumen de textos y traducción automática.

En el ámbito financiero, se puede emplear RL para predecir ventas futuras o hasta valores de las acciones. Por ejemplo, hay empresas que toman decisiones de trading utilizando como función de recompensa la pérdida o ganancia de cada transacción financiera [10]. Además, existen aplicaciones en salud, donde los pacientes pueden recibir mejoras en sus tratamientos a partir de políticas aprendidas por el sistema RL. Por último, mencionar las aplicaciones en optimización de sistemas de producción de gran escala, lo que se observa con la plataforma Horizon desarrollada por Facebook. Ellos han utilizado esta plataforma de RL para personalizar recomendaciones, mejorar notificaciones y manejar conjuntos de datos de alta dimensión con miles de características.

Los modelos mencionados comparten la misma lógica: tener un agente que busca maximizar la recompensa en el tiempo a partir de la experiencia que tiene con su entorno. El agente realiza acciones óptimas que cambian los estados del sistema, este puede optar por explotar los conocimientos adquiridos o por explorar el entorno, en un trade-off constante. Existen diversas metodologías para resolver estos problemas y en la industria se conocen aplicaciones tanto en robótica, finanzas, salud, sistemas de producción, entre otros campos. Como Notus estamos entusiasmados con seguir innovando en IA, por lo que estamos en la frontera del conocimiento en cuanto a los modelos de RL, con el fin de entregar valor a nuestros clientes de manera eficiente e inteligente. ¿Tienes alguna decisión compleja en la que te podamos ayudar? ¡Conversemos!

Fuentes:

[1] https://es.mathworks.com/discovery/reinforcement-learning.html

[2] https://ai-ml-analytics.com/

[3]https://www.projectpro.io/article/reinforcement-learning-projects-ideas-for-beginners-with-code/521 

[4] https://stjohngrimbly.com/exploration-vs-exploitation/

[5] https://www.jair.org/index.php/jair/article/view/10166/24110

[6] https://www.hindawi.com/journals/complexity/2021/7179374/

[7] https://neptune.ai/blog/reinforcement-learning-applications

[8] https://aws.amazon.com/es/deepracer/

[9]https://deepmind.google/discover/blog/safety-first-ai-for-autonomous-data-centre-cooling-and-industrial-control/

[10]https://medium.com/ibm-data-ai/reinforcement-learning-the-business-use-case-part-2-c175740999