본문 바로가기
AI & Optimization/Reinforcement Learning

[RL] 강화학습 알고리즘: (4) DDPG

by SIES 2022. 12. 30.
반응형

DDPG (Deep Deterministic Policy Gradient)는 Google DeepMind에서 2016년도 ICLR에 발표한 논문입니다. 이전 2014년에 공개한 DPG (Deterministic Policy Gradient) 논문에서 DQN을 결합하여 발전시킨 알고리즘입니다.

 

Motivation

DDPG는 DQN에서 성공적이었던 부분들을 continuous action 영역으로 확장하고자 하였습니다. 단순히 continuous action 영역을 discrete한 구간으로 잘게 나누는 것은 많아진 discrete action들로 인한 학습 성능 저해(curse of dimensionality)와 기존 continuous action이 가진 구조적 정보를 잃어버린다는 단점이 있습니다.

 

Figure 1. Discrete action과 continuous action의 예시

따라서 논문은 continuous action 영역에서 정의된 deterministic policy를 이용하는 상황에서, DQN 알고리즘의 장점을 결합하고자 하였습니다. 이를 통해 기존 DPG 알고리즘에 딥러닝을 통한 ① nonlinear function approximation, ② target network, ③ replay buffer를 도입합니다.

 

DPG (Deterministic Policy Gradient)

아래 그림과 같이 stochastic policy $\pi(a|s)$는 action에 대한 확률 분포를 의미하는 반면 deterministic policy $\mu(s)$는 하나의 action에 대한 확률만을 가지는 분포입니다. Discrete action과 비슷해 보이지만 deterministic policy는 action을 parameterize 할 수 있으며 continuous action을 나타낼 수 있는 장점이 있습니다.

 

Figure 2. Stochastic policy vs deterministic policy

Policy gradient 알고리즘은 start state-value $J_1(\theta)$ 또는 평균 reward $J_{avR}(\theta)$를 최대화하는 policy를 직접적으로 찾는 것을 목표로 합니다. Sutton의 Policy Gradient Theorem을 deterministic policy인 경우로 확장하면 아래 수식과 같습니다.

 

$$ \begin{align} \small\text{Policy Gradient Theorem}~~~~ \normalsize\nabla_\theta J(\theta) &= \mathbb E_{s,a\sim\pi}\left[\nabla_\theta\log\pi_\theta(a|s)\cdot Q^\pi(s,a)\right] \\\\ \small\text{Deterministic Policy Gradient Theorem}~~~~ \normalsize\nabla_\theta J(\theta) &= \mathbb E_s\left[\nabla_\theta \mu_\theta(s)\cdot \nabla_a Q^\mu(s,a)\rvert_{a=\mu_\theta(s)}\right] \end{align} $$

 

따라서 DDPG에서는 위 수식에 나온 DPG (deterministic policy gradient) $\nabla_\theta J $를 구하고 이 방향으로 파라미터 $\theta$를 업데이트하면 최적 policy $\mu_\theta$를 찾을 수 있습니다.

 

DDPG (Deep Deterministic Policy Gradient)

$\theta$로 모델링된 최적 policy $\mu^*_\theta(s)$를 찾기 위해서는 $\nabla_\theta J(\theta)$를 구해야하고, 이를 위해선 $\mu_\theta(s)$ 뿐만 아니라 $Q^\mu(s,a)$가 필요합니다. DDPG는 $Q^\mu(s,a)=\mathbb E_\mu[R_t|s,a]$를 actor-critic 방식의 parameterized Q-function을 이용해서 구합니다.

 

따라서 policy network의 파라미터를 $\theta^\mu$, value network의 파라미터를 $\theta^Q$로 하면, policy는 $\mu(s|\theta^\mu)$로 value function은 $Q(s,a|\theta^Q)$로 나타낼 수 있습니다.

Figure 3. DDPG 알고리즘 구조

 Policy Network 학습 (Actor) 

DPG Theorem에서 모든 $s$에 대한 기댓값 대신 샘플 평균을 이용하여 식을 근사시켜주면 아래와 같습니다.

 

$$ \nabla_{\theta^\mu}J \approx \frac{1}{N}\sum_i \left[\nabla_a Q(s,a|\theta^Q)\rvert_{s=s_i,a=\mu(s_i)} \nabla_{\theta^\mu}\mu(s|\theta^\mu)\rvert_{s=s_i} \right]$$

 

이를 이용해 policy network $\mu(s|\theta^\mu)$의 모델 파라미터 $\theta^\mu$를 아래 수식처럼 gradient ascent 방식으로 학습시키면 최적 policy를 찾을 수 있습니다. 다만 $\nabla_{\theta^\mu}J$를 구하기 위해서는 value network를 통해 $Q(s,a|\theta^Q)$를 먼저 업데이트 해줘야합니다.

 

$$ \theta^\mu \leftarrow \theta^\mu+\alpha\nabla_{\theta^\mu}J $$

 

Value Network 학습 (Critic)

Q-function에 해당하는 value network는 SARSA 방식의 TD error를 줄이는 방향으로 학습됩니다. TD target과 샘플 평균을 통해 근사한 loss function은 아래 수식과 같습니다.

 

$$ \begin{align} \small\text{TD target}~~~~ \normalsize y_i &= r_i+\gamma Q(s_{i+1},\mu(s_{i+1}|\theta^{\mu})|\theta^{Q} ) \\\\ \small\text{Loss function}~~~~ \normalsize L&=\frac{1}{N} \sum_i \left[y_i- Q(s_i,a_i|\theta^Q) \right]^2 \end{align} $$

 

SARSA 방식을 이용하기 때문에 TD target을 계산할 시 $a_{i+1}=\mu(s_{i+1}|\theta^{\mu})$를 policy network를 통해 추출하여 사용합니다. 이를 이용하여 value network $Q(s,a|\theta^Q)$의 모델 파라미터 $\theta^Q$를 gradient descent 방식으로 학습시킵니다.

 

$$ \theta^Q \leftarrow \theta^Q-\alpha \nabla_{\theta^Q} L $$

 

DDPG는 DQN에서의 target network 기법을 도입했기 때문에 TD target을 계산할 시, $\theta^{\mu'}$로 모델링 된 target policy network $\mu'(s|\theta^{\mu'})$와 $\theta^{Q'}$로 모델링 된 target value network $Q'(s,a|\theta^{Q'})$를 이용합니다. 따라서 실제로 TD target은 아래의 수식처럼 표현될 수 있습니다. (※ DQN 포스팅 참고)

 

$$ \small\text{TD target (w/ target network)}~~~~ \normalsize y_i = r_i+\gamma Q'(s_{i+1},\mu'(s_{i+1}|\theta^{\mu'})|\theta^{Q'} ) $$

 

DDPG 알고리즘의 특징

1) Off-policy: DDPG의 중요한 특징은 off-policy 방식으로 학습한다는 점입니다. Off-policy 알고리즘은 target policy와 behavior policy가 같지 않아도 학습이 가능합니다. 따라서 과거의 behavior policy로 생성한 샘플을 통해 현재의 target policy 업데이트가 가능합니다.

 

2) DQN 기법 도입: DDPG는 off-policy 알고리즘이기 때문에 샘플 효율성을 극대화시키기 위해 experience replay가 사용될 수 있습니다. 또한 parameterize 된 두 모델의 학습 안정성을 위해 target network를 사용합니다. 이 때, target network를 업데이트 시 DQN과 다르게 이동 평균 방식의 soft update를 수행합니다.

 

3) OU(Ornstein-Uhlenbeck) process: Continuous action 영역에서의 exploration을 효과적으로 수행하기 위해 OU process로 생성된 random noise $\mathcal{N_t}$ 를 action $\mu(s_t|\theta^\mu)$에 더해주는 방식을 사용합니다.

 

$$ a_t=\mu(s_t|\theta^\mu)+\mathcal{N_t} $$

 

4) Batch normalization: DDPG는 batch normalization을 통해 다양한 continuous action 문제를 효과적으로 학습할 수 있습니다.

 

DDPG 알고리즘

앞서 설명한 내용을 바탕으로 논문의 DDPG 알고리즘을 살펴보면 아래와 같습니다. 

[DDPG algorithm]
1) 주어진 state $s_t$에서 policy network와 OU process를 통해 action $a_t$을 획득
2) 선택된 action을 환경에 수행하여 transition $e_t=(s_t,a_t,r_t,s_{t+1})$를 획득
3) 획득한 transition은 replay buffer에 저장하고, 임의의 transition들을 replay buffer에서 샘플링
4) 샘플링된 transition들을 이용하여, TD error를 감소시키는 방향으로 value network (=critic) 학습
5) 샘플링된 transition들을 이용하여, DPG를 계산하여 policy network (=actor) 학습
6) 두개의 target network 파라미터의 soft update 수행

 

Figure 4. DDPG 알고리즘

 

References

[1] T. P. Lillicrap et al., "Continuous Control with Deep Reinforcement Learning," ICLR, 2016.

[2] D. Silver et al., "Deterministic Policy Gradient Algorithms," PMLR, 2014.


강화학습 스터디의 다른 글 목록

 


오타나 잘못된 부분 있으면 댓글 부탁드립니다. 도움이 되셨다면 공감 눌러 주시면 감사하겠습니다 :)

반응형

댓글