Aprendizaje por refuerzo y análisis avanzado

reinforcement-learning

El aprendizaje por refuerzo (RL) no es un recién llegado porque ha sido aplicado a problemas de muy diferente naturaleza. Sin embargo, solo recientemente ha despertado interés como herramienta para abordar problemas combinatorios que, en su versión más compleja, representan auténticos retos para multitud de empresas: elaboración de rutas, planificación de actividades de mantenimiento (en especial si son de carácter predictivo), programación de la producción (scheduling).


La pregunta es ¿qué ofrece que no ofrezcan los enfoques clásicos de analítica prescriptiva? ¿Qué nuevas aplicaciones pueden existir como resultado del desarrollo de modelo de RL?


Según Deepmind (2021), el aprendizaje por refuerzo es «la ciencia y el marco conceptual relativo a aprender a tomar decisiones mediante la interacción»[1]. Esta definición señala dos aspectos fundamentales.


En primer lugar, la disciplina está orientada al aprendizaje en la toma de decisiones. Es decir, lo que se busca no es solo tomar mejores decisiones sino construir la manera de aprender a tomar esas decisiones. De esta manera, el desarrollador de modelos de aprendizaje por refuerzo no es quien toma la decisión con ayuda del modelo, sino que construye un modelo que es capaz de aprender a tomar esa decisión.


En segundo lugar, la fuente de aprendizaje es la interacción. A diferencia de otros enfoques en los que existe la necesidad de realizar algún tipo de modelización formal del contexto en el que se deben tomar decisiones, esto no es necesario en el caso del aprendizaje por refuerzo, sino que a través de las diferentes acciones que se realicen y con la información recibida será posible conocer ese contexto y poder elegir la mejor acción como resultado del aprendizaje a través de la interacción.


Las dos consideraciones anteriores son esenciales para los problemas complejos que requieren tiempos de respuesta reducidos. Los enfoques de analítica prescriptiva clásicos requieren de algún tipo de representación formal del sistema y requieren un algoritmo que se ejecuta cada vez que se dispone de nuevos datos. El problema es que esos algoritmos generalmente tienen tiempos de ejecución superiores a lo que sería deseable para poder en marcha la decisión.


Sin embargo, el RL aprende “probando”, eso sí, probando de forma inteligente. Y tras “probar mucho” es capaz de ofrecer todo el aprendizaje destilado, típicamente, en forma de red neuronal. La red neuronal es una forma condensada de lo que en RL se llama política y recibe los datos de entrada y en un tiempo despreciable proponer la siguiente “mejor acción”. Es decir, no tenemos que esperar a que un algoritmo explore las posibles posibilidades descartando las que no son interesantes y ofreciendo una bueno o, idealmente, la mejor.


Una política en un problema de ruteo es capaz de proponer cuál es el siguiente cliente al que hay que visitar en función de los clientes que quedan por visitar, del estado del tráfico de la probabilidad de éxito de entrega según la hora de llegada.


La figura 1 representa los aspectos esenciales de la dinámica de un sistema de aprendizaje por refuerzo. De forma muy resumida, un agente interactúa con el entorno. En cada interacción, el agente realiza una acción. Como resultado de esa acción el entorno devuelve al agente una recompensa y se produce un cambio en el entorno, cuyo nuevo estado es el estado de partida a partir del cual el agente selecciona una nueva acción y el proceso continúa de la misma manera.

Figura 1. Aprendizaje por refuerzo. Esquema general. Fuente: Sutton y Barto (2018).

Los elementos esenciales de un problema de aprendizaje por refuerzo son los siguientes:

·        Agente. El agente representa al decisor que selecciona acciones y que, a partir de la información que recibe del entorno en forma de recompensa es capaz de aprender sobre cuáles son las acciones más convenientes para conseguir el mayor valor posible de las recompensas acumuladas en el tiempo.

·        Acción. Representa la decisión del agente que tiene algún tipo de impacto sobre el entorno. Cada problema tiene su espacio de acciones que, a su vez, pueden depender del estado en el que se encuentre el entorno.

·        Entorno. El entorno es todo aquello que queda fuera del control del agente y cuyo estado depende, al menos en parte de las acciones del agente. El entorno puede tener un comportamiento determinista o no determinista. En el primer caso, cuando para un entorno dado el agente selecciona una acción, el nuevo estado es siempre el mismo. En el segundo, el posible nuevo estado al que llega el agente no es siempre el mismo.

·        Estado y observación. El estado es la caracterización del sistema en un instante determinado. Según el tipo de problema, el entorno puede ser «completamente observable» o no. En caso afirmativo, lo que observa el agente sobre el entorno es toda la información relativa a su estado. En caso contrario, solo dispone de información parcial. En muchas ocasiones se habla de estado aun cuando el entorno no es completamente observable.

·        Política. La política es el elemento esencial que gobierna el comportamiento del agente. Una política es una función que permite seleccionar una acción de entre el conjunto de acciones del espacio de acciones. Las políticas pueden ser deterministas (dado un estado, el agente siempre selecciona la misma acción) o estocásticas (dado un estado, existe un conjunto de posibles acciones que el agente puede seleccionar cada una con una determinada probabilidad).

·        Recompensa. En cada interacción, el agente recibe una recompensa en función del nuevo estado en el que queda el entorno. La selección de la recompensa es un elemento esencial para que el agente reproduzca el comportamiento deseado.

·        Retorno. El retorno es la suma acumulada de las recompensas que el agente va recibiendo a lo largo del tiempo.

Para cada problema hay que caracterizar o construir cada uno de los elementos anteriores y el objetivo último es disponer de una política (generalmente una red neuronal entrenada).

Caracterizar la estructura de la red neuronal no es tarea menor y exige experiencia. Afortunadamente, existe un cuerpo de conocimiento cada vez mayor en el ámbito del Deep Learning que son de aplicación al Reinforcement Learning.

Además del reto técnico que representa la selección de la estructura de la red hay otros dos grandes problemas.

El primero es que el agente tiene que aprender y para ello necesita interactuar con el entorno. Obviamente, no es una buena opción que el agente aprenda de forma que tome decisiones que se pongan en marcha en el sistema real y que con ello aprenda. Antes de que el agente hubiera aprendido algo, la empresa de transporte habría quebrado. La buena noticia es que la simulación permite representar entornos complejos con suficiente fidelidad como para que el agente aprenda interactuando con un modelo de simulación desarrollado con el objeto de representar el sistema objeto de estudio. Además de ser económicamente viable (hacer las rutas mal durante varios meses es mucho más caro que construir un modelo de simulación) permite aprender mucho más rápido porque se puede replicar el comportamiento del sistema en una máquina, explorando miles de días en unos pocos minutos.

El segundo es el entrenamiento. Aun disponiendo de un modelo de simulación y de una estructura de red neuronal como corazón de un modelo de RL el tiempo de entrenamiento y los recursos que puede consumir no son pocos. La tecnología también avanza en este sentido y ahora tenemos Tensor Procesing Units (especialmente diseñadas para trabajar con tensores, que son el elemento vertebrador de la información de una red neuronal). Pero la inversión merece la pena. El tiempo y el dinero empleados en disponer de un agente que “ha aprendido” permite tomar decisiones con mucha más rapidez (en tiempo real) con lo que podemos operar con mucha más finura sistemas que así lo requiere.


[1] «Science and framework of learning to make decisions from interaction».

¿Tienes alguna duda sobre el aprendizaje por refuerzo?

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *