¿Qué es el aprendizaje por refuerzo?

El aprendizaje por refuerzo (RL) es un tipo de aprendizaje automático en el que un "agente" aprende el comportamiento óptimo a través de la interacción con su entorno. En lugar de depender de una programación explícita o de conjuntos de datos etiquetados, este agente aprende por prueba y error, y recibe comentarios en forma de recompensas o penalizaciones por sus acciones. Este proceso refleja cómo las personas suelen aprender de forma natural, lo que convierte al RL en un enfoque potente para crear sistemas inteligentes capaces de resolver problemas complejos.

Comprender el aprendizaje por refuerzo

El aprendizaje por refuerzo se basa en aprender a tomar decisiones. Imagina un agente, que podría ser cualquier cosa, de un programa de software a un robot, navegando en un entorno. Este entorno podría ser un espacio físico, un mundo de juego virtual o incluso un mercado. El agente realiza acciones en este entorno y esas acciones pueden llevar a ciertos resultados, algunos más deseables que otros.

El objetivo del agente es obtener la mayor cantidad de recompensas posible con el tiempo. Para ello, aprende una política, que es básicamente una estrategia que le indica qué acción debe tomar en cualquier situación determinada. Esta política se define mejor durante muchas iteraciones de interacción con el entorno.

A modo de ejemplo, considera una IA que juega al ajedrez. Las acciones del agente son los movimientos que realiza en el tablero de ajedrez. El entorno es el estado actual del juego, y la recompensa es ganar. A través de la repetición del juego y los comentarios sobre sus movimientos, el agente de RL aprende qué acciones tienen más probabilidades de llevar a la victoria.

¿Cómo funciona el aprendizaje por refuerzo?

Un ciclo de retroalimentación que consta de cuatro elementos clave determina el proceso de aprendizaje en el aprendizaje por refuerzo:

  • Agente: El estudiante y quien toma las decisiones en el sistema.
  • Entorno: El mundo externo con el que interactúa el agente.
  • Acciones: Las decisiones que el agente puede tomar en cada paso.
  • Recompensas: Los comentarios que recibe el agente después de realizar una acción, lo que indica la conveniencia del resultado.

Así es como se desarrolla el ciclo de retroalimentación:

  1. El agente observa el estado actual del entorno.
  2. Según su política, el agente selecciona y realiza una acción.
  3. El entorno responde a la acción y pasa a un nuevo estado.
  4. El agente recibe una señal de recompensa que refleja el valor del nuevo estado.
  5. Esta información de recompensa se usa para actualizar la política del agente, lo que hace que sea más probable que elija acciones que llevaron a recompensas positivas en el pasado.

Este proceso de prueba y error, en el que se obtienen comentarios y se mejoran las reglas, continúa hasta que el sistema aprende la mejor manera de obtener la mayor cantidad de recompensas con el tiempo.

Tipos de aprendizaje por refuerzo

Existen dos tipos principales de aprendizaje por refuerzo: basado en modelos y sin modelo. 

Basado en modelos

En el aprendizaje por refuerzo basado en modelos, el agente intenta crear un modelo interno del entorno. Este modelo permite que el agente prediga las consecuencias de sus acciones antes de realizarlas, lo que permite un enfoque más planificado y estratégico.

Imagina un robot que aprende a recorrer un laberinto. Un agente de RL basado en modelos intentaría crear una representación interna del diseño del laberinto. Luego, usaría este modelo para planificar una ruta, simulando diferentes acciones y sus resultados previstos antes de moverse.

Sin modelo

Por otro lado, el aprendizaje por refuerzo sin modelo no se basa en la creación de un modelo explícito del entorno. En cambio, se enfoca en aprender directamente la política óptima; para ello, asocia acciones con valores basados en las recompensas recibidas.

Volviendo al ejemplo del laberinto, un agente sin modelo no se molestaría en mapear todo el laberinto. En cambio, aprendería qué acciones, como girar a la izquierda o a la derecha en intersecciones específicas, tienen más probabilidades de llevar a la salida basándose únicamente en sus experiencias pasadas y las recompensas recibidas.

Técnicas de aprendizaje por refuerzo

Si bien el objetivo siempre es maximizar las recompensas, las diferentes técnicas de RL ofrecen distintas estrategias para lograrlo. Volvamos a nuestro robot en el laberinto:

  • Q-Learning: Este es un método popular sin modelo. Imagina que el robot crea una "hoja de referencia" mientras explora. Para cada intersección (estado), la hoja enumera una "puntuación de calidad" (valor Q) para cada turno posible (acción). Después de muchas pruebas y errores, el robot aprende la mejor puntuación posible para cada turno en cada intersección. Para encontrar la salida, solo sigue el camino con las puntuaciones más altas en su hoja de referencia.
  • SARSA (State-Action-Reward-State-Action): Este método es muy similar al Q-Learning, pero el robot es un poco más cauteloso. En lugar de suponer siempre que dará el mejor paso posible, actualiza su hoja de referencia en función de la acción que realmente realiza de acuerdo con su estrategia actual. Esto lo convierte en un método "sobre políticas", ya que aprende en función de la política que sigue actualmente.
  • Redes de Deep Q (DQN): ¿Qué sucede si el laberinto es enorme, con millones de estados posibles (como una pantalla de videojuego)? Una hoja de referencia no es práctica. Una DQN reemplaza la hoja de referencia por una red neuronal profunda. La red actúa como una "función" inteligente que puede observar cualquier estado nuevo y estimar el valor Q, incluso si nunca antes vio esa situación exacta. Así es como la IA de DeepMind aprendió a jugar videojuegos de Atari.
  • Métodos de gradiente de políticas: Estos métodos adoptan un enfoque más directo. En lugar de aprender un valor para cada acción, el robot aprende una política general o un conjunto de probabilidades de qué hacer en cualquier situación (por ejemplo, "70% de probabilidad de que deba girar a la izquierda en las intersecciones en T"). Luego, ajusta estas probabilidades directamente en función de si su recorrido general fue exitoso, lo que mejora gradualmente sus "instintos" para maximizar la recompensa final.

Cuándo usar el aprendizaje por refuerzo

El aprendizaje por refuerzo es una herramienta poderosa que es más adecuada para ciertos casos. Estos son algunos ejemplos de las áreas en las sobresale el RL:

Entornos complejos con numerosos estados y acciones

El RL puede manejar situaciones en las que la programación tradicional o los sistemas basados en reglas serían demasiado engorrosos.

Situaciones en las que los datos se generan a través de la interacción

El aprendizaje por refuerzo funciona bien cuando el agente puede aprender interactuando activamente con su entorno y recibiendo comentarios.

Objetivos que implican una optimización a largo plazo

Las tareas en las que es fundamental maximizar la recompensa acumulativa con el tiempo pueden ser adecuadas para el aprendizaje por refuerzo.

Ventajas y desafíos del aprendizaje por refuerzo

El aprendizaje por refuerzo es una buena forma de resolver problemas difíciles, pero es importante pensar en sus fortalezas y debilidades. Conocer estos posibles beneficios y desafíos ayuda a decidir si el RL es adecuado para diferentes trabajos y cómo usarlo.

Ventajas del RL

  • Puede resolver problemas complejos: El aprendizaje por refuerzo puede funcionar bien en situaciones en las que los enfoques de programación tradicionales tienen dificultades, ya que ofrece soluciones para problemas complejos.
  • Adaptabilidad: Los agentes de RL pueden adaptarse a entornos cambiantes y aprender nuevas estrategias, lo que los hace adecuados para situaciones dinámicas.
  • Encuentra soluciones óptimas: A través de la exploración y el aprendizaje continuos, el RL busca descubrir las estrategias más eficaces para lograr un objetivo.

Desafíos del RL

  • Puede requerir grandes cantidades de datos: El aprendizaje por refuerzo suele requerir una gran cantidad de datos de interacción para aprender de manera eficaz, lo que puede llevar mucho tiempo y requerir muchos recursos para recopilar.
  • El diseño de recompensas es fundamental: El éxito del RL depende en gran medida del diseño de una función de recompensa que refleje con precisión el comportamiento deseado, lo que puede ser un desafío en algunas tareas.
  • Preocupaciones de seguridad en aplicaciones del mundo real: En situaciones del mundo real, como la robótica, es fundamental garantizar que las acciones del agente sean seguras durante el proceso de aprendizaje.

Aprendizaje por refuerzo comparado con el aprendizaje supervisado y no supervisado

El aprendizaje por refuerzo, el aprendizaje supervisado y el aprendizaje no supervisado son subcampos del aprendizaje automático, pero difieren en sus enfoques fundamentales:

  • Aprendizaje supervisado: En el aprendizaje supervisado, el algoritmo aprende de un conjunto de datos etiquetado, asignando entradas a salidas según los ejemplos proporcionados. Piénsalo como aprender con un profesor que proporciona las respuestas correctas.
  • Aprendizaje no supervisado: Los algoritmos de aprendizaje no supervisado exploran datos sin etiquetar para identificar patrones, relaciones o estructuras. Es como aprender sin un profesor, tratando de entender los datos de forma independiente.
  • Aprendizaje por refuerzo: Como ya vimos, el RL se enfoca en aprender a través de la interacción con un entorno y recibir comentarios en forma de recompensas o penalizaciones. Es como aprender a prueba y error, ajustando el comportamiento en función de los resultados de las acciones.

Aplicaciones del aprendizaje por refuerzo

La capacidad del RL para aprender comportamientos complejos a través de la interacción lo convierte en una herramienta adecuada para una amplia gama de usos, incluidos los siguientes:

Sistemas de recomendación

El aprendizaje por refuerzo puede ayudar a personalizar las recomendaciones aprendiendo de las interacciones de los usuarios. Si se tratan los clics, las compras o el tiempo de reproducción como indicadores, los algoritmos de RL pueden optimizar los motores de recomendación para maximizar la participación y la satisfacción de los usuarios. Por ejemplo, un servicio de transmisión de música podría usar el RL para sugerir canciones o artistas que se alineen con las preferencias cambiantes de un usuario.

Desarrollo de juegos

La industria de los videojuegos adoptó el aprendizaje por refuerzo y lo usa para desarrollar agentes de juego altamente capacitados. Estos agentes de IA, entrenados con RL, pueden alcanzar una notable competencia en juegos complejos, lo que demuestra un pensamiento estratégico avanzado y habilidades para tomar decisiones. Entre los ejemplos notables, se incluyen AlphaGo y AlphaZero, creados por DeepMind, que demostraron el poder del RL alcanzando un rendimiento de alto nivel en juegos como el ajedrez.

Control de robótica

El RL ayuda a los robots a aprender habilidades motoras complejas y a navegar por entornos desafiantes. Cuando se recompensa a los robots por los comportamientos deseados, como agarrar objetos o moverse de manera eficiente, el RL puede ayudar a automatizar tareas que requieren motricidad y adaptabilidad. Esto puede tener aplicaciones en la fabricación, la logística y hasta la atención médica, donde los robots pueden ayudar con la cirugía o el cuidado de los pacientes.

Crea y escala soluciones de aprendizaje por refuerzo en Google Cloud

Desarrollar un sistema de aprendizaje por refuerzo requiere una plataforma sólida para entrenar agentes y un entorno escalable para implementarlos. Google Cloud proporciona los componentes necesarios:

  • Para crear y entrenar modelos: Vertex AI es una plataforma de aprendizaje automático unificada que simplifica todo el flujo de trabajo del AA. Puedes usarla para crear, entrenar y administrar tus modelos, experimentos y datos de RL en un solo lugar.
  • Para una implementación escalable: Los agentes de RL a menudo deben implementarse en entornos complejos y dinámicos. Google Kubernetes Engine (GKE) proporciona un servicio administrado y escalable para ejecutar tus agentes alojados en contenedores, lo que les permite interactuar con su entorno y escalar según sea necesario.

Da el siguiente paso

Comienza a desarrollar en Google Cloud con el crédito gratis de $300 y los más de 20 productos del nivel Siempre gratuito.

Google Cloud