Está en la página 1de 15

Clase Nº3:

Aprendizaje por refuerzo

Curso:
Técnicas avanzadas de minería de datos

Profesor

Sebastián Raveau
Clase Nº3:
Aprendizaje por refuerzo
Tabla de contenidos

Contenido
1. Resultado de aprendizaje de la clase u objetivos 3
2. Introducción 3
3. Aprendizaje por refuerzo 3
3.1. Componentes del aprendizaje por refuerzo 4
3.2. Procesos de Decisión de Markov 7
3.3. Algoritmo Minimax 8
3.4. Funciones de valor 13
4. Métodos de Monte Carlo 14
5. Conclusión 15
6. Referencias bibliográficas 15

© Sebastián Raveau
1. Resultado de aprendizaje de la clase u objetivos

En esta clase exploraremos los conceptos básicos del aprendizaje por refuerzo, incluyendo sus componentes,
los procesos de toma de decisiones ante incertidumbre, y la función de valor que darán lugar a políticas para
llevar a cabo acciones. Además, presentaremos algunos de los principales algoritmos de aprendizaje por
refuerzo.

2. Introducción

El aprendizaje por refuerzo es una técnica de aprendizaje automático donde se busca entrenar a un agente
para que tome decisiones óptimas en un entorno incierto. A través del aprendizaje por refuerzo, los agentes
pueden aprender a tomar decisiones y a mejorar su rendimiento a lo largo del tiempo mediante la interacción
con el entorno, desarrollando políticas para la toma de decisiones.

El entrenamiento de los agentes puede desarrollarse de distintas maneras. Una manera sencilla de
entrenamiento, pero que eventualmente puede tomar un largo tiempo, puede ser por prueba y error. En
general, se definen algoritmos de entrenamiento dirigido que permitan al agente adquirir conocimiento de
manera más eficiente, a fin de acelerar su aprendizaje. Al enfrentarse a una tarea, el agente es recompensado
por los buenos resultados, aprendiendo así políticas óptimas de toma de decisiones.

El aprendizaje por refuerzo posee aplicaciones en diversos campos, siendo algunos de los más habituales:

• Robótica: El aprendizaje por refuerzo se utiliza para entrenar robots en tareas específicas, como la
manipulación de objetos y la navegación en entornos desconocidos.

• Juegos: El aprendizaje por refuerzo se utiliza para entrenar a los agentes en juegos como el ajedrez,
el go y el póker, donde el agente aprende a tomar decisiones a través de la retroalimentación que
recibe del juego.

• Control de procesos: El aprendizaje por refuerzo se utiliza para controlar procesos complejos, como
la optimización del uso de energía en edificios y la gestión del tráfico aéreo.

• Finanzas: El aprendizaje por refuerzo se utiliza para modelar y predecir el comportamiento del
mercado financiero, y para tomar decisiones en la gestión de carteras y la negociación de activos.

• Sistemas de recomendación: El aprendizaje por refuerzo se utiliza para mejorar dichos sistemas,
permitiéndoles aprender de la retroalimentación del usuario y adaptarse a los cambios en las
preferencias del usuario.

2.1. Aprendizaje por refuerzo

Una característica básica del aprendizaje por refuerzo es la toma de decisiones para conseguir un objetivo
ante presencia de incertidumbre en el entorno. Dicha incertidumbre implica que los efectos de cierta decisión
a futuro no son siempre conocidos, por lo que no es claro cuál es la mejor decisión. El aprendizaje por refuerzo
consiste entonces en entrenar a un agente para que tome dichas decisiones.

© Sebastián Raveau
En el aprendizaje por refuerzo, el agente aprenderá a tomar decisiones a través de la interacción con su
entorno, recibiendo señales de recompensa o castigo que le indican si sus decisiones son acertadas o no. El
objetivo del agente es aprender a maximizar su recompensa a lo largo del tiempo, encontrando así una
estrategia óptima para tomar decisiones.

El aprendizaje por refuerzo se basa en la idea de que el agente no necesita un conjunto de datos previamente
etiquetados para aprender, sino que puede aprender a través de la experiencia y la retroalimentación del
entorno. Esto lo diferencia de otros tipos de aprendizaje automático, como las técnicas de aprendizaje
supervisado y aprendizaje no supervisado.

Supongamos que queremos entrenar un agente para jugar ajedrez. De momento, asumiremos que mueve
piezas del tablero al azar (siempre y cuando dichos movimientos sean válidos) y aprenderá de la
retroalimentación que se le entregue sobre si está cumpliendo o no un determinado objetivo. Dichos
objetivos pueden ser diversos. Consideremos dos posibles objetivos que podrían ayudar al agente a aprender
a jugar ajedrez, mediante recompensas al conseguirlos:

a. Capturar alguna pieza del oponente


b. Poner al oponente en jaque mate

Por un lado, si el objetivo es capturar piezas del oponente, el agente obtendrá retroalimentación rápido
(porque el objetivo sucederá frecuentemente) y por lo tanto podrá aprenderá rápidamente los conceptos
básicos del ajedrez. Sin embargo, debido a que no conocería la condición ganadora, poner al oponente en
jaque mate, el agente puede tener dificultades para aprender una estrategia que le permita ganar.

Por otro lado, si el objetivo es poner al oponente en jaque mate, el agente sabrá directamente cómo ganar
el juego., Pero debido a que será extremadamente inusual poner al oponente en jaque mate moviendo piezas
al azar, el proceso de aprendizaje sería muy lento.

2.2. Componentes del aprendizaje por refuerzo

El aprendizaje por refuerzo posee distintos componentes que interactúan:

• Agente: Es la entidad que aprenderá sobre su entorno y sobre las decisiones que puede tomar para
lograr cierto objetivo. Necesitamos especificar un algoritmo de aprendizaje para que el agente pueda
aprender políticas de decisiones.

• Entorno: Todo lo que está fuera del control del agente, incluidos otros agentes. En el ejemplo del
ajedrez, pueden ser las reglas del juego y las jugadas que realice el oponente.

• Recompensa: Corresponden a la representación numérica de la retroalimentación del entorno. El


objetivo del agente es maximizar las recompensas. Penalizaciones o castigos pueden ser
representados como recompensas negativas.

• Estado: Los estados son la representación del entorno. En el instante 𝑡 el agente se encuentra en el
estado 𝑆𝑡 ∈ 𝑆, donde 𝑆 es el conjunto de todos los estados posibles.

© Sebastián Raveau
• Acción: En el periodo 𝑡 el agente toma ejecuta la acción 𝐴𝑡 ∈ 𝐴(𝑆𝑡 ), donde 𝐴(𝑆𝑡 ) es el conjunto de
todas las acciones disponibles en el estado 𝑆𝑡 .

• Política: Es el resultado del aprendizaje. Una política 𝜋(𝐴|𝑆) le indica al agente qué acción tomar en
un determinado estado. Las políticas pueden ser determinísticas o estocásticas.

La interacción de los distintos componentes se ilustra en la Figura 1:

Agente
Política 𝜋

Estado Recompensa Acción


𝑆𝑡 𝑅𝑡 𝐴𝑡

𝑅𝑡+1
Entorno
𝑆𝑡+1

Figura 1: Componentes del aprendizaje por refuerzo


Fuente: Elaboración propia

El objetivo del aprendizaje por refuerzo es encontrar una política 𝜋 que posea la mayor recompensa esperada
acumulada en todos los instantes de tiempo futuros.

Consideremos como ejemplo el popular juego de tres en línea (conocido en Chile como “gato”). Este es un
juego entre dos jugadores (nuestros agentes) con información perfecta. Información perfecta implica que
ambos agentes tienen conocimiento absoluto respecto del entorno. Juegos sin información perfecta (como
el póker, donde hay información oculta ya que un jugador no conoce la mano del oponente) poseerán más
incertidumbre, la que deberá ser tomada en consideración, que juegos con información perfecta.

Existen 255.168 diferentes maneras de jugar tres en línea. En 131.184 casos gana quien juega primero (51,4%
de las veces), en 77.904 casos ganas quien juega segundo (30,5% de las veces) y en 46.080 casos el juego
termina en empate (18,1%). Estos porcentajes serían los que obtendrían dos agentes jugando al azar. El
objetivo del aprendizaje por refuerzo será que los agentes aprendan y desarrollen una política que les
permita mejorar sus probabilidades de ganar, ya sea jugando primero o jugando segundo. Un juego perfecto
de tres en línea siempre acabará en empate.

Supongamos que estamos jugando con las X, es nuestro turno y nos encontramos en el siguiente estado:

© Sebastián Raveau
O X O

O X X

Figura 2: Estado del juego tres en línea


Fuente: Elaboración propia

Tenemos tres posibles acciones para colocar nuestra siguiente X. Asumiendo de momento que nuestro
oponente juega perfectamente, una de las acciones nos llevará a ganar (recompensa = 1), una de las acciones
nos llevará a perder (recompensa = -1) y una de las acciones nos llevará a empatar (recompensa = 0).

O X O O X O O X O

O X X O X X O X X

X X X

↓ ↓

O X O O X O

O X X O X X

O X X O

O X O

O X X

X O X

Recompensa = 1 Recompensa = -1 Recompensa = 0


Figura 3: Alternativas de acciones
Fuente: Elaboración propia

Cuando el agente está en una etapa inicial de aprendizaje, la política puede ser aleatoria, asignando
probabilidad 1/3 a cada una de las acciones. El proceso de aprendizaje le entregará información al agente
respecto del estado de la Figura 2 dos aspectos:

© Sebastián Raveau
En primer lugar, que la acción que maximiza la recompensa corresponde a elegir el estado de la izquierda.
Por lo tanto, la política se debiese actualizar a elegir el estado de la izquierda con probabilidad 1 y los estados
del centro y derecha con probabilidad 0.

En segundo lugar, que, si el juego llega al estado de la Figura 2, el agente puede ganar el juego y alcanzar la
recompensa máxima. Por lo tanto, el agente debiese actualizar las políticas de turnos anteriores para
aumentar la probabilidad de que el juego llegue al estado de la Figura 2.

2.3. Procesos de Decisión de Markov

En general, los procesos de aprendizaje por refuerzo pueden ser modelados mediante Procesos de Decisión
de Markov. Un agente realiza la acción 𝐴𝑡 en el estado 𝑆𝑡 . Dicha acción conlleva a un nuevo estado 𝑆𝑡+1 y a
una recompensa 𝑅𝑡+1 entregada por el entorno. El entorno puede ser modelado mediante una función de
probabilidad dinámica 𝑝 que determina la probabilidad del nuevo estado 𝑆𝑡+1 y la recompensa 𝑅𝑡+1 dados
el estado previo 𝑆𝑡 y la acción 𝐴𝑡 .

𝑝(𝑠 ′ , 𝑟|𝑠, 𝑎) = ℙ(𝑆𝑡+1 = 𝑠 ′ , 𝑅𝑡+1 = 𝑟|𝑆𝑡 = 𝑠, 𝐴𝑡 = 𝑎)

Esta probabilidad sigue un Proceso de Decisión de Markov ya que sólo la acción 𝐴𝑡 y el estado 𝑆𝑡 tienen un
efecto sobre el siguiente estado 𝑆𝑡+1 . Esta propiedad es conveniente porque nos permite probar algoritmos
para encontrar una política óptima. Intuitivamente esta propiedad indica que la representación de un estado
contiene toda la información relevante para tomar decisiones, sin importar los estados y acciones previas.

Podemos representar un Proceso de Decisión de Markov como un árbol de decisiones. Las decisiones pueden
ser tomadas por uno o más agentes. En la Figura 4 se presenta un árbol donde dos agentes toman turnos
para realizar acciones (como es el caso del ajedrez y el tres en línea). En cada nivel el agente busca tomar la
mejor decisión, para lo cual debe ser capaz de prever la decisión que tomará el oponente. Mientras el agente
busca maximizar su recompensa, el oponente buscar minimizar la recompensa del agente (el oponente
ganará cuando el agente pierda). El conocimiento respecto del comportamiento del oponente será adquirido
durante el proceso de aprendizaje.

Acción del
agente

Acción del
oponente

Acción del
agente

Acción del
oponente

Acción del
agente

Figura 4: Árbol de decisiones. Fuente: Elaboración propia


© Sebastián Raveau
Las acciones que el agente debe tomar en un árbol de decisiones como el de la Figura 4 pueden ser analizadas
de distintas maneras, para definir una política óptima. Un posible marco conceptual para definir la política
corresponde a la Teoría de Juegos. El objetivo de la Teoría de Juegos es encontrar la mejor estrategia para
cada jugador, dadas las decisiones tomadas por los demás jugadores.

2.4. Algoritmo Minimax

Mientras el agente busca maximizar una recompensa, el oponente busca minimizarla. En Teoría de Juegos,
Minimax es un algoritmo de decisión cuyo objetivo es minimizar la pérdida máxima esperada. Este algoritmo
se aplica habitualmente en casos con información perfecta, como es el caso de nuestro juego de tres en línea.
Su funcionamiento consiste en elegir la mejor acción para un jugador A, suponiendo que el oponente B
escogerá lo peor para el jugador A.

En el algoritmo Minimax, se construye un árbol de búsqueda que representa todas las posibles decisiones
que pueden hacerse desde el estado actual del juego. Cada nodo en el árbol representa un estado del juego,
y las aristas que conectan los nodos representan las posibles jugadas. El algoritmo entonces recorre el árbol
de búsqueda de manera recursiva, evaluando los nodos hoja para determinar la mejor jugada.

Consideremos un juego sencillo que consiste en elegir un camino que conducirá a uno de 16 números entre
0 a 9. Dos jugadores se turnan para escoger los pasos del camino dentro del árbol presentado en la Figura 5.
El objetivo del primer jugador (al que llamaremos agente) es que el camino conduzca al mayor número
posible. El objetivo del segundo jugador (al que llamaremos oponente) es que el camino conduzca al menor
número posible. Mientras un jugador maximiza, el otro jugador minimiza, dando lugar al nombre del
algoritmo Minimax.
Agente
(max)
Oponente
(min)
Agente
(max)
Oponente
(min)

9 3 7 6 1 3 7 5 2 3 1 3 4 2 8 4

Figura 5: Juego Minimax


Fuente: Elaboración propia

© Sebastián Raveau
Si ambos jugadores juegan perfectamente, ¿a qué número conducirá el camino final, construido entre ambos
jugadores?

Podemos aplicar el algoritmo Minimax en forma recursiva, evaluando las decisiones desde los estados
terminales (aquellos con los que concluye el juego) hacia atrás. Cuando sea el segundo turno del oponente
(cuando acabe el camino), éste siempre elegirá el camino que conduzca al menor número. El agente sabe
cómo se comportará el oponente, y tendrá en consideración dicho comportamiento al decidir la acción de su
segundo turno. La decisión del agente en su segundo turno será considerada por el oponente en su primer
turno. Y a su vez, la decisión del oponente en su primer turno será considerada por el agente en su primer
turno.

Podemos saber qué decisión tomará cada jugador en cada uno de los posibles caminos. Eso determina cuál
será el camino definitivo. En nuestro ejemplo, el camino conducirá al agente al número 5. Cada uno de los
posibles estados del juego ha sido etiquetado con la recompensa que obtendría el agente en dicho camino.
En el contexto de aprendizaje por refuerzo, dicha etiqueta se conoce como función de valor.
Agente
(max)

5
Oponente
(min)

5 2
Agente
(max)

6 5 2 4
Oponente
(min)

3 6 1 5 2 1 2 4

9 3 7 6 1 3 7 5 2 3 1 3 4 2 8 4

Figura 6: Solución de juego Minimax


Fuente: Elaboración propia

© Sebastián Raveau
Implementemos el algoritmo Minimax en Python para resolver el juego de la Figura 5.

Primero, crearemos el árbol del juego, identificando los 16 posibles caminos que conducirán a los resultados
numéricos.

from treelib import Node, Tree

arbol = Tree()
arbol.create_node("", "n0")

arbol.create_node("", "n1_1", parent='n0')


arbol.create_node("", "n1_2", parent='n0')

arbol.create_node("", "n2_1", parent='n1_1')


arbol.create_node("", "n2_2", parent='n1_1')
arbol.create_node("", "n2_3", parent='n1_2')
arbol.create_node("", "n2_4", parent='n1_2')

arbol.create_node("", "n3_1", parent='n2_1')


arbol.create_node("", "n3_2", parent='n2_1')
arbol.create_node("", "n3_3", parent='n2_2')
arbol.create_node("", "n3_4", parent='n2_2')
arbol.create_node("", "n3_5", parent='n2_3')
arbol.create_node("", "n3_6", parent='n2_3')
arbol.create_node("", "n3_7", parent='n2_4')
arbol.create_node("", "n3_8", parent='n2_4')

arbol.create_node("9", "n4_1", parent='n3_1')


arbol.create_node("3", "n4_2", parent='n3_1')
arbol.create_node("7", "n4_3", parent='n3_2')
arbol.create_node("6", "n4_4", parent='n3_2')
arbol.create_node("1", "n4_5", parent='n3_3')
arbol.create_node("3", "n4_6", parent='n3_3')
arbol.create_node("7", "n4_7", parent='n3_4')
arbol.create_node("5", "n4_8", parent='n3_4')
arbol.create_node("2", "n4_9", parent='n3_5')
arbol.create_node("3", "n4_10", parent='n3_5')
arbol.create_node("1", "n4_11", parent='n3_6')
arbol.create_node("3", "n4_12", parent='n3_6')
arbol.create_node("4", "n4_13", parent='n3_7')
arbol.create_node("2", "n4_14", parent='n3_7')
arbol.create_node("8", "n4_15", parent='n3_8')
arbol.create_node("4", "n4_16", parent='n3_8')

arbol
arbol.show()

© Sebastián Raveau
├──
│ ├──
│ │ ├──
│ │ │ ├── 3
│ │ │ └── 9
│ │ └──
│ │ ├── 6
│ │ └── 7
│ └──
│ ├──
│ │ ├── 1
│ │ └── 3
│ └──
│ ├── 5
│ └── 7
└──
├──
│ ├──
│ │ ├── 2
│ │ └── 3
│ └──
│ ├── 1
│ └── 3
└──
├──
│ ├── 2
│ └── 4
└──
├── 4
└── 8

Implementaremos ahora el algoritmo Minimax, de manera recursiva. La función contará con tres
argumentos: 'arbol' será el objeto sobre el cual aplicar el algoritmo; 'nodo_actual' indicará en qué nivel del
árbol nos encontramos, y 'es_max' será una variable booleana que indicará si estamos maximizando o
minimizando en el nivel donde nos encontramos.

def minimax(arbol, nodo_actual, es_max):

if arbol.depth(nodo_actual) == arbol.depth(): # Condición de término, cuando estamos al


# final del árbol
return int(arbol[nodo_actual].tag) # Retornamos el valor final para que se
# propague hacia arriba

nodos_hijos = arbol.children(nodo_actual) # Determinamos los nodos hijos que surgen


# del nodo actual
valor = [minimax(arbol, hijo.identifier, not es_max) for hijo in nodos_hijos]
# Ejecutamos recursivamente la función en
# cada uno de los hijos

if es_max: # Retornamos el valor apropiado según si


return max(valor) # el jugador maximiza o minimiza
else:
return min(valor)
© Sebastián Raveau
Al aplicar la función Minimax sobre el árbol de la Figura 5 obtenemos el número al que conducirá el camino
óptimo. La solución conduce al número 5, tal como se muestra en la Figura 6.

minimax(arbol, 'n0', True)


5

Implícitamente, fue mediante funciones de valor obtenidas a partir de un algoritmo Minimax que analizamos
y determinamos las acciones que cada jugador tomaría en nuestro ejemplo del juego de tres en línea
presentado anteriormente.

La siguiente Figura presenta el desarrollo del algoritmo Minimax a otro estado inicial del juego de tres en
línea. El agente posee tres acciones de juego, pero es capaz de prever qué hará el oponente en cada uno de
los estados siguientes. De esta manera, el agente sabe que sólo una de las tres acciones conducirá a ganar el
juego.

Tenemos seis posibles estados finales. En cuatro de ellos gana el agente, en los otros dos hay empate. El
oponente elegirá acciones que le permitan evitar la derrota y empatar. Esta manera, dos de las tres acciones
que puede tomar el agente en su primer turno conducirán a empate al considerar la posterior jugada del
oponente. Por lo tanto, en su primer turno el agente toma la acción que garantiza su victoria.

X O O

O X

X
Recompensa = 1

X O O X O O X O O
agente (X)
Turno del

O X X O X O X
max

X X X X X
Recompensa = 0 Recompensa = 0 Recompensa = 1
Acción elegida
X O O X O O X O O X O O X O O
X O O
oponente (O)
Turno del

O X X O X X O X O O X O X
O O X
min

X O X O X X O X X X O X
X X
Recompensa = 1 Recompensa = 0 Recompensa = 0 Recompensa = 1 Recompensa =
Recompensa = 1
acción elegida acción elegida acción al azar acción al azar1

X O O X O O X O O X O O X O O X O O
agente (X)
Turno del

O X X O X X O O X O X X O O X O X X
max

X O X X X O X X X X X O X X X X O X
Recompensa = 1 Recompensa = 0 Recompensa =1 Recompensa = 0 Recompensa = 1 Recompensa = 1

Figura 7: Minimax aplicado al juego de tres en línea


Fuente: Elaboración propia

© Sebastián Raveau
El algoritmo Minimax es ampliamente utilizado en juegos de mesa como el ajedrez y el tres en línea, donde
se puede representar el juego como un árbol de búsqueda. También se utiliza en otras áreas, como la
planificación de rutas y la toma de decisiones en la inteligencia artificial. Sin embargo, el algoritmo puede
volverse ineficiente para juegos muy complejos, ya que la complejidad del árbol de búsqueda puede
aumentar exponencialmente con el número de posibles jugadas.

2.5. Funciones de valor

Las funciones de valor permiten a un agente calcular cuánto "retorno" esperar en el futuro dada una
determinada política. Con una función de valor determinada, podemos comparar políticas para encontrar las
mejores.

El retorno 𝐺𝑡 puede ser cuantificado como la suma de las recompensas futuras, las cuales pueden ser
descontadas en el tiempo. 𝛾 es el factor de descuento, que determina el valor relativo de una recompensa
en un intervalo de tiempo dado en comparación con una recompensa en un intervalo de tiempo posterior.

𝐺𝑡 = 𝑅𝑡+1 + 𝛾 ∙ 𝑅𝑡+2 + 𝛾 2 ∙ 𝑅𝑡+3 + ⋯

Los retornos pueden plantearse de manera recursiva, relacionando 𝐺𝑡 directamente con 𝐺𝑡+1 .

𝐺𝑡 = 𝑅𝑡+1 + 𝛾 ∙ (𝑅
⏟ 𝑡+2 + 𝛾 ∙ 𝑅𝑡+3 + ⋯ )
𝐺𝑡+1

𝐺𝑡 = 𝑅𝑡+1 + 𝛾 ∙ 𝐺𝑡+1

La presencia de un factor de descuento 𝛾 < 1 implicará que los agentes pueden tender a priorizar
recompensas inmediatas. En el caso del juego de tres en línea, esto puede significar que el agente intentará
ganar en la menor cantidad de turnos. Si el factor de descuento 𝛾 es igual a 1, entonces la cantidad de turnos
no será relevante. Si el factor de descuento es mayor a 1, entonces el agente intentará aplazar la victoria la
mayor cantidad de turnos posibles. Todos los posibles retornos de nuestro juego de tres en línea para un
agente al que le corresponde el primer turno se indican a continuación. Recordemos que las recompensas
sólo ocurren al concluir el juego: ganar posee recompensa = 1, empatar posee recompensa = 0 y perder posee
recompensa = -1.

Ganar en 5 turnos: 𝐺0 = 𝛾 5 (5 es la mínima cantidad de turnos, con 3 X y 2 O)

Perder en 6 turnos: 𝐺0 = −𝛾 6

Ganar en 7 turnos: 𝐺0 = 𝛾 7

Perder en 8 turnos: 𝐺0 = −𝛾 8

Ganar en 9 turnos: 𝐺0 = 𝛾 9

Empatar en 9 turnos: 𝐺0 = 0 (9 es la mínima cantidad de turnos, con 5 X y 4 O)

Nuestro objetivo es encontrar la política óptima, aquella que tenga el máximo retorno esperado.
© Sebastián Raveau
La función de valor-estado 𝑉𝜋 (𝑠) de una política 𝜋 es el retorno futuro esperado para un agente cuando se
encuentra en el estado 𝑠 y sigue la política 𝜋 desde ese estado a los siguientes. La función de valor-estado de
una política 𝜋 se define como un valor esperado de los retornos, ya que tanto la política como el entorno
pueden ser estocásticos.

𝑉𝜋 (𝑠) = 𝔼𝜋 [𝐺𝑡 |𝑆𝑡 = 𝑠]

Al calcular la función de valor-estado de una política 𝜋 no es necesario comenzar desde un estado inicial 𝑠0 .
Dada la recursividad de los retornos 𝐺𝑡 , la función de valor-estado también es recursiva.

𝑉𝜋 (𝑠) = 𝔼𝜋 [𝑅𝑡+1 + 𝛾 ∙ 𝑉𝜋 (𝑆𝑡+1 )|𝑆𝑡 = 𝑠]

Esta última expresión recursiva se conoce como la ecuación de Bellman, que expresa el valor de cualquier
estado 𝑠 en términos del valor esperado de la recompensa inmediata y del valor del siguiente estado.

Una política óptima 𝜋 ∗ satisface que 𝑉𝜋∗ (𝑠) ≥ 𝑉𝜋 (𝑠) para todos los estados 𝑠 ∈ 𝑆 y todas las políticas 𝜋 ∈ Π.
Pueden existir varias políticas que satisfagan esta condición, en cuyo caso tendremos varias políticas óptimas
que implicarán el mismo valor óptimo para el estado inicial. Eso ocurre en caso del juego de tres en línea,
donde si ambos jugadores juegan perfectamente el juego acabará en empate. Tal como se indicó, existen
46.080 casos donde el juego termina en empate, correspondiendo todos ellos a una política óptima.

La función de valor-estado se puede utilizar para evaluar la calidad de la política, pero necesitamos otra
función para mejorarla. La función de valor-acción 𝑄𝜋 (𝑠, 𝑎) representa el retorno esperado para un estado
dado 𝑠, una acción 𝑎, y la política 𝜋 a ser aplicada.

𝑄𝜋 (𝑠, 𝑎) = 𝔼𝜋 [𝐺𝑡 |𝑆𝑡 = 𝑠, 𝐴𝑡 = 𝑎]

Una vez obtenida la función de valor-acción de una política, la política puede mejorarse. 𝑉𝜋 (𝑠) representa el
retorno esperado de la política 𝜋 para un estado 𝑠. 𝑄𝜋 (𝑠, 𝑎) representa el retorno esperado de la política 𝜋,
pero para un par [estado 𝑠, acción 𝑎]. Si existe otra acción 𝑎′ ∈ 𝐴(𝑠) que posee un mayor retorno esperado
que 𝑉𝜋 (𝑠), entonces sabemos que podemos construir otra política 𝜋′ mejor que 𝜋, la cual se construye a
partir de 𝜋 realizando la acción 𝑎′.

La función de valor-estado será la base del Q-Learning, uno de los métodos de aprendizaje por refuerzo más
utilizados.

3. Métodos de Monte Carlo

Los métodos de Monte Carlo no requieren información completa respecto del entorno para estimar
funciones de valor y descubrir políticas óptimas. Estos métodos son enfoques para resolver problemas
basados en muestreos aleatorios. Son especialmente atractivos ya que no requieren conocer las
probabilidades de transición 𝑝(𝑠 ′ , 𝑟|𝑠, 𝑎).

El objetivo será evaluar una política 𝜋 a través de la recolección de distintos episodios o instancias, los cuales
pueden ser usados para estimar las funciones de valor-estado 𝑉𝜋 (𝑠) y de valor-acción 𝑄𝜋 (𝑠, 𝑎). Un episodio

© Sebastián Raveau
es una secuencia de estados, acciones y recompensas siguiendo una determinada política, comenzando
desde un estado inicial 𝑠0 hasta alcanzar un tiempo total 𝑇.

Las funciones de valor-estado 𝑉𝜋 (𝑠) y valor-acción 𝑄𝜋 (𝑠, 𝑎) pueden estimarse promediando los retornos
obtenidos de muchos episodios. Mientras más episodios se consideren, más información tendremos y mejor
será la aproximación. Mientras más veces se visite el estado 𝑠, mejor será la aproximación de 𝑉𝜋 (𝑠); y al
mismo tiempo, mientras más veces se realice la acción 𝑎 desde el estado 𝑠, mejor será la aproximación de
𝑄𝜋 (𝑠, 𝑎).

Uno de los principales problemas de los métodos de Monte Carlo es que pueden perder mucho tiempo
evaluando políticas subóptimas. Este problema se puede corregir si se permite que el proceso pueda
modificar la política (en todos los estados o sólo en algunos de ellos) antes de que las aproximaciones de
𝑉𝜋 (𝑠) y 𝑄𝜋 (𝑠, 𝑎) se estabilicen.

4. Conclusión

El aprendizaje por refuerzo es una técnica de aprendizaje automático que permite que agentes aprendan a
tomar decisiones óptimas al interactuar con entornos, a partir de la retroalimentación que reciben. A lo largo
de la clase hemos podido conocer los conceptos fundamentales del aprendizaje por refuerzo, así como sus
principales aplicaciones en diferentes campos.

Hemos visto que el aprendizaje por refuerzo presenta desafíos importantes, asociados a encontrar políticas
óptimas de toma de decisiones. Una vez caracterizadas las componentes del aprendizaje por refuerzo, hemos
descrito claramente la interacción entre dichas componentes.

Es importante notar que esta clase ha sido una introducción al aprendizaje por refuerzo, y que su foco ha
estado en comprender la teoría. Es por eso que las aplicaciones prácticas en Python han sido acotadas.
Posteriormente ahondaremos en Q-Learning, uno de los métodos de aprendizaje por refuerzo más utilizados,
donde profundizaremos sobre aprendizaje por refuerzo y poniendo en práctica lo aprendido.

5. Referencias bibliográficas

Beysolow II, T. (2019). Applied Reinforcement Learning with Python: With OpenAI Gym, Tensorflow, and
Keras. Apress.

Sutton, R. S., and Barto, A. G. (2018). Reinforcement Learning: An Introduction. MIT press.

Winder, P. (2020). Reinforcement learning. O'Reilly Media.

© Sebastián Raveau

También podría gustarte