Algoritmo Asynchronous Advantage Actor Critical (A3C)

El algoritmo Asynchronous Advantage Actor Critic (A3C) es uno de los algoritmos más nuevos desarrollados en el campo de los algoritmos de aprendizaje de refuerzo profundo. Este algoritmo fue desarrollado por DeepMind de Google, que es la división de Inteligencia Artificial de Google. Este algoritmo se mencionó por primera vez en 2016 en un artículo de investigación llamado Métodos asincrónicos para el aprendizaje profundo

Decodificación de las diferentes partes del nombre del algoritmo: – 
 

  • Asíncrono: a diferencia de otros algoritmos populares de Deep Reinforcement Learning como Deep Q-Learning, que usa un solo agente y un solo entorno, este algoritmo usa múltiples agentes y cada agente tiene sus propios parámetros de red y una copia del entorno. Estos agentes interactúan con sus respectivos entornos de forma asincrónica , aprendiendo con cada interacción. Cada agente está controlado por una red global. A medida que cada agente adquiere más conocimiento, contribuye al conocimiento total de la red global. La presencia de una red global permite que cada agente tenga datos de entrenamiento más diversificados. Esta configuración imita el entorno de la vida real en el que viven los humanos, ya que cada humano adquiere conocimientos de las experiencias de algún otro humano, lo que permite que toda la «red global» sea mejor.
  • Actor-crítico: a diferencia de algunas técnicas más simples que se basan en métodos de iteración de valor o métodos de gradiente de política, el algoritmo A3C combina las mejores partes de ambos métodos, es decir, el algoritmo predice tanto la función de valor V(s) como la función política óptima  \pi (s) . El agente de aprendizaje utiliza el valor de la función Valor (Crítico) para actualizar la función de política óptima (Actor). Nótese que aquí la función política significa la distribución probabilística del espacio de acción . Para ser exactos, el agente de aprendizaje determina la probabilidad condicional P(a|s ; \theta ), es decir, la probabilidad parametrizada de que el agente elija la acción a cuando se encuentra en el estado s.

Ventaja: por lo general, en la implementación de Policy Gradient , el valor de Devoluciones descontadas ( \gamma r ) para decirle al agente cuáles de sus acciones fueron gratificantes y cuáles fueron penalizadas. Al usar el valor de Ventaja en su lugar, el agente también aprende cuánto mejores fueron las recompensas de lo que esperaba. Esto le da al agente una visión nueva del entorno y, por lo tanto, el proceso de aprendizaje es mejor. La métrica de ventaja viene dada por la siguiente expresión: 

Ventaja: A = Q(s, a) – V(s) 

El siguiente pseudocódigo proviene del trabajo de investigación vinculado anteriormente. 
 

Define global shared parameter vectors \theta[Tex]and[/Tex]\theta _{v}[Tex] [/Tex]
Define global shared counter T = 0
Define thread specific parameter vectors[Tex]\theta '[/Tex]and[Tex]\theta _{v}'[/Tex]
*** QuickLaTeX cannot compile formula:
 

*** Error message:
Error: Nothing to show, formula is empty

Define thread step counter t = 1
while([Tex]T<T_{max}[/Tex])
{

*** QuickLaTeX cannot compile formula:
 

*** Error message:
Error: Nothing to show, formula is empty

[Tex]d\theta = 0[/Tex]

*** QuickLaTeX cannot compile formula:
 

*** Error message:
Error: Nothing to show, formula is empty
*** QuickLaTeX cannot compile formula:
 

*** Error message:
Error: Nothing to show, formula is empty

[Tex]d\theta _{v} = 0[/Tex]

*** QuickLaTeX cannot compile formula:
 

*** Error message:
Error: Nothing to show, formula is empty
*** QuickLaTeX cannot compile formula:
 

*** Error message:
Error: Nothing to show, formula is empty

[Tex]\theta ' = \theta[/Tex]

*** QuickLaTeX cannot compile formula:
 

*** Error message:
Error: Nothing to show, formula is empty
*** QuickLaTeX cannot compile formula:
 

*** Error message:
Error: Nothing to show, formula is empty

[Tex]\theta '_{v} = \theta _{v}[/Tex]

*** QuickLaTeX cannot compile formula:
 

*** Error message:
Error: Nothing to show, formula is empty
*** QuickLaTeX cannot compile formula:
 

*** Error message:
Error: Nothing to show, formula is empty

[Tex]t_{start} = t[/Tex]

*** QuickLaTeX cannot compile formula:
 

*** Error message:
Error: Nothing to show, formula is empty
*** QuickLaTeX cannot compile formula:
 

*** Error message:
Error: Nothing to show, formula is empty

[Tex]s = s_{t}[/Tex]

*** QuickLaTeX cannot compile formula:
 

*** Error message:
Error: Nothing to show, formula is empty

while([Tex]s_{t}[/Tex]is not terminal[Tex]t-t_{start} < t_{max}[/Tex])
{
Simulate action[Tex]a_{t}[/Tex]according to[Tex]\pi (a_{t}|s;\theta )[/Tex]

*** QuickLaTeX cannot compile formula:
 

*** Error message:
Error: Nothing to show, formula is empty

Receive reward[Tex]r_{t}[/Tex]and next state[Tex]s_{t+1}[/Tex]

*** QuickLaTeX cannot compile formula:
 

*** Error message:
Error: Nothing to show, formula is empty

t++
T++
}
if([Tex]s_{t}[/Tex]is terminal)
{
R = 0
}
else
{
R =[Tex]V(s_{t}, \theta _{v}')[/Tex]

*** QuickLaTeX cannot compile formula:
 

*** Error message:
Error: Nothing to show, formula is empty

}
for(i=t-1;i>=[Tex]t_{start}[/Tex];i--)
{
R =[Tex]r_{i} + \gamma R[/Tex]

*** QuickLaTeX cannot compile formula:
 

*** Error message:
Error: Nothing to show, formula is empty
*** QuickLaTeX cannot compile formula:
 

*** Error message:
Error: Nothing to show, formula is empty
*** QuickLaTeX cannot compile formula:
 

*** Error message:
Error: Nothing to show, formula is empty

[Tex]d\theta = d\theta + \Delta _{\theta '}log(\pi (a_{i}|s{i};\theta ')(R-V(s_{i};\theta _{v}')))[/Tex]

*** QuickLaTeX cannot compile formula:
 

*** Error message:
Error: Nothing to show, formula is empty
*** QuickLaTeX cannot compile formula:
 

*** Error message:
Error: Nothing to show, formula is empty
*** QuickLaTeX cannot compile formula:
 

*** Error message:
Error: Nothing to show, formula is empty

[Tex]d\theta _{v}= d\theta _{v} + \frac{\partial ((R-V(s_{i};\theta _{v}'))^{2})}{\partial \theta _{v}'}[/Tex]

*** QuickLaTeX cannot compile formula:
 

*** Error message:
Error: Nothing to show, formula is empty

}

*** QuickLaTeX cannot compile formula:
 

*** Error message:
Error: Nothing to show, formula is empty

[Tex]\theta = \theta + d\theta[/Tex]

*** QuickLaTeX cannot compile formula:
 

*** Error message:
Error: Nothing to show, formula is empty
*** QuickLaTeX cannot compile formula:
 

*** Error message:
Error: Nothing to show, formula is empty

[Tex]\theta _{v}= \theta + d\theta _{v}[/Tex]

*** QuickLaTeX cannot compile formula:
 

*** Error message:
Error: Nothing to show, formula is empty

}

Where, 

T_{max} – Maximum number of iterations 

d\theta – change in global parameter vector 

R – Total Reward 

\pi – Policy function 

V – Value function 

\gamma – discount factor 

Advantages: 
 

  • Este algoritmo es más rápido y robusto que los algoritmos de aprendizaje por refuerzo estándar.
  • Funciona mejor que las otras técnicas de aprendizaje por refuerzo debido a la diversificación del conocimiento, como se explicó anteriormente.
  • Se puede utilizar tanto en espacios de acción discretos como continuos.

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 *