10 - Control con Monte Carlo

Lección 10 del curso Aprendizaje por Refuerzo Nivel Intermedio.

Introducción

En la lección anterior vimos el algoritmo de predicción con Monte Carlo que en esencia permite evaluar una política a partir de la experiencia, es decir directamente a partir de la interacción entre el agente y el entorno, sin necesidad de conocer el modelo de dicho entorno.

En esta lección veremos cómo usar estas misma ideas para obtener una política óptima para el agente. Así que veremos en detalle los métodos de Control con Monte Carlo.

Suscríbete para tener acceso al video con la explicación detallada de esta lección. Además podrás disfrutar de todos los cursos de la Academia Online

Repaso: la iteración de la política en la Programación Dinámica

Como lo vimos en el caso de la Programación Dinámica, el algoritmo de iteración de la Política permite obtener una política óptima para el agente combinando de forma iterativa los algoritmos de evaluación de la Política y mejora de la Política.

En ese caso veíamos que primero se evaluaba la política (es decir se calculaba la función estado-valor) y luego se mejoraba calculando la función acción-valor) y escogiendo la mejor acción posible para cada estado.

Iteración de la Política en Monte Carlo: Control con Monte Carlo

La Iteración de la Política en Monte Carlo (también conocida como Control con Monte Carlo) también busca obtener una política óptima a partir de la combinación iterativa de algoritmos de evaluación y mejora.

La evaluación la haremos con el algoritmo de predicción con Monte Carlo descrito en la lección anterior, mientras que la mejora la haremos usando la función acción-valor, que nos indicará para cada estado el valor de cada una de las acciones disponibles.

Pero en el caso de la Programación Dinámica la ventaja era que conocíamos el modelo del entorno, y resultaba “sencillo” encontrar la mejor acción para cada estado.

Sin embargo, en Monte Carlo no conocemos el modelo del entorno, así que con antelación no sabremos cuál es la mejor acción para cada estado. Así, para estimar la Política óptima NO podemos simplemente tomar el valor asociado a la mejor acción posible.

Así que tenemos que encontrar un balance adecuado entre dos conceptos importantes: la explotación y la explotación.

Explotación vs. Exploración

Al momento de estimar la política óptima debemos garantizar un adecuado balance entre estos dos aspectos.

La explotación es uno de esos extremos, y consiste simplemente en tomar siempre aquella acción que arroje el máximo valor para un estado en particular. Pero si siempre tomamos esa acción, estaremos dejando de un lado otras acciones disponibles que, si bien pueden no tener un valor alto, a la larga podrían generarnos un mejor retorno.

El otro extremo es la exploración: tomar aleatoriamente cualquier acción para un estado determinado. Si bien esto nos permitirá, como su nombre lo indica, explorar nuevas acciones, al introducir esta aleatoriedad prácticamente no estaremos teniendo en cuenta la política, que es precisamente el elemento que queremos mejorar.

Así que lo ideal es encontrar un balance adecuado entre estos dos extremos: que el agente siga en buena parte la política (explotación) pero que a su vez tenga algo de libertad para, en ocasiones, elegir otras posibles acciones (exploración).

ϵ-greedy: aprendizaje “codicioso”

Una manera de lograr este balance entre explotación y exploración es usando el algoritmo ϵ-greedy (épsilon codicioso).

La idea es sencilla: usar un parámetro (ϵ, entre 0 y 1) que indique la probabilidad de escoger una acción aleatoria o de escoger la mejor acción posible para cada estado.

Con este enfoque podremos lograr un balance entre exploración y explotación.

Control “on-policy” vs control “off-policy”

El algoritmo que acabamos de ver usa la misma política que está mejorando para, de forma iterativa, llegar a una política óptima. Por eso, ese algoritmo recibe el nombre de Control “on-policy”.

Pero tiene una desventaja, y es que como vimos la política que genera al final de cada iteración no es óptima pues estamos dejando una posibilidad de exploración con el parámetro ϵ. Es decir que queremos llegar a una política óptima partiendo de una política sub-óptima.

Una alternativa a esta situación es separar el elemento exploratorio de la política que queremos optimizar. Así, en los algoritmos de control “off-policy” (fuera de la política) usaremos dos políticas: una política de comportamiento (b) que es de carácter exploratorio y que es usada para generar las interacciones del agente en cada iteración del algoritmo, y la política a optimizar (π) que será la que iremos mejorando en cada iteración.

Recuerda suscribirte para acceder al video con la explicación detallada de esta lección. Además podrás disfrutar de todos los cursos de la Academia Online

Conclusión

Muy bien. Acabamos de ver los dos principales algoritmos de Control con Monte Carlo: “on-policy” y “off-policy”. Cualquiera de estos dos puede ser usado para optimizar la política, aunque en la práctica los algoritmos “off-policy” son los más usados.

Con estos métodos estamos listos para la práctica 3 del curso, en donde veremos cómo entrenar un agente usando los algoritmos de [Monte Carlo y OpenAI Gym].

Ver todas las lecciones de este curso