Cómo ajustar pesos en valores Q con aproximación de función lineal

12

En el aprendizaje por refuerzo, la aproximación de función lineal a menudo se usa cuando hay grandes espacios de estado. (Cuando las tablas de búsqueda se vuelven inviables).

La forma del valor con aproximación de función lineal viene dada porQ

Q(s,una)=w1F1(s,una)+w2F2(s,una)+,

donde son los pesos y son las características.wyoFyo

Las características están predefinidas por el usuario. Mi pregunta es, ¿cómo se asignan los pesos?

He leído / descargado algunas diapositivas de conferencias sobre learning con aproximación de funciones. La mayoría de ellos tienen diapositivas sobre regresión lineal que siguen. Como son solo diapositivas, tienden a estar incompletas. Me pregunto cuál es la conexión / relación entre los dos temas.Q-

cgo
fuente

Respuestas:

11

La aproximación de funciones es básicamente un problema de regresión (en el sentido general, es decir, opuesto a la clasificación donde la clase es discreta), es decir, uno intenta aprender un mapeo de funciones desde la entrada (en su caso F(s,una) ) a un valor real salida Q(s,una) . Dado que no tenemos una tabla completa de todos los valores de entrada / salida, sino que aprendemos y estimamos Q(s,una) al mismo tiempo, los parámetros (aquí: los pesos w ) no pueden calcularse directamente a partir de los datos. Un enfoque común aquí es usar el descenso de gradiente .

Aquí está el algoritmo general para aprender Q(s,una) con aproximación de función de valor

  • Init parámetro-vector w=(w1,w2,....,wnorte) al azar (por ejemplo, en [0,1])
  • Para cada episodio:

    1. s estado inicial del episodio
    2. una acción dada por la políticaπ (recomendado:ϵ -greedy)
    3. Tome la acción una , observe la recompensa r y el siguiente estado s
    4. ww+α(r+γmetrounaXunaQ(s,una)-Q(s,una))wQ(s,una)
    5. ss

    Repita 2-5 hasta que s sea ​​terminal

dónde ...

  • α[0 0,1] es la tasa de aprendizaje
  • γ[0 0,1] es la tasa de descuento
  • metrounaXunaQ(s,una) es la acciónuna en estados maximizandoQ(s,una)
  • wQ(s,una)es el gradiente deQ(s,una)enw. En su caso lineal, el gradiente es simplemente un vector(F1(s,una),...,Fnorte(s,una))

Los parámetros / actualización de pesos (4to paso) se pueden leer de esta manera:

  • (r+γmetrounaXunaQ(s,una))-(Q(s,una)) es el error entre la predicciónQ(s,una) y el valor "real" paraQ(s,una) , que es la recompensar obtenidoahora PLUSde lo esperado, recompensa descontado siguiendo la política codiciososdespués γmetrounaXunaQ(s,una)
  • Por lo tanto, el parámetro / vector de peso se desplaza en la dirección más pronunciada (dada por el gradiente wQ(s,una) ) por la cantidad del error medido, ajustado por α .

Fuente principal:

Capítulo 8 Aproximación de valor del libro (recomendado en general) Aprendizaje de refuerzo: una introducción de Sutton y Barto (primera edición). El algoritmo general se ha modificado, ya que comúnmente se hace para calcular Q(s,una) lugar de V(s) . También eliminé los rastros de elegibilidad mi para centrarme en el descenso del gradiente, por lo tanto, utilizo solo copias de seguridad de un paso

Más referencias

steffen
fuente
2
Enlace roto para Barto y Sutton! Ahora aquí -> incompleteideas.net/book/the-book.html :) y como ebook incompleteideas.net/book/ebook pero no sé dónde encontrar un archivo mobi
grisaitis
1
¿No es el gradiente de Q (s, a) en relación con el vector de columna wa donde cada elemento es fi (s, a), en lugar de ser la suma de todos los fi como dijiste? El objetivo es que cada peso se cambie de acuerdo con el valor de la característica a la que se está multiplicando.
Miguel Saraiva
@MiguelSaraiva Sí, lo arreglé. Muchas gracias.
steffen