DDPG(Deep Deterministic Policy Gradient) 개요
DDPG는 DQN의 replay buffer와 target network를 활용한 학습 안정화 메커니즘과 Deterministic Policy Gradient(DPG)의 continuous action space 처리능력을 결합하여 DQN이 해결하지 못한 continuous action space 문제를 deep RL로 풀어낸 대표적인 알고리즘이다.
DDPG의 핵심 철학 4가지
1. deterministic policy
일단 DQN과의 결정적 차이로 DQN은 \(argmax_aQ(s,a)\)를 연속 공간에서는 절대 죽어도 못 구한다. 이제 DDPG는 Actor가 \(argmax_aQ(s,a)\) 자체를 탐색하는게 아닌 신경망으로 추정한다.
actor의 업데이트 수식은 다음과 같다.
\[ \nabla_\theta J(\theta) = \nabla_a Q_\phi(s, a)\big|_{a = \mu_\theta(s)} \; \nabla_\theta \mu_\theta(s) \qquad \theta \leftarrow \theta + \alpha \nabla_\theta J(\theta) \]
- actor가 현재 상태에서 행동 \(a=\mu(s)\)를 결정한다.
- Critic이 그 행동의 \(Q(s,a)\)를 평가한다.
- Q값을 action에 대해 미분하여 gradient가 가파른 방향으로 Q를 maxmize하도록 Actor의 파라미터를 업데이트 한다.
여기서 핵심은 \(V(s)\)가 아닌 \(Q(s,a)\)를 사용했다는 것이다. 왜냐면 Q값을 사용함으로써 action에 대해서 미분이 가능하여 gradient ascent로 최적 행동을 찾는 actor를 학습할 수 있는 것이다. 이렇게 critic의 Q를 action으로 미분해 actor를 끌어올리는 방식이 바로 개요에서 말한 DPG(Deterministic Policy Gradient)다.
2. off policy
이 부분은 사실 DQN의 핵심인 Experience Replay Buffer를 그대로 같은 이유로 가져와서 사용한 것이기에 딱히 설명할게 없다. 그래도 그냥 간략하게 예시로 설명하자면 로봇이 걷는다 라는 행위를 할 때 한 걸을을 걸었을때나 두 걸음을 걸었을 때 세 걸음을 걸었을 때 모두 비슷한 상태인데 이 따위 데이터로 학습하면 신경망이 불안정해진다. 그래서 과거의 경험을 buffer에 수집하고 mini batch로 다양한 경험을 샘플링하여 효율을 높이는 방식이 DQN의 방식이고 DDPG또한 이 철학을 따른다.
3. soft update
critic도 DQN처럼 target을 보고 학습하는데 target Q와 예측 Q가 같은 network면 자기가 자기를 쫓는 꼴이라 불안정하다. 그래서 학습용 main network 말고 target network를 따로 둔다. critic이 따라갈 target은 다음과 같다.
\[ y = r + \gamma Q_{\phi'}\big( s', \mu_{\theta'}(s') \big) \]
여기서 \(Q_{\phi'}\)가 target critic이고 \(\mu_{\theta'}\)가 target actor다. 원래 DQN의 target엔 \(\max_{a'} Q(s',a')\)가 들어가는데 continuous action에선 그 max를 못 구하니 target actor가 고른 action \(\mu_{\theta'}(s')\)로 대신한다. 그래서 actor도 main과 target 둘, critic도 main과 target 둘 해서 network가 총 4개가 된다.
그럼 target network는 어떻게 갱신할까. DQN은 일정 주기마다 main을 target에 통째로 복사(hard update)했다. DDPG는 매 스텝 아주 조금씩 섞는 soft update를 쓴다.
\[ \theta' \leftarrow \tau \theta + (1-\tau)\theta' \qquad \phi' \leftarrow \tau \phi + (1-\tau)\phi' \]
\(\tau\)는 0.001처럼 작은 값이라 target이 main을 천천히 따라간다. target이 휙휙 안 바뀌고 살살 움직이니 그만큼 학습이 안정된다.
4. exploration noise
deterministic policy는 같은 상태에 항상 같은 action만 낸다. stochastic policy는 분포에서 샘플링하니 알아서 이것저것 해보는데 deterministic은 그게 안 돼서 탐색을 아예 안 한다. 한 번 좋다고 판단한 action만 계속 반복하면 더 좋은 행동이 있어도 못 찾는다.
그래서 행동할 때 action에 noise를 살짝 더해서 강제로 주변을 들쑤신다.
\[ a = \mu_\theta(s) + \mathcal{N} \]
여기서 \(\mathcal{N}\)은 원래 DDPG에서는 Ornstein-Uhlenbeck 과정으로 만든 noise를 쓴다.
\[ dN_t = \theta_{OU}(\mu_{OU} - N_t)\,dt + \sigma\,dW_t \]
이는 물리적 관성을 가진 시스템(로봇 관절, 자동차)에서 부드러운 연속 탐색이 가능하도록 설계된 noise다. 시간적으로 이어지는 noise라 한 방향으로 살살 밀어주듯 탐색하기 때문이다. 다만 최근 연구들에서는 단순한 평균 0의 Gaussian noise도 충분히 잘 작동한다는 게 밝혀져서 요즘은 그게 더 널리 쓰인다.
그리고 이 noise는 어디까지나 학습 중 탐색용이다. 테스트할 때는 noise를 빼고 순수 deterministic policy \(\mu_\theta(s)\)만 쓴다.
'Reinforcement Learning' 카테고리의 다른 글
| Advantage Actor Critic (A2C) (0) | 2026.06.15 |
|---|---|
| Policy based 강화학습: Policy Gradient with REINFORCE (0) | 2026.06.14 |
| DQN: Deep Q-Network (0) | 2026.05.29 |
| Temporal-Difference(TD) (0) | 2026.04.21 |
| Optimal Value Function을 찾기 위한 Monte Carlo 방법 (0) | 2026.04.19 |