본문 바로가기
Data Science/Reinforcement

A2C의 배경과 그래디언트의 재구성

by hyelog 2023. 6. 13.

1. 배경

REINFORCE 알고리즘 단점

  • 정책을 업데이트하기 위해 에피소드가 끝날때까지 기다려야함
  • 그래디언트의 분산이 매우 큼

위의 단점을 개선한 알고리즘이 A2C(advangate actor-critic)이다.

2. 그래디언트의 재구성

$$\begin{matrix}
\nabla_\theta J(\theta) &=& \mathbb{E} _{t\sim p_\theta(\tau)} [ \sum_{t=0}^{T}\limits(\gamma^t\nabla_\theta log\pi_\theta(u_t|x_t)(\sum _{k=t}^{T}\limits\gamma^{k-t}r(x_k,u_k))] \\
&=&
\sum_{t=0}^{T}\limits \left\{ \mathbb{E} _{t\sim p_\theta(\tau)} [ \gamma^t\nabla_\theta log\pi_\theta(u_t|x_t)(\sum_{k=t}^T\limits \gamma^{k-t}r(x_k,u_k))] \right\}
\end{matrix}$$

 

 

$$ \begin{matrix} \nabla_\theta J(\theta) &=& \sum_{t=0}^{T}\limits\int_{\tau_{x_0}:u_t}\int_{\tau_{x_{t+1}}:u_T} \left( \gamma^t\nabla_\theta log\pi_\theta(u_t|x_t) \left( \sum_{k=t}^{T}\limits\gamma^{k-t}r(x_k,u_k)\right)\right) p_\theta(\tau_{x_0:u_t},\tau_{x_{t+1}:u_T})d\tau_{x_{t+1}:u_T}d\tau_{x_0:u_t} \\ &=& \sum_{t=0}^{T}\limits\int_{\tau_{x_0}:u_t}\int_{\tau_{x_{t+1}}:u_T} \left( \gamma^t\nabla_\theta log\pi_\theta(u_t|x_t) \left( \sum_{k=t}^{T}\limits\gamma^{k-t}r(x_k,u_k)\right)\right) p_\theta(\tau_{x_0:u_t}|\tau_{x_{t+1}})p_\theta(\tau_{x_0:u_T})d\tau_{x_{t+1}:u_T}d\tau_{x_0:u_t}\\ &=& \sum_{t=0}^{T}\limits\int_{\tau_{x_0}:u_t}\left[ \int_{\tau_{x_{t+1}}:u_T}\left( \sum_{k=t}^{T}\limits\gamma^{k-t}r(x_k,u_k)\right)p_\theta(\tau_{x_0:u_t}|\tau_{x_{t+1}})d\tau_{x_{t+1}:u_T}\right]p_\theta(\tau_{x_0:u_t})d\tau_{x_0:u_t} \end{matrix} $$

위 식의 대괄호 항은 마르코프 가정에 의해 다음과 같이 행동가치함수로 치환할 수 있다.

$$ \int_{\tau_{x_{t+1}}:u_T}\left( \sum_{k=t}^{T}\limits\gamma^{k-t}r(x_k,u_k)\right)p_\theta(\tau_{x_0:u_t}|\tau_{x_{t+1}})d\tau_{x_{t+1}:u_T} = Q^{\pi_\theta}(x_t,u_t) $$

이를 치환하여 다시 작성해 보면

$$ \begin{matrix} \nabla_\theta J(\theta) &=& \sum_{t=0}^{T}\limits \gamma^t\nabla_\theta log\pi_\theta(u_t|x_t)Q^{\pi_\theta}(x_t,u_t)p_\theta(\tau_{x_0:u_t})d\tau_{x_0:u_t} \\ &=& \sum_{t=0}^{T}\limits \left( \int_{(x_t, u_t)} \gamma^t\nabla_\theta log\pi_\theta(u_t|x_t)Q^{\pi_\theta}(x_t,u_t)p_\theta(x_t,u_t)dx_tdu_t\right) \end{matrix} $$

여기서 $p_\theta(x_t,u_t)$는 $(x_t,u_t)$의 한계확률밀도함수(marginal probability density function)다.

 

확률의 연쇄법칙을 사용하여 정리하면,

 

$$ \begin{matrix} \nabla_\theta J(\theta) &=& \sum_{t=0}^{T}\limits \left( \int_{(x_t, u_t)} \gamma^t\nabla_\theta log\pi_\theta(u_t|x_t)Q^{\pi_\theta}(x_t,u_t)\pi_\theta(u_t|x_t)p_\theta(x_t)dx_tdu_t\right) \\ &=& \sum_{t=0}^{T}\limits \left( \mathbb{E}{x_t \sim p\theta(x_t), u_t\sim \pi_\theta(u_t|x_t)}\left[ \nabla_\theta log\pi_\theta(u_t|x_t)Q^{\pi_\theta}(x_t,u_t)\right] \right) \end{matrix} $$

여기서 $\gamma^t p_\theta(x_t)$를 상태변수 $x_t$의 감가된 확률밀도함수라고 한다.

 

감가율 $\gamma^t$는 에피소드의 후반부 궤적의 데이터 이용도를 크게 떨어뜨리므로 일반적으로 제거한다.

처음 식과 비교해 보면, 반환값 대신에 행동가치 함수가 나온것을 알 수 있다.

목적함수의 그래디언트를 계산하기 위해서 행동가치를 계산하면 되는 것이다.

 

행동가치는 상태변수 $x_t$에서 행동 $u_t$를 선택하고 그로부터 정책 $\pi$에 의해 행동이 가해졌을 때 기대할 수 있는 미래의 반환 값이므로

에피소드가 끝날 때까지 기다릴 필요가 없다.

댓글