Aprendizaje por refuerzo

Anuncio
Inteligencia Artificial
“Aprendizaje por refuerzo”
Ing. Sup. en Informática, 4º
Curso académico: 2011/2012
Profesores: Ramón Hermoso y Matteo Vasirani
Aprendizaje
Resumen:
3. Aprendizaje automático
3.1 Introducción al aprendizaje automático
3.2
Árboles de decisión
3.3
Redes neuronales
3.4
Algoritmos genéticos
3.5
Aprendizaje por refuerzo
Aprendizaje por refuerzo
• Problema:
– ¿Cómo puede un agente autónomo, que percibe su entorno y actúa en ello,
aprender a seleccionar las acciones óptimas que hay que ejecutar en cada
estado para alcanzar sus objetivos?
– Ejemplo 1: un robot que aprende a navegar en su entorno
– El robot tiene sensores para observar las características de su entorno
(estado)
– El robot puede moverse, coger objetos, etc., modificando así el estado de
su entorno (acciones)
– El robot quiere aprender un mapeado estado → acción para alcanzar sus
objetivos (política de control)
– Ejemplo 2: un agente software que aprende a jugar al tres en raya
– El agente percibe la configuración del tablero (estado)
– El agente puede colocar sus fichas (acciones)
– El agente quiere aprender, para cada configuración del tablero, donde
colocar su próxima ficha (política de control)
Aprendizaje por refuerzo
• Suposición:
– Los objetivos se pueden expresar a través de una función (reward) que
asigna un valor numérico para cada acción que el agente ejecuta en cada
estado
– Valores numéricos positivos informan al agente que la acción que acaba de
ejecutar ha sido buena, mientras que valores negativos informan al agente
que la acción que acaba de ejecutar ha sido mala
Aprendizaje por refuerzo
El entorno transita en un
nuevo estado y devuelve
un valor que define
cómo de buena fue la
última acción
El agente ejecuta
acciones en su
entorno
El agente utiliza esta
información para
aprender la política de
control, que determina la
siguiente acción a
ejecutar
Aprendizaje por refuerzo
s0
a0
s1
r0
a1
s2
a2
r1
r2
…
Objetivo: aprender a seleccionar las acciones que maximizan
r0 + γ · r1 + γ2 · r2 + …
0 ≤ γ <1
Aprendizaje por refuerzo
• Proceso de Markov
– El agente percibe un conjunto S de estados de su entorno y posee un conjunto
A de acciones disponibles
– En cada tiempo t, el agente percibe el estado actual st, selecciona la acción at
y la ejecuta
– El entorno proporciona el reward rt = r(st, at) y transita en el estado
st+1 = δ(st, at).
• Suposición:
– Las funciones r y δ dependen solo del estado actual y del acción actual
(proceso sin memoria)
– En general, el agente no conoce la forma funcional de r y δ, sólo “descubre”
posibles valores interactuando con el entorno
– Las funciones r y δ pueden ser no deterministas.
– Ej: P(δ(s, a) = s’) = 0.7 , P(δ(s, a) = s’’) = 0.2, P(δ(s, a) = s’’’) = 0.1
– Las funciones r y δ tienen que ser estacionarias.
– Las probabilidades no varían a lo largo del aprendizaje
Aprendizaje por refuerzo
• Formalización del problema:
– El agente quiere aprender la política π : S → A que produzca el
mayor reward acumulado en el tiempo, a partir de cualquier estado st
∞
ir
π(s )
rt+ γ rt+1 + γ2 rt+2 + … = Σ
γ
=
V
t+i
t
i=0
– V π( st ): reward acumulado que se consigue siguiendo la política π a
partir de un estado inicial st (i.e., “utilidad” de st)
– γ es una constante (0 ≤ γ < 1) que determina la importancia relativa
de los reward inmediatos respecto a los rewards futuros.
– Si γ = 0, el agente es “miope” y solo maximiza los rewards
inmediatos
– Si γ → 1 el agente es más precavido
Aprendizaje por refuerzo
• Similitudes respecto a aprendizaje supervisado:
– Se trata de aproximar una función
π:S→A
donde S es el conjunto de estados y A es el conjunto de acciones
• Diferencias respecto a aprendizaje supervisado:
– El agente no dispone de información de entrenamiento tipo < s, π*(s) > ,
donde π*(s) es la política óptima que se quiere aprender, sino de información
del tipo <s, a, r>, donde r es el reward inmediato que se recibe al ejecutar a
en s
– El entorno no dice al agente “en el estado s6 deberías haber ejecutado la
acción a3 en vez que la acción a9”, sino le dice “en el estado s6 la ejecución de
la acción a9 vale 34.5”
– El problema de la exploración: la información disponible depende de las
acciones ejecutadas, por lo tanto el agente tiene que explorar el espacio de
acciones, balanceando la ejecución de acciones que se sabe ser buenas y de
acciones que nunca se han probado
Aprendizaje por refuerzo
• Ejemplo:
-1
-1
-1
-1
-1
Estados = cuadrados
Transiciones = flechas (con reward)
Estado arriba-derecha = objetivo
-1
-1 -1
-1 -1
+100
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1 -1
-1
-1
-1
-1
-1
-1 -1
-1
-1
-1
-1
Aprendizaje por refuerzo
• Ejemplo: valores de V*(s)
-1
-1
55
48.5 -1
γ = 0.9
62.2
-1
-1
-1
V*(3,1)
-1 -1
-1 -1
55
70.2
62.2 -1
-1
+100
100
-1
-1
-1
-1
48.5 -1
-1
79.1 -1
42.6
-1
V*(3,2)
-1 -1
-1
-1 -1
42.6
-1
37.3 -1
-1
V*(3,3)
-1
-1
32.6
Podemos ver como
V*(st) = max[ r(st,a) + γ· V*(δ(st+1,a)) ]
aЄA
89
-1
-1
V*(3,1)=100+γ·0+…=100
V*(3,2)=-1+γ·100+…=89
V*(3,3)=-1+γ·(-1)+γ2·100+…=79.1
79.1
Aprendizaje por refuerzo
• El objetivo del agente es aprender una función de evaluación numérica
que implemente la política óptima.
• Entonces, vamos a aprender V*(s), de manera que el agente siempre
preferirá s1 a s2 si V*(s1) > V*(s2)
• El problema es que el agente puede elegir entre acciones y no entre
estados
π* (s) = argmax[ r(s,a) + γ ·V*(δ(s,a)) ] =
a
*(s, a) =
argmax
Q
a
argmax [r(s,a) + γ · max(Q*(δ(s,a),a’)]
a
a’
• La acción óptima en el estado s es la acción a que maximiza la suma del
reward inmediato r(s, a) con el reward acumulado del estado sucesor,
V*(δ(s, a)) , descontado por el factor γ
Aprendizaje por refuerzo
• Aprender la función Q*(s, a) corresponde a aprender la política óptima π∗,
sin necesidad de conocer r y δ
• La política óptima consistirá en evaluar las posibles acciones disponibles
en el estado s y seleccionar la acción a que maximiza Q* (s, a)
• En un determinado estado s, el valor de Q* (s, a), para cada a, resume en
un único valor toda la información necesaria para determinar el reward
acumulado que el agente ganará en el futuro si selecciona el acción a.
-1
10
st
-1
43
-1
50
-1
41
-1
36
at = D
Q(st, at) = 41
-1
30
st
-1
44
-1
43
st+1 -1
50
-1
36
Q(st, at) = -1 + 0.9 · max(Q(st+1, at+1))=
= -1+ 45 = 44
Sólo si δ(s,a) es determinista !
Aprendizaje por refuerzo
• Ejemplo: valores de Q*(s,a)
-1
42.6
-1
48.5
55
48.5 -1
-1
-1
48.5 48.5
55
-1
62.2
-1 -1
55 55
-1
42.6
42.6
-1
-1
37.3
-1
32.6
37.3
-1
-1
37.3
37.3
42.6
-1
32.6
37.3 -1
28.3
-1
79.1
-1 -1
70.2 89
-1
62.2
48.5
Q*(3,1,U)=100+γ·0=100
Q*(3,2,U)=-1+γ·100=89
Q*(3,2,L)=-1+γ·79.1=70.2
100
-1
70.2
62.2
-1
42.6
+100
100
70.2
62.2 -1
-1
-1 55
42.6
-1
48.5
62.2
-1
-1 55
55
48.5
γ = 0.9
79.1 -1
89
-1
70.2
79.1
-1
79.1
-1
32.6
32.6
79.1
Recordamos que
Q*(st,a) = r(st,a) + γ· V*(δ(st+1,a))
Aprendizaje por refuerzo
• Ejemplo: política óptima π∗(s)
Aprendizaje por refuerzo: algoritmo general
01: for all (s, a) do
02: Q(s, a) ← inicializar
// Q(s,a) es la estimación inicial de Q*(s,a)
03: end for
04: s ← observar estado entorno
05: a ← seleccionar acción
// Política de selección de acciones
06: while s != estado terminal do
07: ejecutar a
08: r ← reward
09: s’ ← nuevo estado
10: a’ ← seleccionar siguiente acción
11: Q(s, a) ← actualizar
// Varias maneras de actualizar Q(s, a)
12: s ← s’
13: a ← a’
14: end while
Q-learning para entornos deterministas
01: for all (s, a) do
02: Q(s, a) ← inicializar
// Q(s,a) es la estimación inicial de Q*(s,a)
03: end for
04: s ← observar estado entorno
05: a ← seleccionar acción
// Política de selección de acciones
06: while s != estado terminal do
07: ejecutar a
08: r ← reward
09: s’ ← nuevo estado
10: a’ ← seleccionar siguiente acción
11: Q(s, a) ← r + γ · max Q(s’, b)
b
12: s ← s’
13: a ← a’
14: end while
Aprendizaje por refuerzo: Q-learning
• ¿Que pasa si el entorno no es determinista?
• No puedo actualizar Q(s,a) con r + max(Q(s’,a’)), por que sería como
confiar que ejecutando la acción a en el estado s siempre se transita en el
estado s’
• Hay que actualizar Q(s,a) con una parte de esta información nueva que
acabo de descubrir
Q-learning para entornos no deterministas
01: for all (s, a) do
02: Q(s, a) ← inicializar
// Q(s,a) es la estimación inicial de Q*(s,a)
03: end for
04: s ← observar estado entorno
05: a ← seleccionar acción
// Política de selección de acciones
06: while s != estado terminal do
07: ejecutar a
08: r ← reward
09: s’ ← nuevo estado
10: a’ ← seleccionar siguiente acción
11: Q(s, a) ← Q(s, a) + α · [r + γ · max Q(s’, b) – Q(s,a)]
b
12: s ← s’
// 0<α <1: learning step
13: a ← a’
14: end while
Aprendizaje por refuerzo: Q-learning
• La formula
Q(s, a) ← Q(s, a) + α · [ r + γ · max Q(s’, b) - Q(s, a) ]
b
estimación actualizada
vieja estimación nueva informaciónvieja estimación
es muy recurrente en el aprendizaje por refuerzo
• α representa la porción de la diferencia entre la nueva información y la
vieja estimación que se añade a la vieja estimación
Aprendizaje por refuerzo: Q-learning
• Q-learning garantiza la convergencia de Q(s, a) a Q*(s, a) si
• El entorno se puede modelar como un MDP
• En
cada actualización
i de Q(s,a) el learning step α es tal que
∞
∞
∑ αi = ∞ y ∑ αi2 < ∞
i=0
i=0
• Ejemplo: α = 1/n(s,a), donde n(s,a) es el número de veces que se
ha actualizado el valor Q(s,a)
• Cada pareja (s, a) es visitada un número infinito de veces
• El entorno es estacionario (es decir, la probabilidad de transitar de s a
s’ ejecutando la acción a no varía en el tiempo)
Aprendizaje por refuerzo: Q-learning
• El agente necesita una política para seleccionar las acciones a ejecutar en
un determinado estado s
• Política greedy
1
si a=argmax Q(s, b)
0
en caso contrario
P(s, a) =
b
• Hay riesgo de explotar demasiado acciones buenas, descubiertas al
principio del aprendizaje, y no considerar acciones potencialmente
mejores
Aprendizaje por refuerzo: Q-learning
• Política ε-greedy
1−ε
P(s, a) =
si a=argmax Q(s, b)
b
ε/(|Α|−1) en caso contrario
• Explora más que una política greedy
• Si Q(s, a1) >> Q(s, a2), las acciones a1 y a2 tienen la misma
probabilidad de ser seleccionadas.
Aprendizaje por refuerzo: Q-learning
• Política soft-max
P(s, a) =
eQ(s, a)/T
∑eQ(s, b)/T
bЄA
• El parámetro Τ (temperatura) determina el grado de exploración
• Si Τ → ∞, todas las acciones son equiprobables
• Si Τ → 0, la política soft-max se convierte en la política greedy
• Generalmente se reduce Τ con el tiempo, para garantizar la
convergencia
• No siempre es fácil definir Τ, porque depende del orden de magnitud
de Q(s, a)
Aprendizaje por refuerzo: Q-learning
• Q(s, a) se puede inicializar de manera pesimista (todo a 0) o de manera
optimista, es decir, con valores mayores a los rewards esperados
• La inicialización optimista favorece la exploración (¿porque?)
-1
10
st
-1
10
-1
10
-1
10
-1
10
-1
10
at = D
Q(st, at) = 10
-1
10
st
-1
8
-1
10
-1
10
st+1 -1
10
-1
10
Q(st, at) = -1 + 0.9 · max(Q(st+1, at+1))=
= -1+ 9 = 8
SARSA para entornos no deterministas
01: for all (s, a) do
02: Q(s, a) ← inicializar
// Q(s,a) es la estimación inicial de Q*(s,a)
03: end for
04: s ← observar estado entorno
05: a ← seleccionar acción
// Política de selección de acciones
06: while s != estado terminal do
07: ejecutar a
08: r ← reward
09: s’ ← nuevo estado
10: a’ ← seleccionar siguiente acción
11: Q(s, a) ← Q(s, a) + α · [r + γ · Q(s’, a’) – Q(s,a)]
12: s ← s’
// 0<α <1: learning step
13: a ← a’
14: end while
Aprendizaje por refuerzo: SARSA
• La actualización de Q(s, a) depende de la quíntupla <s, a, r, s’, a’>, que da
origen al nombre SARSA
• SARSA es un algoritmo on-policy, porque sigue y aprende la política de
selección de acciones (que se basa en los valores Q(s, a) ) al mismo
tiempo
• El valor Q(s, a) se actualiza usando el valor Q(s’, a’) de la acción a’
que el agente ejecutará en la siguiente iteración.
• Q-learning es un algoritmo off-policy, porque aprende la política de
selección de acciones independientemente de las acciones que el agente
ejecuta
• El valor Q(s, a) se actualiza usando el valor max
Q(s’, b), aunque el
b
agente puede que ejecute una acción diferente de max
Q(s’, b) en la
b
siguiente iteración.
Q-learning vs SARSA
Camino aprendido por SARSA
Camino aprendido por Q-learning
Q-learning vs SARSA
Conclusión
• El aprendizaje puede ocurrir tanto de manera online como de manera
offline. A ser posible, aprender la política óptima de manera offline y
aplicarla en el problema real
http://heli.stanford.edu/
Conclusión
• Uno de los mejores resultados: TD-Gammon [Tesauro 1995]
• Aprender a jugar al Backgammon
• Rewards:
• +100 si la acción que se ejecuta gana la partida
• -100 si la acción que se ejecuta pierde la partida
• 0 para todas las otras acciones
• Proceso de aprendizaje: 1.5 millones de partidas jugadas contra sí
mismo (!!!)
Conclusión
• Un algoritmo de aprendizaje por refuerzo, en su versión más simple, tiene
que almacenar (por ejemplo en una tabla) un valor Q(s,a) para cada pareja
estado-acción
• El ajedrez tiene 1043 estados !!!!!
• Representación compacta de los estados (p.e., red neuronal)
• Problemas con estados parcialmente observables
• Extensiones para espacios de estados y acciones continuos
• Aprender también la función de transición δ: SxA → S (aprender el
modelo del entorno)
• Reutilizar la función Q(s,a), que se ha aprendido para un determinado
problema, para otro problema similar
Descargar