Antecedentes matemáticos de Q-learning

Requisitos previos: Q-Learning .

En las siguientes derivaciones, se utilizarán los símbolos definidos en el artículo de requisitos previos.
La técnica Q-learning se basa en la Ecuación de Bellman .

v(s) = E(R_{t+1}+\lambda v(S_{t+1})|S_{t}=s)
where,
E : Expectation
t+1 : next state
\lambda : discount factor

Reformulando la ecuación anterior en forma de Q-Value:-

Q^{\pi}(s,a) = E(r_{t+1}+\lambda r_{t+2}+\lambda ^{2}r_{t+3}+...|S_{t}=s,A_{t}=a)

= E_{s'}(r_{t}+\lambda Q^{\pi}(s',a')|S_{t}=s,A_{t}=a)

El valor Q óptimo viene dado por

Q^{*}(s,a) = E_{s'}(r_{t}+\lambda max_{a'}Q^{*}(s',a')|S_{t}=s,A_{t}=a)

Iteración de políticas: es el proceso de determinar la política óptima para el modelo y consta de los siguientes dos pasos:-

  1. Evaluación de políticas: este proceso estima el valor de la función de recompensa a largo plazo con la política codiciosa obtenida del último paso de mejora de políticas.
  2. Mejora de la política: este proceso actualiza la política con la acción que maximiza V para cada estado. Este proceso se repite hasta que se logra la convergencia.

Pasos involucrados: –

  • Inicialización:

    V(s)= cualquier número aleatorio real
    \pi(s)= cualquier A(s) elegido arbitrariamente

  • Evaluación de políticas:
    \Delta = 0
    while(\Delta > \theta)
    {
        for each s in S
        {    
            v = V(s)
            V(s) = \sum_{s',r}(p(s',r|s,\pi (s))(r+\lambda V(s')))
            \Delta = max(\Delta ,|v-V(s)|)
        }
    }
    
    \theta \rightarrow 0^{+}
    
    
  • Mejora de la política:
    isPolicyStable = true
    while(true)
        for each s in S
        {
            a = \pi (s)
            \pi (s) = 
            if(a\neq \pi (s))
                isPolicyStable = false
            if(isPolicyStable == true)
                break from both loops
        }
    return V,\pi
    
  • Iteración de valor: este proceso actualiza la función V de acuerdo con la ecuación óptima de Bellman .

    v_{*}(s) = max_{a}E(R_{t+1}+\gamma v_{*}(S_{t+1})|S_{t}=s,A_{t}=a)

Pasos de trabajo:

  • Inicialización: Inicialice la array V por cualquier número real aleatorio.
  • Cálculo del valor óptimo:
    \Delta = 0
    while(\Delta > \theta)
    {
        for each s in S
        {
            v = V(s)
            V(s) = \sum_{s',r}(p(s',r|s,\pi (s))(r+\lambda V(s')))
            \Delta = max(\Delta ,|v-V(s)|)
        }
    }
    
    \pi (s) = argmax_{a}\sum _{s',r}(p(s',r|s,a)(r+\gamma V(s')))
    return \pi
    

Publicación traducida automáticamente

Artículo escrito por AlindGupta y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *