Aprendizaje por refuerzo José M. Sempere Departamento de Sistemas Informáticos y Computación Universidad Politécnica de Valencia Aprendizaje por refuerzo 1. 2. 3. 4. 5. Introducción al aprendizaje por refuerzo Modelos de Decisión de Markov. Taxonomía de los métodos de aprendizaje Métodos basados en técnicas de Programación Dinámica Métodos libres de modelo Métodos basados en el modelo Bibliografía • T. Mitchell. Mitchell. Machine Learning. Learning. McGrawMcGraw-Hill. 1997. • R. Sutton, Sutton, A. Barto. Barto. Reinforcement Learning. Learning. An Introduction. Introduction. The MIT Press. Press. 1998. • B. Sierra. Aprendizaje automático: conceptos básicos y avanzados. avanzados. PearsonPearson-Prentice Hall. 2006. 1 Aprendizaje por refuerzo Algunas características: (1) Es completo (contempla el problema en su totalidad, mediante funciones objetivo) (2) Es interactivo (recibe información del entorno y puede modificar el mismo) (3) Es no supervisado (sustituye la información supervisada por información del tipo acción/reacción) (4) Es dirigido por objetivos (el fin del aprendizaje es alcanzar un máximo) (5) El aprendiz debe explotar las acciones que le beneficien y explorar nuevas acciones Elementos del aprendizaje por refuerzo: (1) La política que define el comportamiento del aprendiz en cada momento (2) La función de recompensa que define el objetivo a alcanzar (3) La funciòn de evaluación que permite establecer la respuesta recibida a partir de cada posible acción (4) Opcionalmente un modelo del entorno Un ejemplo: El trestres-enen-raya (tic-tac-toe) X X X X • Los estados del entorno son las posibles configuraciones de O y X ( o blancos) en las casillas del tablero • A cada configuración se le asigna la probabilidad de ganar el juego desde ese estado • Las configuraciones con tres-en-raya tienen probabilidad 0 (o 1) • El resto de configuraciones tienen inicialmente probabilidad 0.5 • Las probabilidades se actualizan mediante un criterio de aprendizaje por diferencias temporales siguiendo una ecuación del estilo V(s) = V(s) + α [V(s’) – V(s)] donde s’ es el estado alcanzado a partir de s y α es un parámetro que influencia el ratio de aprendizaje 2 Esquema general del aprendizaje por refuerzo aprendiz recompensa estado S = { s0, s1, … } es el conjunto de estados del entorno A = { a0, a1, … } es el conjunto de acciones que puede realizar el aprendiz ri es la recompensa que recibe el aprendiz tras haber realizado la acción ai en el estado si acción entorno s0 a0 r0 s1 a1 r1 s2 Objetivo: Aprender una política π: S → A que maximice una función de recompensa acumulada con descuento por ejemplo ∞ V π ( st ) = rt + γ ⋅ rt +1 + γ 2 ⋅ rt + 2 + ... = ∑ γ i ⋅ rt +i γ es denominado ratio de descuento i =0 y pondera las recompensas futuras respecto de las actuales (toma valores entre 0 y 1). π A la política óptima la denotaremos por π* y se puede expresar como π * = argmax V ( s ), (∀s ) π Denominaremos episodio a una secuencia de acciones-estados completa, es decir desde el inicio hasta un estado objetivo o sumidero. El aprendizaje se divide en episodios de forma natural (p.ej. partidas de un juego, secuencias de movimientos hasta llegar a una meta, etc.) Procesos de decisión de Markov Un Proceso de Decisión de Markov (MDP) se define mediante la tupla <S,A,T,R> donde S es un conjunto de estados A es un conjunto de acciones T : S × A → Pr(S) es una distribución de probabilidad R : S × A → R es una función de refuerzo Un MDP es finito si S y A son conjuntos finitos La propiedad de Markov Pr{st+1=s’, rt+1=r | st , at, rt, st-1, at-1, …, r1, s0, a0} = Pr{st+1=s’, rt+1=r | st, at} En este caso se cumple que T(s,a,s’) = Pr{st+1=s’ | st=s, at=a} R(s,a) = E{rt+1 | st=s, at=a} 3 Funciones de valor Las funciones de valor evalúan las políticas que ejerce el aprendiz, es decir la secuencia de acciones y estados que el aprendiz ejecuta y en los que se sitúa a lo largo del tiempo. La función de valor-estado (state-value) ∞ V π ( s ) = Eπ {∑ γ i ⋅ rt +i +1 | st = s} i =0 La función de valor-acción (action-value) ∞ Qπ ( s, a ) = Eπ {Rt | st = s, at = a} = Eπ {∑ γ i ⋅ rt +i +1 | st = s, at = a} i =0 Para una política óptima π* se maximizan las funciones anteriores V * ( s ) = max V π ( s ) (∀s ∈ S ) π Q * ( s, a) = max Qπ ( s, a) (∀s ∈ S ) (∀a ∈ A) π Una taxonomía de los métodos de aprendizaje por refuerzo Los métodos de resolución en un problema de aprendizaje por refuerzo (considerando que sea un Proceso de Decisión de Markov) se pueden clasificar en función del conocimiento que se tenga del modelo Resolución a partir de un conocimiento completo Se conocen el conjunto de estados y acciones, la función de transición de estados y la función de refuerzo. La resolución se basa en la Programación Dinámica (PD) como técnica de optimización. Resolución a partir de un conocimiento incompleto No se conoce el modelo. Posibles soluciones (a) Aplicar técnicas sin el conocimiento del modelo (métodos libres de modelo) (b) Aprender el modelo y la política del mismo (métodos basados en el modelo) 4 Métodos basados en técnicas de Programación Dinámica (I) Los métodos parten de un conocimiento completo del modelo. Se cumplen las ecuaciones de optimalidad de Bellman Principio de optimalidad de Bellman Una política óptima tiene la propiedad de que cualesquiera que sean el estado inicial y la primera decisión tomada, el resto de decisiones deben constituir una política óptima respecto al estado resultante de la primera decisión. Se cumplen las siguientes ecuaciones V * ( s) = max E{rt +1 + γV * ( st +1 ) | st = s, at = a} = max ∑ T ( s, a, s' )[ R ( s, a) + γV * ( s' )] a a a Q* ( s, a ) = E{rt +1 + max Q * ( st +1 , a ' ) | st = s, at = a} = ∑ T ( s, a, s ' )[ R( s, a ) + γ max Q * ( s ' , a ' )] a s' a' Dado que las anteriores ecuaciones son recursivas, utilizamos esquemas de Programación Dinámica para resolverlas. Métodos basados en técnicas de Programación Dinámica (II) Inicialización: (∀ s ∈ S) V(s) ∈ R y π(s) ∈ A arbitrarios Método: Repetir (1) Evaluación de la Política Repetir ∆←0 V(s) ← Σs’ T(s,π(s),s’)[R(s,π(s)) + γV(s’)] ∆ ← max(∆,|v-V(s)|) hasta que ∆ < θ (entero positivo) (2) Mejora de la Política política_estable ← cierto Para cada s ∈ S b ← π(s) π(s) ← argmaxa Σs’ T(s,a,s’)[R(s,a) + γV(s’)] Si b ≠ π(s) entonces política_estable ← falso hasta que política_estable = cierto Algoritmo de Iteración de Política 5 Métodos basados en técnicas de Programación Dinámica (III) Inicialización: (∀ s ∈ S) V(s)=0 (o cualquier valor arbitrario) Método: Repetir ∆←0 Para cada s ∈ S v ← V(s) V(s) ← maxaΣs’ T(s,a,s’)[R(s,a) + γV(s’)] ∆ ← max(∆,|v-V(s)|) hasta que ∆ < θ (entero positivo) Dar como salida una política determinista π tal que π(s) = argmaxa Σs’ T(s,a,s’)[R(s,a) + γV(s’)] Algoritmo de Iteración de Valor Métodos libres de modelo Los métodos parten de un conocimiento completo del conjunto de estados y del conjunto de acciones modelo. No se conocen los efectos de las acciones sobre el entorno (interacción). Posibles estrategias: (1) Extraer secuencias completas de comportamiento del aprendiz y basar el aprendizaje de la política en esas secuencias (métodos Monte Carlo) (2) Basar el aprendizaje en las acciones inmediatas que realice el aprendiz (métodos de Diferencias temporales ó TD, Aprendizaje-Q) (3) Establecer secuencias intermedias para el aprendizaje (métodos TD(λ)) Variantes dentro de las estrategias: (1) Métodos basados en la política: La política que se está aprendiendo se aplica sobre el entorno. (2) Métodos fuera de política: La política de interacción sobre el entorno es independiente de la que se está aprendiendo 6 Métodos Monte Carlo Inicialización: (∀ s ∈ S) (∀ a ∈ A) Q(s,a) ← valor arbitrario π(s) ← valor arbitrario ganancias(s,a) ← lista vacía Método: Repetir Iniciar un episodio usando inicio exploratorio y π Para cada par (s,a) que aparece en el episodio R ← ganancia obtenida tras la primera ocurrencia del par (s,a) Añadir R a ganancias(s,a) Q(s,a) ← promedio(ganancias(s,a)) Para cada s en el episodio π(s) ← argmaxa Q(s,a) siempre Algoritmo Monte Carlo ES (Monte Carlo con inicio exploratorio) Métodos mediante Diferencias Temporales (I) Inicialización: V(s) arbitrariamente Método: Repetir (para cada episodio) a ← acción dada por π y s Ejecutar la acción a. Observar el refuerzo recibido r y el estado siguiente s’ V(s) ← V(s) + α[r + γV(s’)-V(s)] s ← s’ hasta que s’ sea un estado terminal (α es un parámetro que pondera las actualizaciones con respecto a los valores anteriores. Para dominios deterministas α=1) Algoritmo TD(0) (aprendizaje de la función valor-estado) 7 Métodos mediante Diferencias Temporales (II) Inicialización: Q(s,a) arbitrariamente Método: Repetir (para cada episodio) Inicializar s Repetir para cada paso del episodio Seleccionar una acción a a partir de s utilizando la política derivada de Q Ejecutar la acción a. Observar el refuerzo recibido r y el estado siguiente s’ Actualizar la tabla Q(s,a) Q(s,a) ← Q(s,a) + α[r + γ maxa’Q(s’,a’) - Q(s,a)] s ← s’ hasta que s’ sea un estado terminal (α es un parámetro que pondera las actualizaciones con respecto a los valores anteriores. Para dominios deterministas α=1) Algoritmo de Aprendizaje-Q (aprendizaje de la función valor-acción, método fuera de la política) Métodos mediante Diferencias Temporales (III) Inicialización: Q(s,a) arbitrariamente Método: Repetir (para cada episodio) Inicializar s Seleccionar una acción a a partir de s utilizando la política derivada de Q Repetir para cada paso del episodio Ejecutar la acción a. Observar el refuerzo recibido r y el estado siguiente s’ Elegir a’ a partir de s’ utilizando la política derivada de Q Actualizar la tabla Q(s,a) Q(s,a) ← Q(s,a) + α[r + γ maxa’Q(s’,a’) - Q(s,a)] s ← s’ a ← a’ hasta que s’ sea un estado terminal (α es un parámetro que pondera las actualizaciones con respecto a los valores anteriores. Para dominios deterministas α=1) Algoritmo SARSA (aprendizaje de la función valor-acción, método basado en la política) 8 Métodos basados en el modelo Los métodos fuerzan el aprendizaje del modelo (aprendizaje de las funciones T y R) y aplican técnicas de Programación Dinámica sobre el mismo. Inicialización: Q(s,a) y Modelo(s,a) arbitrariamente Método: Repetir (siempre) Inicializar s Seleccionar una acción a a partir de s utilizando la política derivada de Q Q(s,a) ← Q(s,a) + α[r + γ maxa’Q(s’,a’) - Q(s,a)] Modelo(s,a) ← (s’,r) s ← s’ Repetir N veces s ← estado ya visitado elegido aleatoriamente a ← acción aleatoria ejecutada anteriormente desde s (s’,r) ← Modelo(s,a) Q(s,a) ← Q(s,a) + α[r + γ maxa’Q(s’,a’) - Q(s,a)] (α es un parámetro que pondera las actualizaciones con respecto a los valores anteriores. N es un parámetro de actualizaciones de la función que fija el usuario) Algoritmo Dyna-Q (entorno determinista) 9