Reinforcement Learning

Introducción a Reinforcement Learning

3 cosas que debe saber

Reinforcement Learning es una técnica de Machine Learning en la que un agente informático aprende a realizar una tarea mediante interacciones repetidas de prueba y error con un entorno. Este enfoque de aprendizaje permite que el agente tome una serie de decisiones que aumentan una métrica de recompensa para la tarea, sin intervención humana y sin estar programado explícitamente para completar la tarea.

Cómo funciona Reinforcement Learning

El mecanismo de entrenamiento típico de Reinforcement Learning refleja muchos escenarios del mundo real. Piense, por ejemplo, en el adiestramiento de mascotas mediante refuerzo positivo.

Perro que interactúa con una adiestradora. En la terminología de Reinforcement Learning, el perro es el agente y la adiestradora forma parte del entorno.

Reinforcement Learning en adiestramiento canino.

Vehículo que aprende a estacionar de forma autónoma, donde el computador del vehículo actúa como agente de Reinforcement Learning.

Reinforcement Learning en estacionamiento autónomo.

Empleando terminología de Reinforcement Learning, el objetivo de aprendizaje en este caso es entrenar al perro (agente) para que complete una tarea en un entorno, que incluye lo que rodea al perro, así como a la adiestradora. En primer lugar, la adiestradora emite un comando o indicación, que el perro observa (observación). Después, el perro responde realizando una acción. Si la acción se aproxima al comportamiento deseado, la adiestradora proporciona una recompensa, como una golosina o un juguete; en caso contrario, no proporciona una recompensa. Al comienzo del entrenamiento, es probable que el perro realice acciones más aleatorias, como rodar por el suelo cuando el comando emitido es “sentado”, ya que intenta asociar observaciones específicas con acciones y recompensas. Esta asociación, o correspondencia, entre observaciones y acciones se denomina política. Desde la perspectiva del perro, lo ideal sería responder correctamente a todas las indicaciones para recibir el mayor número posible de golosinas. Por tanto, el objetivo del entrenamiento con Reinforcement Learning es “ajustar” la política del perro para que aprenda los comportamientos deseados para obtener la mayor recompensa posible. Una vez finalizado el entrenamiento, el perro debería ser capaz de observar a su dueña y realizar la acción adecuada; por ejemplo, sentarse cuando oiga el comando “sentado”, aplicando la política interna que ha desarrollado. En este punto, las golosinas son bienvenidas, pero, en teoría, no deberían ser necesarias.

Teniendo en cuenta el ejemplo del adiestramiento canino, piense en la tarea de estacionar un vehículo utilizando un sistema de conducción autónoma. El objetivo es enseñar al computador del vehículo (agente) a estacionar en la plaza correcta con Reinforcement Learning. Al igual que en el caso del adiestramiento canino, el entorno es todo lo que existe fuera del agente, e incluye la dinámica del vehículo, otros vehículos cercanos y condiciones meteorológicas, entre otros elementos. Durante el entrenamiento, el agente utiliza lecturas de sensores de cámaras, GPS y LiDAR (observaciones) para generar comandos de viraje, frenado y aceleración (acciones). Para aprender a generar las acciones correctas a partir de las observaciones (ajuste de la política), el agente intenta estacionar el vehículo repetidamente utilizando un proceso de prueba y error. Se puede proporcionar una señal de recompensa para evaluar la validez de la prueba y guiar el proceso de aprendizaje.

En el ejemplo del adiestramiento canino, el entrenamiento se produce dentro del cerebro del perro. En el ejemplo del estacionamiento autónomo, el entrenamiento lo gestiona un algoritmo de entrenamiento. El algoritmo de entrenamiento es responsable de ajustar la política del agente en base a las lecturas de sensores, acciones y recompensas recopiladas. Una vez finalizado el entrenamiento, el computador del vehículo debería ser capaz de estacionar utilizando únicamente la política ajustada y las lecturas de los sensores. Tenga en cuenta que estos dos casos son ejemplos de Reinforcement Learning sin modelo, ya que ambos implican interacciones de prueba y error con el entorno para generar datos.

Los componentes principales de Reinforcement Learning (política, entorno, agente, acciones, recompensas y observaciones) se formalizan en un marco denominado proceso de decisión de Markov, que proporciona un modelo matemático para la toma de decisiones en entornos con incertidumbre.

Comparación entre exploración y explotación

El equilibrio entre exploración y explotación es un aspecto esencial de Reinforcement Learning que puede afectar en gran medida a la calidad del aprendizaje. La idea es la siguiente: ¿el agente debería aprovechar el conocimiento del entorno, seleccionando las acciones que ya sabe que obtienen la mayor recompensa, o debería elegir acciones que exploren partes del entorno que aún desconoce? Las decisiones que toma el agente determinan la información que recibe y, por tanto, la información de la que puede aprender. Con demasiada exploración, el agente no podrá converger en una buena política. Con demasiada explotación, el agente puede quedarse atascado en soluciones locales no óptimas. En general, tiene sentido que el agente explore más al comienzo del aprendizaje, cuando no hay suficiente información para explotar, y que transite gradualmente hacia una mayor explotación al final.

Deep Reinforcement Learning

Deep Reinforcement Learning combina Reinforcement Learning y Deep Learning. Aunque para problemas sencillos puede ser suficiente una política en forma de tabla de búsqueda, este enfoque no se puede escalar bien a problemas de gran tamaño ni de naturaleza continua. Las redes neuronales profundas entrenadas con Deep Reinforcement Learning pueden codificar comportamientos complejos, lo que ofrece un enfoque alternativo para aplicaciones que de otro modo serían inabordables o más difíciles de tratar con métodos más tradicionales. Por ejemplo, en conducción autónoma, una red neuronal puede reemplazar al conductor y decidir cómo girar el volante observando simultáneamente múltiples sensores, como fotogramas de cámaras y mediciones de LiDAR. Sin redes neuronales, el problema normalmente se dividiría en partes más pequeñas, como extraer características de los fotogramas de cámaras, filtrar las mediciones de LiDAR, fusionar las salidas de sensores y tomar decisiones de “conducción” basadas en entradas de sensores, lo que se podría resolver más fácilmente con representaciones de políticas más tradicionales, como tablas de búsqueda o funciones polinómicas.

Flujo de trabajo de Reinforcement Learning

El flujo de trabajo general para entrenar un agente empleando Reinforcement Learning incluye los siguientes pasos:

  1. Crear el entorno. En primer lugar, debe definir el entorno en el que opera el agente de Reinforcement Learning. El entorno puede ser un modelo de simulación o un sistema físico real, pero los entornos de simulación suelen ser un buen primer paso, ya que son más seguros y permiten experimentar.
  2. Definir la red. A continuación, especifique la señal de recompensa que el agente utiliza para medir su rendimiento respecto de los objetivos de la tarea, y cómo se calcula esta señal a partir del entorno. El diseño de recompensas puede resultar complejo y requerir algunas iteraciones hasta lograr un buen resultado.
  3. Crear el agente. Luego debe crear el agente, lo que incluye seleccionar la representación de la política, por ejemplo, red neuronal o tablas de búsqueda, y seleccionar y ajustar el algoritmo de entrenamiento de Reinforcement Learning.
  4. Entrenar y validar el agente. Configure las opciones de entrenamiento, por ejemplo, criterios de detención, y entrene el agente para ajustar la política. Asegúrese de validar la política entrenada cuando finalice el entrenamiento.
  5. Desplegar la política. Despliegue la representación de la política entrenada utilizando, por ejemplo, código C/C++ o CUDA generado. En este punto, la política es un sistema de toma de decisiones independiente.
Pasos del flujo de trabajo de Reinforcement Learning: Entorno, Recompensa, Agente, Entrenamiento del agente y Despliegue.

Flujo de trabajo de Reinforcement Learning.

Entrenar un agente con Reinforcement Learning es un proceso iterativo. Las decisiones y resultados en etapas posteriores pueden requerir que vuelva a una etapa anterior del flujo de trabajo de aprendizaje. Si el proceso de entrenamiento no converge en una política óptima en un plazo razonable, se recomienda revisar la definición del problema (dinámica, observaciones, acciones), señal de recompensa, arquitectura de la política e hiperparámetros del algoritmo antes de volver a realizar el entrenamiento.

Tipos de algoritmos de Reinforcement Learning

Comparación entre Reinforcement Learning, Machine Learning y Deep Learning

A diferencia de Machine Learning no supervisado y supervisado, Reinforcement Learning no necesita un conjunto de datos estático, sino que puede operar en un entorno dinámico y aprender de experiencias recopiladas. Los puntos de datos, o experiencias, pueden recopilarse durante el entrenamiento mediante interacciones de prueba y error entre el entorno y un agente de software. Este aspecto de Reinforcement Learning es importante, porque reduce la necesidad de recopilar datos, preprocesarlos y etiquetarlos antes del entrenamiento, algo que es necesario en el aprendizaje supervisado y no supervisado.

Deep Learning abarca los tres tipos de Machine Learning; Reinforcement Learning y Deep Learning no son mutuamente excluyentes. Para los problemas complejos de Reinforcement Learning se suele recurrir a redes neuronales profundas y Deep Reinforcement Learning.

Ilustraciones de aprendizaje no supervisado, supervisado y Reinforcement Learning que muestran clustering, clasificación y un sistema de trayectorias basado en recompensas, respectivamente.

Tres categorías generales de Machine Learning: aprendizaje no supervisado, aprendizaje supervisado y Reinforcement Learning.

Diagrama de Venn que ilustra tres clases principales de algoritmos de Reinforcement Learning: los algoritmos basados en valores y basados en políticas se superponen para crear algoritmos de actor-crítico.

Tres categorías principales de algoritmos de Reinforcement Learning.

Algoritmos de Reinforcement Learning

Los algoritmos de Reinforcement Learning pueden organizarse en varias categorías en base a sus enfoques de aprendizaje y toma de decisiones.

Comparación entre algoritmos de Reinforcement Learning basados en valores, basados en políticas y actor-crítico

Existen tres clases principales de algoritmos de Reinforcement Learning:

  • Métodos basados en valores: Se centran en aprender una función de valor, como la función Q, que estima la recompensa acumulada esperada por realizar cierta acción en un estado dado y seguir después una determinada política. El ejemplo más conocido es Q-Learning. La política se deriva indirectamente a partir de la función de valor seleccionando la acción con el valor más alto en cada estado; es decir, de forma codiciosa con respecto a la función de valor. Los métodos basados en valores suelen ser sencillos y eficientes en cuanto a muestras, pero están limitados a un conjunto de acciones discretas de tamaño razonable. Piense en el tiempo que llevaría extraer la política a partir de la función de valor si el espacio de acciones es de alta dimensión.
  • Métodos basados en políticas: Aprenden directamente una política parametrizada que asigna estados a acciones, optimizan los parámetros de la política para aumentar las recompensas esperadas, y funcionan de modo muy similar al descenso de gradiente tradicional. Algunos ejemplos son REINFORCE y otros métodos de gradiente de política. Estos métodos son adecuados intrínsecamente para espacios de acciones continuos o de gran tamaño, y también pueden aprender políticas estocásticas, lo que puede resultar útil para exploración y aleatorización de dominio. Los inconvenientes de los métodos basados en políticas son un aprendizaje lento e inestable, ineficiencia en el uso de muestras y sensibilidad a mínimos locales.
  • Métodos actor-crítico: Combinan las ventajas de los enfoques basados en valores y basados en políticas. El actor actualiza la política directamente, mientras que el crítico evalúa las acciones estimando funciones de valor. La retroalimentación del crítico genera una actualización más estable y eficiente, ya que reduce la varianza de las estimaciones del gradiente de política. Además, disponer de una representación directa de la política (actor) ayuda con problemas de espacios de acciones continuos y de alta dimensión. La principal desventaja de estos métodos es el mayor número de elementos que se deben implementar y ajustar (actor y crítico). Algunos ejemplos de algoritmos de actor-crítico son gradiente de política determinística profunda (DDPG), optimización proximal de políticas (PPO) y actor-crítico suave (SAC).
Cuatro pasos de alto nivel de un algoritmo de actor-crítico de Reinforcement Learning: 1) El actor selecciona una acción 2) El crítico realiza una predicción del valor de esa acción 3) El crítico se actualiza usando la recompensa obtenida por aplicar esa acción 4) El actor se actualiza con la respuesta del crítico.

Reinforcement Learning actor-crítico en acción.

Comparación entre algoritmos de Reinforcement Learning basados en modelos y sin modelos

Reinforcement Learning basado en modelos crea o utiliza un modelo de la dinámica del entorno (probabilidades de transición y funciones de recompensa) para planificar y tomar decisiones. La palabra “planificar” es clave; estos algoritmos suelen necesitar menos interacciones con el entorno, o ninguna, ya que recurren a su modelo interno para simular estados futuros. El modelo interno puede proporcionarse de antemano, en cuyo caso el agente no necesita interactuar con el entorno en absoluto, o puede aprenderse a partir de datos recopilados de interacciones con el entorno real. Reinforcement Learning basado en modelos suele ser más eficiente en cuanto a muestras que el enfoque sin modelos, ya que el modelo puede utilizarse para generar rápidamente conjuntos de datos de entrenamiento de gran tamaño. Sin embargo, dependiendo de si el modelo interno está disponible o se aprende, los métodos basados en modelos pueden requerir muchos más recursos de cálculo que los métodos sin modelo, ya que, además de entrenar el agente base, también deben entrenar el modelo del entorno y generar datos de entrenamiento.

A diferencia de los algoritmos basados en modelos, los métodos sin modelos no generan un modelo explícito del entorno. En cambio, aprenden acciones óptimas a través de interacción directa, basándose en prueba y error, como los ejemplos de adiestramiento canino y estacionamiento autónomo de la sección anterior. Este enfoque es más sencillo y se adapta mejor a entornos de alta dimensión o no estructurados, aunque normalmente es menos eficiente en cuanto a uso de datos. La mayoría de los algoritmos de Reinforcement Learning de última generación no utilizan modelos.

Comparación entre algoritmos de Reinforcement Learning online y offline

Reinforcement Learning online implica un agente que interactúa activamente con el entorno durante el aprendizaje, recopilando experiencias, actualizando su política y adaptándose continuamente a medida que llegan nuevos datos. Los escenarios de adiestramiento canino y estacionamiento autónomo descritos anteriormente son ejemplos de Reinforcement Learning online.

En cambio, Reinforcement Learning offline o por lotes aprende únicamente a partir de un conjunto de datos estático de experiencias registradas, por ejemplo, de demostraciones humanas o políticas anteriores, sin interacción adicional con el entorno. Los métodos offline destacan cuando la interacción con el mundo real es costosa o insegura, y pueden extraer información útil incluso de datos aleatorios o no expertos, aunque la calidad del aprendizaje será inferior a la obtenida con datos expertos o más estructurados. En la práctica, Reinforcement Learning offline suele ser una buena opción para entrenar previamente una política antes de pasar a Reinforcement Learning online, que, aunque es ineficiente en cuanto a muestras, normalmente logra un rendimiento superior, ya que se adapta continuamente usando datos nuevos.

Comparación entre algoritmos de Reinforcement Learning on-policy y off-policy

Los algoritmos de Reinforcement Learning on-policy actualizan y evalúan la misma política que se utiliza para generar datos de entrenamiento, lo que significa que el agente aprende el valor de la política actual a partir de sus propias acciones, por ejemplo, SARSA, PPO, TRPO. Este enfoque suele generar actualizaciones más estables y fiables, ya que no se busca conciliar diferencias entre la política de comportamiento y la política objetivo, como ocurre en los métodos off-policy. Dado que se mantiene y actualiza una sola política, también tienden a tener menor complejidad computacional.

En cambio, los métodos off-policy, como Q-Learning, DQN, utilizan datos recopilados por una política de comportamiento para aprender o mejorar una política objetivo diferente, por ejemplo, una estrategia codiciosa u óptima. Como resultado, pueden almacenar experiencias pasadas (datos) en un buffer de repetición y reutilizarlas múltiples veces. Esto mejora de forma notable la eficiencia en el uso de muestras en comparación con los métodos on-policy, que descartan los datos después de cada actualización de la política. Otra ventaja de los métodos off-policy es que pueden aprender de cualquier política, así como datos aleatorios, desactualizados o incluso generados por humanos. Esta flexibilidad permite realizar entrenamiento a partir de conjuntos de datos offline o demostraciones.

Comparación entre algoritmos de Reinforcement Learning basados en gradientes y evolutivos

Los algoritmos basados en gradientes son el motor de muchos algoritmos contemporáneos de Deep Reinforcement Learning, ya que utilizan estimaciones con ruido del gradiente de política mediante retropropagación, lo que permite un aprendizaje rápido y eficiente en cuanto a muestras. Por otro lado, son sensibles a hiperparámetros, propensos a óptimos locales y requieren diferenciabilidad.

En cambio, Reinforcement Learning evolutivo trata la política como una caja negra y es una herramienta potente cuando no se dispone de gradientes, o no son fiables, cuando se puede acceder a cálculo paralelo masivo o cuando se necesita una exploración amplia en espacios de búsqueda irregulares. Las estrategias evolutivas realizan búsquedas de forma global mediante mutaciones y selecciones basadas en poblaciones, lo que aporta solidez ante señales de recompensa escasas o no diferenciables, aunque son mucho menos eficientes en cuanto a muestras y tardan más en converger.

Las técnicas híbridas permiten cada vez más aprovechar lo mejor de ambos enfoques: usan evolución para exploración y búsqueda global, y luego refinan políticas viables con actualizaciones basadas en gradientes, lo que a menudo proporciona un rendimiento general superior.

Comparación entre algoritmos de Reinforcement Learning tabulares y basados en redes neuronales

El tipo de problema suele determinar el algoritmo más adecuado. Si los espacios de estados y de acciones del entorno son discretos y poco numerosos, puede utilizar una tabla sencilla para representar políticas. Q-Learning y SARSA son ejemplos de algoritmos tabulares comunes. Representar los parámetros de la política en una tabla no es viable cuando el número de pares estado-acción se hace grande o infinito. Esto se conoce como maldición de la dimensionalidad, y aquí son relevantes las redes neuronales. En general, la mayoría de los algoritmos de Reinforcement Learning modernos se basan en redes neuronales porque son una buena opción para espacios de estado-acción de gran tamaño y problemas complejos.

Comparación entre algoritmos de Reinforcement Learning de agente único y multiagente

En Reinforcement Learning de agente único, solo un agente interactúa con el entorno, lo que simplifica el aprendizaje, y lo hace más estable y más fácil de analizar. En cambio, Reinforcement Learning multiagente (MARL) utiliza múltiples agentes que interactúan dentro del mismo entorno. Puesto que los agentes se influyen entre sí, el entorno no es estacionario, lo que incumple las suposiciones de Markov y desestabiliza los procesos de aprendizaje. Aunque MARL puede resolver tareas más complejas y desarrollar comportamientos emergentes como coordinación o negociación, también presenta desafíos, como problemas de convergencia, altas exigencias de cálculo, e inestabilidad si cada agente se actualiza de manera independiente.

Ventajas y desafíos de Reinforcement Learning

Ventajas de Reinforcement Learning

Aunque Reinforcement Learning no es un concepto nuevo, los avances recientes en Deep Learning y potencia de cálculo han hecho posible lograr resultados notables en el ámbito de la inteligencia artificial.

Entre las ventajas de Reinforcement Learning se cuentan:

  • Capacidad para resolver tareas complejas y secuenciales. Reinforcement Learning puede aprender a optimizar objetivos a largo plazo a través de muchos pasos, lo que ofrece una vía alternativa de exploración para problemas difíciles de resolver con métodos más tradicionales. Deep Reinforcement Learning también puede generar, potencialmente, soluciones de extremo a extremo usando sensores avanzados o complejos, y aprovechando las capacidades de representación de las redes neuronales.
  • Menor dependencia de datos etiquetados. A diferencia del aprendizaje supervisado, Reinforcement Learning puede aprender directamente a partir de retroalimentación del entorno mediante recompensas y penalizaciones, lo que reduce la necesidad de costosos conjuntos de datos etiquetados.
  • Menos requisitos para conjuntos de datos existentes. Reinforcement Learning suele aprender a partir de datos generados sobre la marcha, pero esto no significa que no pueda utilizar conjuntos de datos existentes. De hecho, a diferencia del aprendizaje supervisado, Reinforcement Learning offline puede extraer información útil incluso de datos no expertos o de datos que no codifican el comportamiento deseado que se desea aprender.
  • Adaptabilidad, autocorrección y solidez. Reinforcement Learning refina de manera continua el comportamiento utilizando prueba y error, lo que permite a los agentes revisar sus estrategias en base al rendimiento incluso después del despliegue. Además, su diseño permite gestionar condiciones no determinísticas en las que los resultados son impredecibles, lo que se adapta a la complejidad del mundo real.

Desafíos de Reinforcement Learning

Reinforcement Learning es una técnica potente, pero también plantea desafíos, como los siguientes:

  • Alta barrera de entrada. Reinforcement Learning suele presentar una alta barrera de entrada debido a la complejidad de los algoritmos y conceptos.
  • Altas exigencias de datos y cálculo (ineficiencia en el uso de muestras). El entrenamiento suele requerir muchos datos, lo que se traduce en un gran número de interacciones o simulaciones. Como resultado, no es infrecuente que problemas complejos requieran múltiples días de entrenamiento para converger.
  • Alto número de parámetros de diseño. Reinforcement Learning tiene un gran número de hiperparámetros que requieren ajuste, como señal de recompensa, arquitectura de la red neuronal e hiperparámetros específicos del agente. Incluso cambios pequeños en estos parámetros pueden afectar radicalmente al rendimiento del entrenamiento, lo que a menudo exige múltiples intentos para entrenar una política aceptable.
  • Desafíos de generalización y transferencia. Con frecuencia, los agentes tienen dificultades para rendir fuera de sus escenarios de entrenamiento o para transferir el aprendizaje a partir de la simulación al mundo real de forma eficiente, lo que se conoce como brecha sim2real.
  • Problemas de verificación, interpretabilidad y depuración. Por muy potente que sea Deep Reinforcement Learning, las redes neuronales tienen sus propias limitaciones. Las políticas de redes neuronales complejas son difíciles de explicar y depurar, lo que reduce la transparencia. Además, la verificación formal de redes neuronales sigue siendo un área abierta, lo que convierte la aplicación de Deep Reinforcement Learning a sistemas críticos en materia de seguridad en un desafío.

Aplicaciones de Reinforcement Learning en sistemas de ingeniería

Reinforcement Learning se ha utilizado en múltiples áreas en los últimos años, como chatbots de IA y macromodelos de lenguaje (LLM), sistemas de recomendación, marketing y publicidad, y videojuegos. Sin embargo, todavía se encuentra, en gran medida, en fase de evaluación para aplicaciones de producción, y especialmente en el caso de los sistemas de ingeniería. La buena noticia es que las ventajas mencionadas abren, poco a poco pero de forma constante, el uso de la tecnología en varias áreas. Las aplicaciones de la vida real de Reinforcement Learning en sistemas de ingeniería suelen encuadrarse en estas áreas:

  • Controles avanzados: Controlar sistemas no lineales o complejos, o sistemas con retroalimentación de sensores más avanzada, es un desafío y a menudo requiere trabajo previo adicional, por ejemplo, linealizar el sistema en distintos puntos de funcionamiento o extraer características de datos de sensores, como imágenes. En esos casos, Reinforcement Learning puede aplicarse directamente sin trabajo previo adicional. Las áreas de aplicación incluyen conducción autónoma, como decisiones sobre conducción basadas en entrada de cámaras, y robótica, como enseñar a un brazo robótico a manipular diversos objetos para aplicaciones de pick-and-place, o enseñar a un robot a caminar.
  • Planificación: Los problemas de planificación aparecen en control de semáforos, coordinación de recursos en plantas de fabricación y muchos otros escenarios. Reinforcement Learning es una buena alternativa a los métodos evolutivos para resolver estos problemas de optimización combinatoria de alta dimensión.
  • Calibración: Las aplicaciones que implican la calibración manual de parámetros, como calibración de unidades de control electrónico (ECU) o motores, o aquellas propensas a errores humanos, como optimización de líneas de producción, pueden beneficiarse del uso de Reinforcement Learning.
  • Problemas antagónicos: En Machine Learning, las aplicaciones antagónicas implican entradas elaboradas deliberadamente, denominadas ejemplos antagónicos, diseñadas para aprovechar debilidades de otros modelos, sistemas o entornos. Un ejemplo de Reinforcement Learning antagónico sería diseñar un agente de verificación de políticas que intente que otra política o cualquier otro algoritmo “falle” para identificar contraejemplos y evaluar vulnerabilidades de un sistema. Reinforcement Learning antagónico también es especialmente útil en aplicaciones de ciberseguridad, donde puede utilizarse para simular ataques a fin de probar defensas, y viceversa.
  • Optimización de diseño: Un área que puede beneficiarse en gran medida de Reinforcement Learning es la optimización de diseño basada en simulación, especialmente si las simulaciones son costosas. Los agentes de Reinforcement Learning pueden explorar el espacio de diseño de manera inteligente, lo que reduce la cantidad de datos de entrenamiento y simulaciones necesarias. Algunos ejemplos de aplicación concretos son el diseño de radar y la optimización de la colocación de circuitos integrados.

MATLAB®, Simulink® y Reinforcement Learning Toolbox™ simplifican las tareas de Reinforcement Learning. Puede implementar controladores y algoritmos de toma de decisiones recorriendo cada paso del flujo de trabajo de Reinforcement Learning dentro del mismo ecosistema. En concreto, puede:

  1. Crear entornos de entrenamiento y señales de recompensa en MATLAB y Simulink. Interactuar fácilmente con los entornos creados mediante funciones de MATLAB y bloques de Simulink.
  2. Crear políticas basadas en redes neuronales de forma programática o interactiva con Deep Network Designer. Si lo prefiere, puede utilizar tablas de búsqueda y polinomios.
  3. Alternar, evaluar y comparar algoritmos populares basados en valores, basados en políticas y actor-crítico como DQN, DDPG, PPO y SAC con cambios mínimos de código, o bien crear su propio algoritmo personalizado. Probar distintos enfoques de entrenamiento listos para usar, como Reinforcement Learning de agente único/multiagente, basado en gradientes/evolutivo, online/offline y basado en modelos/sin modelos.
  4. Diseñar, entrenar y simular agentes de Reinforcement Learning de manera interactiva con la app Reinforcement Learning Designer.
  5. Desplegar políticas de Reinforcement Learning en sistemas de producción y dispositivos embebidos, con herramientas de generación automática de código. Si es necesario, reducir la superficie de memoria de políticas de redes neuronales con técnicas de compresión antes del despliegue.
App Reinforcement Learning Designer que muestra cuadros de diálogo interactivos para configurar hiperparámetros de un agente.

Creación de un agente de Reinforcement Learning de manera interactiva con la app Reinforcement Learning Designer. Consulte la documentación.

Gestión de desafíos comunes de Reinforcement Learning con MATLAB y Simulink

Puede utilizar MATLAB y Simulink para afrontar muchos de los desafíos comúnmente asociados a Reinforcement Learning.

Alta barrera de entrada

Iníciese rápidamente en Reinforcement Learning. Pruebe algoritmos listos para usar sin necesidad de desarrollo manual, consulte ejemplos de referencia para obtener ideas sobre cómo plantear un problema, y progrese rápidamente con recursos didácticos y cursos de formación gratuitos.

Altas exigencias de datos y cálculo, ineficiencia en el uso de muestras

Con Parallel Computing Toolbox™ y MATLAB Parallel Server™ puede entrenar políticas de Reinforcement Learning más rápidamente utilizando múltiples GPU, múltiples CPU, clusters de equipos informáticos y recursos en la nube. Por ejemplo, puede generar datos de entrenamiento más rápidamente ejecutando múltiples simulaciones en paralelo, y acelerar el aprendizaje aumentando la velocidad de los cálculos de gradientes.

Reinforcement Learning Toolbox también ofrece prestaciones para Reinforcement Learning basado en modelos, que pueden ayudar con la eficiencia en el uso de muestras.

Los agentes de optimización de políticas basada en modelos (MBPO) pueden ser más eficientes en el uso de muestras que los agentes sin modelos, ya que el modelo puede generar grandes conjuntos de experiencias diversas.

Diagrama que muestra cómo el problema se puede ejecutar en múltiples equipos utilizando cálculo paralelo para acelerar Reinforcement Learning y obtener una política óptima más rápidamente.

Entrenamiento de un problema de aprendizaje ineficiente en el uso de muestras con cálculo paralelo.

Alto número de parámetros de diseño

Puede utilizar Reinforcement Learning Toolbox para reducir el número de hiperparámetros que se deben ajustar manualmente. Por ejemplo, puede crear agentes sin especificar manualmente la arquitectura de políticas de redes neuronales; puede ajustar hiperparámetros de agentes de manera interactiva con optimización bayesiana en la app Reinforcement Learning Designer. Además, puede generar funciones de recompensa automáticamente si ya cuenta con especificaciones de Model Predictive Control Toolbox™ o restricciones de rendimiento especificadas con bloques de verificación de modelos de Simulink Design Optimization™.

Desafíos de generalización y transferencia

Las simulaciones son clave en Reinforcement Learning. La integración estrecha con Simulink facilita la mejora de la generalización de políticas mediante aleatorización de dominio, entrenando agentes en distintos escenarios, incluso en condiciones extremas o peligrosas que sería difícil y arriesgado recrear en el mundo real.

Con Reinforcement Learning Toolbox, se pueden aprovechar plenamente todas las fuentes de datos disponibles para mejorar la generalización y cerrar la brecha sim2real. Con Reinforcement Learning offline puede entrenar previamente una política usando datos existentes, como datos procedentes de hardware objetivo. Luego, puede mejorar la política entrenándola con un entorno de simulación y aplicar aleatorización de dominio para que sea sólida frente a factores y escenarios inciertos. Para garantizar que el modelo de simulación representa el sistema del mundo real con precisión, puede recurrir a la identificación de sistemas. El último paso del proceso es ajustar la política entrenada mediante entrenamiento directo con el hardware real, si es necesario. Aunque incluir hardware real en el lazo de entrenamiento normalmente sería arriesgado e incluso peligroso, los dos primeros pasos de este flujo de trabajo garantizan que el número de interacciones con el hardware físico necesarias para ajustar la política sea mínimo. Esta funcionalidad también puede utilizarse para aplicaciones en tiempo real.

Diagrama que muestra Reinforcement Learning offline, identificación de sistemas y entrenamiento directo con sistemas de hardware reales.

Flujo de trabajo de transferencia sim2real con Reinforcement Learning Toolbox que aprovecha todas las fuentes de datos disponibles para mejorar la generalización.

Problemas de verificación, interpretabilidad y depuración

Reinforcement Learning suele caracterizarse por “errores silenciosos”, es decir, problemas sutiles y difíciles de detectar que pueden surgir durante el entrenamiento o la ejecución. Reinforcement Learning Toolbox permite registrar y visualizar datos de entrenamiento claves para facilitar el análisis y la depuración.

La interpretabilidad y la verificación siguen siendo áreas abiertas y activas en la comunidad de investigación, especialmente en lo relativo a redes neuronales. Deep Learning Toolbox™ ofrece una gama de métodos de visualización, un tipo de técnica de interpretabilidad que explica las predicciones de una red sirviéndose de representaciones visuales de lo que una red observa. Otro enfoque consiste en emplear lógica difusa; entrenar un sistema de inferencia difusa (FIS) para replicar el comportamiento de una política de (Deep) Reinforcement Learning permite utilizar las reglas del FIS para explicar su comportamiento.

La verificación basada en simulación es el enfoque más común para validar políticas de Reinforcement Learning, y es más fácil de realizar con Simulink. Con el diseño basado en modelos, la verificación basada en simulación puede ampliarse mediante verificación y validación tradicionales. Por ejemplo, puede formalizar requisitos para una política y analizar su coherencia, integridad y precisión con Requirements Toolbox™. Además, puede evaluar determinadas propiedades de las políticas de redes neuronales, como solidez y límites de resultados de red, sirviéndose de métodos formales disponibles en Deep Learning Toolbox Verification Library.

Una última cuestión que se debe tener en cuenta es que dividir un problema complejo en subproblemas más pequeños puede ayudar con todos los desafíos tratados en esta sección. La depuración y la interpretabilidad se vuelven más abordables, ya que un problema más pequeño suele requerir una arquitectura de política más simple, y los requisitos de verificación podrían reducirse. En estas situaciones, Reinforcement Learning puede combinarse con métodos (de control) tradicionales. La idea principal que subyace a esta arquitectura es que los métodos verificables o tradicionales pueden utilizarse para tratar los aspectos críticos en materia de seguridad del problema, mientras que las políticas de Reinforcement Learning de caja negra pueden ocuparse de componentes de nivel superior, potencialmente menos críticos. Otra arquitecturas que se puede considerar es utilizar un enfoque híbrido en el que un método tradicional se ejecuta junto con Reinforcement Learning, o bien utilizar Reinforcement Learning para complementar o corregir un método tradicional. MATLAB facilita la implementación de estas arquitecturas; además de Reinforcement Learning y métodos basados en IA, puede acceder a diversos métodos tradicionales listos para usar y combinarlos empleando Simulink como única plataforma de simulación.

Diagrama de bloques que combina Reinforcement Learning con un controlador tradicional.

Combinar Reinforcement Learning con métodos tradicionales puede facilitar la aplicación a sistemas críticos en materia de seguridad.