Reinforcement Learning — Aprendizaje por refuerzo

Referencia: https://bit.ly/2VPZuJr

Además de definir el aprendizaje por refuerzo (RL), este artículo le dará una imagen simple pero esencial de cómo se ve en la aplicación práctica. Al final, tendrás un conocimiento básico de:

  • Qué es el aprendizaje de refuerzo.
  • Cómo enmarcar su tarea en un problema de RL.
  • La relación entre RL y el aprendizaje supervisado / no supervisado.
  • Uso de OpenAI Gym para ejecutar una demostración RL con una regla simple.

El aprendizaje por refuerzo es un subcampo del aprendizaje automático que le enseña a un agente cómo elegir una acción de su espacio de acción, dentro de un entorno particular, para maximizar las recompensas con el tiempo.

El aprendizaje por refuerzo tiene cuatro elementos esenciales:

  • Agente. El programa que entrena, con el objetivo de hacer el trabajo que especifique.
  • Ambiente. El mundo, real o virtual, en el que el agente realiza acciones.
  • Acción. Un movimiento realizado por el agente, que provoca un cambio de estado en el entorno.
  • Recompensas La evaluación de una acción, que puede ser positiva o negativa.

Ejemplos del mundo real de modelar una tarea de aprendizaje por refuerzo

El primer paso para modelar una tarea de Aprendizaje de refuerzo es determinar cuáles son los 4 elementos, como se definió anteriormente. Una vez que se define cada elemento, está listo para asignar su tarea a ellos.Aquí hay algunos ejemplos para ayudarlo a desarrollar su intuición RL.

Agente: El programa toma decisiones sobre cuántos anuncios son apropiados para una página.

Ambiente: la página web.

Acción: uno de tres: (1) poner otro anuncio en la página; (2) dejar caer un anuncio desde la página; (3) ni agregar ni quitar.

Recompensa: Positiva cuando aumentan los ingresos; negativo cuando los ingresos caen.

En este escenario, el agente observa el entorno y obtiene su estado actual. El estado puede ser cuántos anuncios hay en la página web y si hay espacio para más o no.

El agente luego elige cuál de las tres acciones tomar en cada paso, si está programado para obtener recompensas positivas cada vez que aumentan los ingresos, y recompensas negativas cada vez que disminuyen los ingresos, puede desarrollar su regla efectiva.

Agente: El programa que decide qué mostrar a continuación en un catálogo de aprendizaje en línea.

Ambiente: el sistema de aprendizaje.Acción: reproducir un nuevo video de clase y un anuncio.

Recompensa: Positivo si el usuario elige hacer clic en el video de la clase presentada; mayor recompensa positiva si el usuario elige hacer clic en el anuncio; negativo si el usuario se va.

Este programa puede hacer que un sistema de clases personalizado sea más valioso. El usuario puede beneficiarse de un aprendizaje más efectivo y el sistema puede beneficiarse a través de una publicidad más efectiva.

Agente: El programa que controla un robot andante.

Ambiente: el mundo real.Acción: uno de cada cuatro movimientos (1) hacia adelante; (2) hacia atrás; (quedan 3; y (4) correcto.

Recompensa: Positiva cuando se acerca al destino objetivo; negativo cuando pierde tiempo, va en la dirección equivocada o se cae.

En este ejemplo final, un robot puede enseñarse a sí mismo a moverse de manera más efectiva adaptando su regla en función de las recompensas que recibe.

Aprendizaje supervisado, no supervisado y de refuerzo. ¿Cuales son las diferencias?

Agente: El programa que controla un robot andante.Medio ambiente: el mundo real.Acción: uno de cada cuatro movimientos (1) hacia adelante; (2) hacia atrás; (quedan 3; y (4) correcto.Recompensa: Positiva cuando se acerca al destino objetivo; negativo cuando pierde tiempo, va en la dirección equivocada o se cae.En este ejemplo final, un robot puede enseñarse a sí mismo a moverse de manera más efectiva adaptando su regla en función de las recompensas que recibe.

En el aprendizaje supervisado, los datos de capacitación dan la respuesta correcta. En Reinforcement Learning, la respuesta correcta no se da explícitamente: en cambio, el agente necesita aprender por prueba y error. La única referencia es la recompensa que obtiene después de realizar una acción, que le dice al agente cuándo está progresando o cuándo ha fallado.

Un agente de Reinforcement Learning necesita encontrar el equilibrio adecuado entre explorar el entorno, buscar nuevas formas de obtener recompensas y explotar las fuentes de recompensas que ya ha descubierto. Por el contrario, los sistemas de aprendizaje supervisados ​​y no supervisados ​​toman la respuesta directamente de los datos de entrenamiento sin tener que explorar otras respuestas.

El aprendizaje por refuerzo es un proceso de decisión múltiple: forma una cadena de toma de decisiones a través del tiempo requerido para terminar un trabajo específico. Por el contrario, el aprendizaje supervisado es un proceso de decisión única: una instancia, una predicción.

Introducción a OpenAI Gym

OpenAI Gym es un juego de herramientas para desarrollar y comparar algoritmos de aprendizaje de refuerzo. Es compatible con agentes de enseñanza en todo, desde caminar hasta jugar juegos como Pong o Pintall.

OpenAI Gym nos brinda entornos de juego en los que nuestros programas pueden tomar medidas. Cada entorno tiene un estado inicial. Después de que su agente tome una acción, el estado se actualiza.Cuando su agente observa el cambio, utiliza el nuevo estado junto con su regla para decidir qué acción hacer a continuación. La regla es clave: es el elemento esencial para que su programa continúe trabajando. Cuanto mejor sea la regla que aprenda su agente, mejor será el rendimiento que obtenga de ella.Aquí hay una demostración del juego CartPole de OpenAI. Podemos ver la regla en la sexta línea: el agente puede tomar una acción aleatoria desde su espacio de acción.

import gym
env = gym.make("CartPole-v1")
observation = env.reset()
for _ in range(1000):
env.render()
action = env.action_space.sample() # your agent here (this takes random actions)
observation, reward, done, info = env.step(action)
if done:
observation = env.reset()
env.close()

La 2da linea crea un entorno CartPole.

La 3ra linea inicializa los parámetros de estado.

La 5ta linea muestra el juego.

La 6ta línea solicita una acción con una regla que es “aleatoria”.

La 7ma linea la acción se toma y el medio ambiente da cuatro resultados.

  • Observación: Parámetros del estado del juego. Diferentes juegos devuelven diferentes parámetros. En CartPole, hay cuatro en total. El segundo parámetro es el ángulo del poste.
  • Recompensa: la puntuación que obtienes después de realizar esta acción.
  • Hecho: Juego terminado o no terminado.
  • Información: información adicional de depuración. Podría estar haciendo trampa.

La octava línea significa si el juego está terminado; reiniciarlo.

Reinforcement Learning Demo

La regla se puede programar de la forma que desee. Se puede basar en reglas if-else o en una red neuronal. Aquí hay una pequeña demostración simple, con la regla más simple para el juego CartPole.

import gym
def policy(observation):
angle = observation[2]
if angle < 0:
return 0
else:
return 1env = gym.make("CartPole-v1")
observation = env.reset()
for _ in range(1000):
env.render()
action = policy(observation)
observation, reward, done, info = env.step(action)
if done:
observation = env.reset()
env.close()

Por supuesto, el contenido de la función “policy” puede ser reemplazado por una red neuronal, con parámetros de observación como entrada y una acción como salida.

Conclusión:

  • El aprendizaje por refuerzo es un subcampo del aprendizaje automático, paralelo pero diferente del aprendizaje supervisado / no supervisado en varias formas.
  • Debido a que requiere datos y entorno simulados, es más difícil de aplicar a situaciones comerciales prácticas.
  • Sin embargo, su proceso de aprendizaje es natural en escenarios de toma de decisiones secuenciales, lo que hace que la tecnología RL sea indudablemente prometedora.

Actualmente hay dos métodos principales que se usan a menudo en RL: los gradientes de política basados ​​en la probabilidad y el Q-Learning basado en el valor.

Referencia: https://bit.ly/2VPZuJr

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store