Una breve introducción al aprendizaje por refuerzo

El aprendizaje por refuerzo es un aspecto del aprendizaje automático en el que un agente aprende a comportarse en un entorno, realizando ciertas acciones y observando las recompensas / resultados que obtiene de esas acciones.

Con los avances en Robotics Arm Manipulation, Google Deep Mind venciendo a un Alpha Go Player profesional, y recientemente el equipo de OpenAI venciendo a un jugador DOTA profesional, el campo del aprendizaje por refuerzo realmente ha explotado en los últimos años.

En este artículo, discutiremos:

  • Qué es el aprendizaje por refuerzo y su esencia, como recompensas, tareas, etc.
  • 3 categorizaciones del aprendizaje por refuerzo

¿Qué es el aprendizaje por refuerzo?

Comencemos la explicación con un ejemplo: digamos que hay un bebé pequeño que comienza a aprender a caminar.

Dividamos este ejemplo en dos partes:

1. El bebé comienza a caminar y llega al sofá con éxito.

Dado que el sofá es el objetivo final, el bebé y los padres están felices.

Entonces, el bebé está feliz y recibe el agradecimiento de sus padres. Es positivo: el bebé se siente bien (Recompensa positiva + n).

2. El bebé comienza a caminar y se cae debido a algún obstáculo en el medio y se golpea.

¡Ay! El bebé se lastima y siente dolor. Es negativo: el bebé llora (Recompensa negativa -n).

Así es como aprendemos los humanos, por rastro y error. El aprendizaje por refuerzo es conceptualmente el mismo, pero es un enfoque computacional para aprender mediante acciones.

Aprendizaje reforzado

Supongamos que nuestro agente de aprendizaje por refuerzo está aprendiendo a jugar a Mario como ejemplo. El proceso de aprendizaje por refuerzo se puede modelar como un ciclo iterativo que funciona de la siguiente manera:

  • El agente de RL recibe el estado S ⁰ del entorno, es decir, Mario
  • Basado en ese estado S⁰, el agente RL realiza una acción A ⁰, digamos: nuestro agente RL se mueve a la derecha. Inicialmente, esto es aleatorio.
  • Ahora, el entorno está en un nuevo estado (nuevo marco de Mario o el motor del juego)
  • El entorno da alguna recompensa R ¹ al agente RL. Probablemente dé un +1 porque el agente aún no está muerto.

Este bucle de RL continúa hasta que estamos muertos o llegamos a nuestro destino, y genera continuamente una secuencia de estado, acción y recompensa.

El objetivo básico de nuestro agente de RL es maximizar la recompensa.

Maximización de recompensas

El agente RL básicamente trabaja sobre una hipótesis de maximización de la recompensa. Es por eso que el aprendizaje por refuerzo debe tener la mejor acción posible para maximizar la recompensa.

Las recompensas acumulativas en cada paso de tiempo con la acción respectiva se escriben como:

Sin embargo, las cosas no funcionan de esta manera al resumir todas las recompensas.

Entendamos esto, en detalle:

Digamos que nuestro agente RL (ratón robótico) está en un laberinto que contiene queso, descargas eléctricas y gatos . El objetivo es comer la máxima cantidad de queso antes de que el gato se lo coma o reciba una descarga eléctrica.

Parece obvio comer el queso cerca de nosotros en lugar del queso cerca del gato o la descarga eléctrica, porque cuanto más cerca estamos de la descarga eléctrica o del gato, aumenta el peligro de morir. Como resultado, se descontará la recompensa cerca del gato o la descarga eléctrica, aunque sea más grande (más queso). Esto se hace debido al factor de incertidumbre.

Tiene sentido, ¿verdad?

El descuento de recompensas funciona así:

Definimos una tasa de descuento llamada gamma . Debe estar entre 0 y 1. Cuanto mayor sea la gamma, menor será el descuento y viceversa.

Por lo tanto, nuestras recompensas acumuladas esperadas (con descuento) son:

Tareas y sus tipos en el aprendizaje por refuerzo

Una tarea es una instancia única de un problema de aprendizaje por refuerzo. Básicamente tenemos dos tipos de tareas: continuas y episódicas.

Tareas continuas

Estos son los tipos de tareas que continúan para siempre. Por ejemplo, un agente de RL que realiza operaciones automáticas de Forex / acciones.

En este caso, el agente tiene que aprender a elegir las mejores acciones y simultáneamente interactuar con el entorno. No hay un punto de partida ni un estado final.

El agente RL debe seguir ejecutándose hasta que decidamos detenerlo manualmente.

Tarea episódica

En este caso, tenemos un punto de inicio y un punto final llamado estado terminal. Esto crea un episodio : una lista de Estados (S), Acciones (A), Recompensas (R).

porPor ejemplo , jugar un juego de contraataque , en el que disparamos a nuestros oponentes o nos matan. Les disparamos a todos y completamos el episodio o nos matan. Entonces, solo hay dos casos para completar los episodios.

Compensación de exploración y explotación

Existe un concepto importante de la compensación de exploración y explotación en el aprendizaje por refuerzo. La exploración tiene que ver con encontrar más información sobre un entorno, mientras que la explotación es explotar información ya conocida para maximizar las recompensas.

Ejemplo de la vida real: digamos que vas al mismo restaurante todos los días. Básicamente estás explotando. Pero, por otro lado, si busca un nuevo restaurante cada vez antes de ir a cualquiera de ellos, entonces es exploración . La exploración es muy importante para la búsqueda de recompensas futuras que podrían ser más altas que las recompensas cercanas.

En el juego anterior, nuestro ratón robótico puede tener una buena cantidad de queso pequeño (+0,5 cada uno). Pero en la parte superior del laberinto hay una gran suma de queso (+100). Entonces, si solo nos enfocamos en la recompensa más cercana, nuestro mouse robótico nunca alcanzará la gran suma de queso, simplemente explotará.

Pero si el ratón robótico explora un poco, puede encontrar la gran recompensa, es decir, el gran queso.

Este es el concepto básico del intercambio de exploración y explotación.

Enfoques del aprendizaje por refuerzo

Entendamos ahora los enfoques para resolver problemas de aprendizaje por refuerzo. Básicamente, hay 3 enfoques, pero solo tomaremos 2 enfoques principales en este artículo:

1. Enfoque basado en políticas

En el aprendizaje por refuerzo basado en políticas, tenemos una política que debemos optimizar. La política básicamente define cómo se comporta el agente:

Aprendemos una función de política que nos ayuda a mapear cada estado con la mejor acción.

Profundizando en las políticas, dividimos las políticas en dos tipos:

  • Determinista : una política en un estado o estados determinados siempre devolverá la misma acción (a). Es decir, está mapeado previamente como S = (s) ➡ A = (a).
  • Estocástico : Da una distribución de probabilidad sobre diferentes acciones . es decir, política estocástica ➡ p (A = a | S = s)

2. Basado en valor

En el RL basado en el valor, el objetivo del agente es optimizar la función de valor V (s) que se define comouna función que nos dice la recompensa futura máxima esperada que el agente obtendrá en cada estado.

El valor de cada estado es el monto total de la recompensa que un agente de RL puede esperar cobrar en el futuro, de un estado en particular.

El agente utilizará la función de valor anterior para seleccionar qué estado elegir en cada paso. El agente siempre tomará el estado con mayor valor.

En el siguiente ejemplo, vemos que en cada paso, tomaremos el mayor valor para lograr nuestro objetivo: 1 3 4 ➡ 6 y así sucesivamente ...

El juego de Pong: un estudio de caso intuitivo

Tomemos un ejemplo de la vida real de jugar al pong. Este estudio de caso solo le presentará la intuición de cómo funciona el aprendizaje por refuerzo . No entraremos en detalles en este ejemplo, pero en el próximo artículo sin duda profundizaremos más.

Supongamos que le enseñamos a nuestro agente de RL a jugar Pong.

Básicamente, alimentamos los marcos del juego (nuevos estados) al algoritmo RL y dejamos que el algoritmo decida dónde subir o bajar. Se dice que esta red es una red de políticas, que discutiremos en nuestro próximo artículo.

El método utilizado para entrenar este algoritmo se llama gradiente de política . Alimentamos fotogramas aleatorios desde el motor del juego y el algoritmo produce una salida aleatoria que da una recompensa y esta se retroalimenta al algoritmo / red. Este es un proceso iterativo.

Discutiremos los gradientes de políticas en el próximo artículo con más detalles.

En el contexto del juego, el tablero de puntuación actúa como recompensa o retroalimentación para el agente. Siempre que el agente tiende a puntuar +1, entiende que la acción realizada por él fue suficientemente buena en ese estado.

Ahora entrenaremos al agente para que juegue al juego de pong. Para empezar, alimentaremos un montón de marcos de juego (estados) a la red / algoritmo y dejaremos que el algoritmo decida la acción. Las acciones iniciales del agente obviamente serán malas, pero nuestro agente a veces puede tener la suerte de obtener una puntuación. punto y esto podría ser un evento aleatorio. Pero debido a este afortunado evento aleatorio, recibe una recompensa y esto ayuda al agente a comprender que la serie de acciones fue lo suficientemente buena como para obtener una recompensa.

Por lo tanto, en el futuro, es probable que el agente tome las acciones que obtendrán una recompensa sobre una acción que no lo hará. Intuitivamente, el agente de RL se inclina a jugar.

Limitaciones

Durante el entrenamiento del agente, cuando un agente pierde un episodio, el algoritmo descartará o reducirá la probabilidad de realizar toda la serie de acciones que existieron en este episodio.

Pero si el agente se estaba desempeñando bien desde el comienzo del episodio, pero solo debido a las últimas 2 acciones, el agente perdió el juego, no tiene sentido descartar todas las acciones. Más bien tiene sentido si eliminamos las últimas 2 acciones que resultaron en la pérdida.

Esto se denomina problema de asignación de crédito. Este problema surge debido a una configuración de recompensa escasa. Es decir, en lugar de obtener una recompensa en cada paso, obtenemos la recompensa al final del episodio. Por lo tanto, depende del agente saber qué acciones fueron correctas y qué acción real llevó a perder el juego.

Por lo tanto, debido a esta configuración de recompensa escasa en RL, el algoritmo es muy ineficaz para las muestras. Esto significa que se deben incorporar grandes ejemplos de capacitación para capacitar al agente. Pero el hecho es que las configuraciones de recompensa dispersas fallan en muchas circunstancias debido a la complejidad del entorno.

Entonces, hay algo llamado modelado de recompensas que se usa para resolver esto. Pero, de nuevo, la configuración de recompensas también adolece de algunas limitaciones, ya que necesitamos diseñar una función de recompensa personalizada para cada juego.

Nota final

Hoy en día, el aprendizaje por refuerzo es un campo de estudio apasionante. Se han realizado importantes avances en este campo, uno de los cuales es el aprendizaje por refuerzo profundo.

Cubriremos el aprendizaje por refuerzo profundo en nuestros próximos artículos. Este artículo cubre muchos conceptos. Tómese su tiempo para comprender los conceptos básicos del aprendizaje por refuerzo.

Pero me gustaría mencionar que el refuerzo no es una caja negra secreta. Los avances que estamos viendo hoy en el campo del aprendizaje por refuerzo son el resultado de mentes brillantes que trabajan día y noche en aplicaciones específicas.

La próxima vez trabajaremos en un agente de Q-learning y también cubriremos algunas cosas más básicas sobre el aprendizaje por refuerzo.

¿Hasta entonces, disfrutar de la IA? ...

Importante : Este artículo es la primera parte de la serie Deep Reinforcement Learning. La serie completa estará disponible tanto en formularios de texto legible en Medium como en formato explicativo de video en mi canal de YouTube.

Para una comprensión más profunda e intuitiva del aprendizaje por refuerzo, le recomendaría que vea el siguiente video:

Suscríbase a mi canal de YouTube Para más videos de IA: ADL .

Si le gustó mi artículo, haga clic en ? como sigo motivado para escribir cosas y por favor síganme en Medium &

Si tiene alguna pregunta, hágamelo saber en un comentario a continuación o en Twitter . Suscríbase a mi canal de YouTube para obtener más videos sobre tecnología: ADL .