En pocas palabras, el aprendizaje por refuerzo es una técnica de aprendizaje automático que implica entrenar a un agente de inteligencia artificial mediante la repetición de acciones y recompensas asociadas.
Un agente de aprendizaje por refuerzo experimenta en un entorno, toma acciones y es recompensado cuando se toman las acciones correctas. Con el tiempo, el agente aprende a realizar las acciones que maximizan la recompensa.
Esa es una definición rápida de aprendizaje por refuerzo, pero echar un vistazo más de cerca a los conceptos detrás del aprendizaje por refuerzo te va ayudar a obtener una comprensión mejor y más intuitiva del mismo.
El término aprendizaje por refuerzo está adaptado del concepto de refuerzo en psicología. Por esa razón, demos un repaso a entender el concepto psicológico de refuerzo.
En el sentido psicológico, el término de refuerzo se refiere a algo que aumenta la probabilidad de que ocurra una respuesta/acción en particular. Este concepto de reforzamiento es una idea central de la teoría del condicionamiento operante, propuesta inicialmente por el psicólogo BF Skinner.
En este contexto, el refuerzo es cualquier cosa que hace que aumente la frecuencia de un comportamiento dado. Si pensamos en posibles refuerzos para los humanos; estos pueden ser cosas como elogios, un aumento en el trabajo, premios o actividades divertidas.
Todo lo que debes saber del aprendizaje por refuerzo
En el sentido psicológico tradicional, hay dos tipos de refuerzo: El refuerzo positivo y refuerzo negativo
El refuerzo positivo es la adición de algo para aumentar un comportamiento, como darle una golosina a tu perro cuando se porta bien.
El refuerzo negativo consiste en eliminar un estímulo para provocar un comportamiento, como apagar los ruidos fuertes para persuadir a un gato asustadizo.
Refuerzo positivo y negativo
El refuerzo positivo aumenta la frecuencia de un comportamiento, mientras que el refuerzo negativo disminuye la frecuencia. En general, el refuerzo positivo es el tipo de refuerzo más común utilizado en el aprendizaje por refuerzo; ya que ayuda a los modelos a maximizar el rendimiento en una tarea determinada.
No solo eso, sino que el refuerzo positivo lleva al modelo a realizar cambios más sostenibles, cambios que pueden convertirse en patrones consistentes y persistir durante largos períodos de tiempo.
Por el contrario, si bien el refuerzo negativo también aumenta la probabilidad de que se produzca un comportamiento, se utiliza para mantener un estándar de rendimiento mínimo en lugar de alcanzar el rendimiento máximo de un modelo.
El refuerzo negativo en el aprendizaje por refuerzo puede ayudar a garantizar que un modelo se mantenga alejado de acciones indeseables, pero en realidad no puede hacer que un modelo explore las acciones deseadas.
Capacitación de un agente de refuerzo
Cuando se entrena un agente de aprendizaje por refuerzo, se utilizan cuatro ingredientes o estados diferentes en el entrenamiento: Estados iniciales (estado 0), estado nuevo (estado 1), acciones y recompensas.
Imagina que estamos entrenando a un agente de refuerzo para jugar un videojuego de plataformas en el que el objetivo de la IA es llegar al final del nivel moviéndose por la pantalla.
El estado inicial del juego se extrae del entorno, lo que significa que el primer cuadro del juego se analiza y se entrega al modelo. En base a esa información, el modelo debe decidir sobre la acción siguiente.
Durante las fases iniciales del entrenamiento, estas acciones son aleatorias, pero a medida que se refuerza el modelo, ciertas acciones se volverán más comunes. Después de realizar la acción, se actualiza el entorno del juego y se crea un nuevo estado o marco.
Si la acción realizada por el agente produjo un resultado deseable, digamos en este caso que el agente todavía está vivo y no ha sido golpeado por un enemigo, se le otorga alguna recompensa al agente y es más probable que haga lo mismo en el futuro.
Este sistema básico está constantemente en bucle, sucediendo una y otra vez y cada vez más; el agente intenta aprender un poco más y maximizar la recompensa.
Tareas episódicas vs continuas
Las tareas de aprendizaje por refuerzo normalmente se pueden colocar en una de estas dos categorías diferentes: Las tareas episódicas o tareas continuas.
Las tareas episódicas llevarán a cabo el ciclo de aprendizaje/entrenamiento y mejorarán su rendimiento hasta que se cumplan algunos criterios finales y entonces, se finalice el entrenamiento. En un juego, esto podría ser llegar al final de un nivel o caer en un peligro que concluya en daño del personaje.
Por el contrario, las tareas continuas no tienen criterios de terminación, esencialmente continuan entrenando para siempre hasta que el ingeniero decida terminar el entrenamiento.
Monte carlo vs diferencia temporal
Hay dos formas principales de aprender o entrenar a un agente de aprendizaje por refuerzo.
En el enfoque de Monte Carlo las recompensas se entregan al agente (su puntaje se actualiza) solo al final del episodio de entrenamiento.
Para decirlo de otra manera, solo cuando se cumple la condición de terminación, el modelo aprende qué tan bien se desempeñó.
Luego de eso, puede usar esa información para actualizar y cuando comience la próxima ronda de capacitación, responderá de acuerdo con la nueva información.
El método de diferencia temporal difiere del método de Monte Carlo en que la estimación del valor o la estimación de la puntuación, se actualiza durante el curso del episodio de entrenamiento. Una vez que el modelo avanza al siguiente paso de tiempo, los valores se actualizan.
Exploración vs explotación
Entrenar a un agente de aprendizaje por refuerzo es un acto de equilibrio, que implica el equilibrio de dos métricas diferentes: La exploración y la explotación.
La exploración es el acto de recopilar más información sobre el entorno circundante, mientras que la exploración utiliza la información ya conocida sobre el entorno para ganar puntos de recompensa.
Si un agente, solamente explora y nunca explota el entorno, nunca se llevarán a cabo las acciones deseadas. Por otro lado, si el agente solo explota y nunca explora, el agente solo aprenderá a realizar una acción y no descubrirá otras estrategias posibles para obtener recompensas.
Por lo tanto, equilibrar la exploración y la explotación es fundamental al crear un agente de aprendizaje por refuerzo.
Casos de uso para el aprendizaje por refuerzo
El aprendizaje por refuerzo se puede utilizar en una amplia variedad de funciones y es más adecuado para las aplicaciones en las que las tareas requieren de automatización.
La automatización de tareas que llevarán a cabo los robots industriales, es un gran área en la que el aprendizaje por refuerzo resulta útil. El aprendizaje por refuerzo también se puede utilizar para problemas como la minería de texto, creando modelos que puedan resumir cuerpos largos de texto.
Los investigadores de IA, también están experimentando con el uso del aprendizaje por refuerzo en el campo de la atención médica, con agentes de refuerzo que manejan trabajos como la optimización de las políticas de tratamiento.
El aprendizaje por refuerzo también podría usarse para personalizar el material educativo para cada estudiante específico.
Conclusión final sobre el aprendizaje por refuerzo
El aprendizaje por refuerzo es un método poderoso para construir agentes de IA que puede conducir a resultados impresionantes y a veces, sorprendentes.
Capacitar a un agente a través del aprendizaje por refuerzo puede ser complejo y difícil, ya que requiere muchas iteraciones de capacitación y un delicado equilibrio de la dicotomía explorar/explotar.
Sin embargo, si se tiene éxito, un agente creado con aprendizaje por refuerzo puede realizar tareas complejas en una amplia variedad de distintos entornos.