Nunca ignores el entrenamiento de refuerzo de nuevo.

Hola Habr! Les presento la traducción del artículo "No vuelvas a ignorar el aprendizaje de refuerzo de nuevo" por Michel Kana, Ph.D.

Aprender con un maestro y aprender sin un maestro no es todo. Todo el mundo lo sabe. Comience con OpenAI Gym.

imagen

¿Vas a derrotar al campeón mundial de ajedrez, al backgammon o ir?

Hay una manera que te permitirá hacer esto: entrenamiento de refuerzo.

¿Qué es el aprendizaje por refuerzo?


El aprendizaje reforzado es aprender a tomar decisiones consistentes en un entorno con la máxima recompensa recibida por cada acción.

No hay maestro en él, solo una señal de recompensa del medio ambiente. El tiempo importa y las acciones afectan los datos posteriores. Tales condiciones crean dificultades para aprender con o sin un maestro.

imagen

En el siguiente ejemplo, el mouse intenta encontrar tanta comida como sea posible y evita las descargas eléctricas cuando es posible.

imagen

Un ratón puede ser valiente y puede recibir una descarga para llegar a un lugar con mucho queso. Será mejor que quedarse quieto y no recibir nada.

El mouse no quiere tomar las mejores decisiones en cada situación específica. Esto requeriría un gran desembolso mental de ella, y no sería universal.

El entrenamiento con refuerzos proporciona algunos conjuntos mágicos de métodos que permiten a nuestro mouse aprender a evitar descargas eléctricas y obtener la mayor cantidad de comida posible.

El mouse es un agente. Un laberinto con paredes, queso y pistolas paralizantes es el medio ambiente . El mouse puede moverse hacia la izquierda, derecha, arriba, abajo: estas son acciones .

imagen

El ratón quiere queso, no una descarga eléctrica. El queso es una recompensa . El mouse puede inspeccionar el medio ambiente; estas son observaciones .

Entrenamiento de refuerzo de hielo


Dejemos el mouse en el laberinto y pasemos al hielo. “Ha llegado el invierno. Tú y tus amigos estaban tirando frisbee en el parque cuando de repente tiraste frisbee en medio del lago. Básicamente, el agua en el lago estaba congelada, pero había algunos agujeros donde el hielo se derretía. ( fuente )

imagen

“Si pisas uno de los agujeros, caerás en agua helada. Además, hay una gran escasez de frisbee en el mundo, por lo que es absolutamente esencial que rodees el lago y encuentres un disco ”. ( Fuente )

¿Cómo te sientes en una situación similar?


Este es un desafío para el aprendizaje por refuerzo. El agente controla los movimientos del personaje en el mundo de la cuadrícula. Algunas fichas de cuadrícula son pasables, mientras que otras hacen que el personaje caiga al agua. El agente recibe una recompensa por encontrar un camino transitable hacia la meta.

Podemos simular dicho entorno utilizando OpenAI Gym , un juego de herramientas para desarrollar y comparar algoritmos de aprendizaje con refuerzos. Proporciona acceso a un conjunto estandarizado de entornos, como en nuestro ejemplo, que se llama Frozen Lake . Este es un medio de texto que se puede crear con un par de líneas de código.

import gym from gym.envs.registration import register # load 4x4 environment if 'FrozenLakeNotSlippery-v0' in gym.envs.registry.env_specs: del gym.envs.registry.env_specs['FrozenLakeNotSlippery-v0'] register(id='FrozenLakeNotSlippery-v0', entry_point='gym.envs.toy_text:FrozenLakeEnv', kwargs={'map_name' : '4x4', 'is_slippery': False}, max_episode_steps=100, reward_threshold=0.8196 ) # load 16x16 environment if 'FrozenLake8x8NotSlippery-v0' in gym.envs.registry.env_specs: del gym.envs.registry.env_specs['FrozenLake8x8NotSlippery-v0'] register( id='FrozenLake8x8NotSlippery-v0', entry_point='gym.envs.toy_text:FrozenLakeEnv', kwargs={'map_name' : '8x8', 'is_slippery': False}, max_episode_steps=100, reward_threshold=0.8196 ) 

Ahora necesitamos una estructura que nos permita abordar sistemáticamente los problemas de aprendizaje con refuerzo.

Proceso de toma de decisiones de Markov


En nuestro ejemplo, el agente controla el movimiento del personaje en el mundo de la cuadrícula, y este entorno se denomina entorno totalmente observable.

Dado que el mosaico futuro no depende de mosaicos pasados ​​teniendo en cuenta el mosaico actual
(estamos tratando con una secuencia de estados aleatorios, es decir, con la propiedad de Markov ), por lo tanto, estamos tratando con el llamado proceso de Markov .

El estado actual encapsula todo lo que se necesita para decidir cuál será el próximo movimiento; no se necesita nada para recordar.

En cada celda siguiente (es decir, una situación), el agente elige con cierta probabilidad la acción que conduce a la celda siguiente, es decir, la situación y el entorno responde al agente con observación y recompensa.

Agregamos la función de recompensa y el coeficiente de descuento al proceso de Markov, y obtenemos el llamado proceso de recompensa de Markov . Al agregar un conjunto de acciones, obtenemos el proceso de toma de decisiones de Markov ( MDP ). Los componentes de MDP se describen con más detalle a continuación.

Condición


Un estado es parte del entorno, una representación numérica de lo que el agente observa en un determinado momento en el entorno, el estado de la red del lago. S es el punto de partida, G es el objetivo, F es el hielo sólido sobre el cual el agente puede pararse y H es el agujero en el que caerá el agente si lo pisa. Tenemos 16 estados en un entorno de cuadrícula de 4 por 4, o 64 estados en un entorno de 8 por 8. A continuación, dibujaremos un ejemplo de un entorno de 4 por 4 con OpenAI Gym.

 def view_states_frozen_lake(env = gym.make('FrozenLakeNotSlippery-v0')): print(env.observation_space) print() env.env.s=random.randint(0,env.observation_space.n-1) env.render() view_states_frozen_lake() 

Acciones


El agente tiene 4 acciones posibles, que se representan en el entorno como 0, 1, 2, 3 para izquierda, derecha, abajo, arriba, respectivamente.

 def view_actions_frozen_lake(env = gym.make('FrozenLakeNotSlippery-v0')): print(env.action_space) print("Possible actions: [0..%a]" % (env.action_space.n-1)) view_actions_frozen_lake() 

imagen

Modelo de transición de estado


El modelo de transición de estado describe cómo cambia el estado del entorno cuando un agente toma medidas en función de su estado actual.

El modelo generalmente se describe por la probabilidad de transición, que se expresa como una matriz de transición cuadrada de tamaño N x N, donde N es el número de estados de nuestro modelo. La siguiente ilustración es un ejemplo de dicha matriz para las condiciones climáticas.

imagen

En el entorno del lago congelado, suponemos que el lago no es resbaladizo. Si vamos a la derecha, entonces definitivamente vamos a la derecha. Por lo tanto, todas las probabilidades son iguales.

"Izquierda" mueve la celda del agente 1 a la izquierda o la deja en la misma posición si el agente está en el borde izquierdo.

"Derecha" lo mueve 1 celda hacia la derecha o lo deja en la misma posición si el agente está en el borde derecho.

“Arriba” mueve la celda del agente 1 hacia arriba, o el agente permanece en el mismo lugar si está en el límite superior.

“Abajo” mueve la celda del agente 1 hacia abajo, o permanece en el mismo lugar si está en el límite inferior.

Remuneración


En cada estado F, el agente recibe 0 recompensas; en el estado H, recibe -1, ya que, al pasar a este estado, el agente muere. Y cuando el agente alcanza la meta, recibe una recompensa +1.

Debido al hecho de que ambos modelos, el modelo de transición y el modelo de recompensa, son funciones deterministas, esto hace que el entorno sea determinista. \

Descuento


El descuento es un parámetro opcional que controla la importancia de futuras recompensas. Se mide en el rango de 0 a 1. El propósito de este parámetro es evitar que la recompensa total llegue al infinito.

El descuento también modela el comportamiento del agente cuando el agente prefiere la recompensa inmediata a la recompensa que se puede recibir en el futuro.

Valor


El valor de la fortuna es el ingreso esperado a largo plazo con un descuento por la fortuna.

Política (π)


La estrategia que utiliza el agente para seleccionar la siguiente acción se denomina política. Entre todas las políticas disponibles, la óptima es la que maximiza la cantidad de remuneración recibida o esperada durante el episodio.

Episodio


El episodio comienza cuando el agente aparece en la celda inicial y termina cuando el agente cae en el agujero o llega a la celda objetivo.

Vamos a visualizarlo todo


Después de revisar todos los conceptos involucrados en el proceso de toma de decisiones de Markov, ahora podemos modelar varias acciones aleatorias en un entorno de 16x16 usando OpenAI Gym. Cada vez, el agente selecciona una acción aleatoria y la realiza. El sistema calcula la recompensa y muestra el nuevo estado del entorno.

 def simulate_frozen_lake(env = gym.make('FrozenLakeNotSlippery-v0'), nb_trials=10): rew_tot=0 obs= env.reset() env.render() for _ in range(nb_trials+1): action = env.action_space.sample() # select a random action obs, rew, done, info = env.step(action) # perform the action rew_tot = rew_tot + rew # calculate the total reward env.render() # display the environment print("Reward: %r" % rew_tot) # print the total reward simulate_frozen_lake(env = gym.make('FrozenLake8x8NotSlippery-v0')) 

imagen

Conclusión


En este artículo, revisamos brevemente los conceptos básicos del aprendizaje por refuerzo. Nuestro ejemplo proporcionó una introducción al kit de herramientas OpenAI Gym, que facilita la experimentación con entornos prediseñados.

En la siguiente parte, presentaremos cómo diseñar e implementar políticas que le permitan al agente tomar una serie de acciones para lograr el objetivo y recibir un premio, como derrotar a un campeón mundial.

Gracias por su atencion

Source: https://habr.com/ru/post/475236/


All Articles