DDPG는 왜 불안정한가 — Continuous Control의 설계와 균열
DQN이 연속 행동 공간에서 실패하는 수학적 이유부터 DDPG의 결정론적 정책 기울기 유도, Q-과대추정과 탐험 민감성까지, continuous control의 핵심 트레이드오프를 추적한다.
- 01 Tabular RL은 왜 Atari를 풀 수 없는가
- 02 DQN은 어떻게 픽셀에서 인간을 이겼는가
- 03 Q-Learning은 왜 항상 과대평가하는가
- 04 Rainbow DQN의 다섯 가지 개선은 왜 함께 작동하는가
- 05 Return을 분포로 보면 무엇이 달라지는가
- 06 Rainbow에서 MuZero까지 — DQN 진화의 통일된 논리
- 07 DDPG는 왜 불안정한가 — Continuous Control의 설계와 균열
DQN은 Atari를 정복했다. 하지만 로봇 팔 하나를 제어하는 데는 쓸 수 없다. 왜인가? 그리고 이 한계를 돌파하기 위해 만든 DDPG가 “작동하지만 믿을 수 없다”는 평가를 받는 이유는 무엇인가?
DQN의 경계 — 이산에서 연속으로
DQN의 핵심 연산은 다음 한 줄이다.
행동 집합 가 유한하면, 는 단순히 모든 행동에 대해 를 평가하고 가장 큰 값을 고르는 연산이다. Atari에서 이므로 문제없다.
연속 행동 공간 로 넘어오면 이 연산이 제약 최적화 문제로 바뀐다.
신경망 는 일반적으로 비볼록 함수다. 매 스텝마다 비볼록 최적화를 풀어야 한다. 흔히 제안되는 우회책인 균등 이산화는 차원 에 지수적으로 폭발한다.
, (휴머노이드 로봇의 전형적인 행동 차원)이면 개 행동을 매 스텝 평가해야 한다. GPU로 초당 1백만 번 평가한다고 해도 10 스텝/초가 한계다. RL 학습에 필요한 스텝은 현실적으로 불가능하다.
이산화 오차는 로 줄지만, 필요한 평가 횟수는 로 증가한다. 오차 허용 범위 을 달성하려면 번 평가가 필요하다 — 가 커질수록 근본적으로 불가능해진다.
결정론적 정책 기울기 — DPG 정리
연속 행동 공간의 해법은 를 명시적으로 계산하지 않는 것이다. 대신 “어떤 행동이 좋은가”를 직접 출력하는 행위자 네트워크 를 도입하고, 이를 의 기울기로 개선한다.
Silver et al.(2014)의 결정론적 정책 기울기(DPG) 정리는 이 직관을 엄밀하게 만든다.
파라미터화된 결정론적 정책 에 대해, 정책 성능의 기울기는 다음과 같다.
여기서 는 정책 를 따를 때의 할인된 상태 분포다.
핵심은 연쇄 법칙이다. 정책 성능 에서 는 두 경로로 에 영향을 미친다: 상태 분포 를 통한 직접 경로, 그리고 행동 를 통한 간접 경로.
Silver(2014)는 에르고딕 MDP의 정상 분포 성질에 의해 직접 경로의 기여가 정확히 상쇄됨을 보였다. 따라서 간접 경로만 남는다.
행렬 차원을 확인하면: , , 결과는 .
이 공식의 함의는 명확하다. 행위자는 단 한 번의 순전파로 행동을 생성하고(), 비평자의 를 신호 삼아 개선된다. 지수적 이산화 격자가 필요 없다.
DPG 정리는 오프-정책 호환성도 제공한다. 확률적 정책 기울기는 현재 정책에서 샘플링한 가 필요하지만, DPG는 상태 만 필요하고 행동은 현재 정책 가 결정론적으로 생성한다. 따라서 재현 버퍼의 오래된 전이에서도 유효한 기울기 추정치를 얻을 수 있다 — DQN의 경험 재현을 그대로 활용하는 DDPG의 토대다.
DDPG의 구조 — DQN 위에 쌓인 것들
DDPG(Lillicrap et al. 2016)는 DPG 정리를 심층 신경망으로 구현하면서 DQN의 세 가지 안정화 장치를 계승한다.
경험 재현: 오프-정책 학습으로 과거 전이를 재사용한다.
목표 네트워크: DQN의 하드 복사( 스텝마다 덮어쓰기) 대신 소프트 업데이트를 도입한다.
업데이트 회 후 목표 네트워크의 지연은 으로 지수적으로 감소한다. 이면 반감기는 약 139 스텝 — 충분히 느려서 부트스트래핑 불안정을 억제한다.
비평자-행위자 분리: 비평자 는 DQN처럼 벨만 목표로 학습하고, 행위자 는 DPG 기울기로 학습한다.
# DDPG 비평자 업데이트
with torch.no_grad():
next_a = actor_target(next_states)
target_q = rewards + (1 - dones) * gamma * critic_target(next_states, next_a)
current_q = critic(states, actions)
critic_loss = ((current_q - target_q) ** 2).mean()
# DDPG 행위자 업데이트 (DPG: -Q를 최소화 = Q를 최대화)
actor_loss = -critic(states, actor(states)).mean()
결정론적 정책이므로 탐험을 위해 행동에 잡음을 별도로 추가해야 한다. Lillicrap(2016)은 오른스타인-울렌벡(OU) 과정을 사용했다: , 여기서 는 자기 상관된 연속 잡음이다.
DDPG의 균열 — 세 가지 불안정성
DDPG는 continuous control의 돌파구였지만, 실무에서 “하이퍼파라미터를 약간 바꾸면 발산한다”는 평판이 따라붙었다. 세 가지 근본 원인이 있다.
Q 과대추정: 비평자는 행동 잡음이 포함된 쌍으로 학습하지만, 행위자는 잡음 없는 에서 를 평가한다. 이 분포 불일치가 체계적 과대추정을 낳는다.
Fujimoto et al.(2018)은 이 과대추정 오차가 행동 분포 (과거 정책)와 (현재 정책) 사이의 KL 발산에 비례함을 보였다.
소프트 업데이트 의 민감성: 가 너무 작으면 목표 네트워크가 구식이 되어 비평자 손실이 정체되고, 너무 크면 부트스트래핑 불안정이 재현된다. 최적 범위 은 환경마다 다르다.
탐험 잡음의 취약성: OU 잡음의 하이퍼파라미터 는 환경의 시간 척도에 따라 달라진다. 잘못된 설정은 탐험 부족 또는 과잉으로 이어진다.
DDPG의 핵심 긴장은 오프-정책 효율성과 분포 정합성 사이에 있다. 재현 버퍼를 오래 쓸수록 샘플 효율은 높아지지만, 과거 정책과 현재 정책의 행동 분포 차이가 Q 추정을 오염시킨다. , 잡음 크기, 비평자 학습률은 모두 이 긴장의 다른 표현이다.
TD3와 SAC — 두 갈래의 해법
DDPG의 불안정성에 대한 답은 2018년에 두 방향으로 나왔다.
TD3(Fujimoto 2018): 보수적 접근. 두 개의 독립 비평자 를 유지하고 최솟값으로 벨만 목표를 계산한다.
는 목표 행동을 부드럽게 만든다(target policy smoothing). 행위자 업데이트는 매 비평자 업데이트마다 한 번으로 지연된다. 은 과대추정을 과소추정으로 전환하고, 지연 업데이트는 불안정한 신호가 행위자에 전파되기 전에 비평자가 수렴할 시간을 준다.
SAC(Haarnoja 2018): 원칙적 접근. 보상 최대화에 정책 엔트로피 항을 추가한다.
엔트로피 계수 는 라그랑지안 이중 최적화로 자동 조정된다 — 목표 엔트로피 을 제약으로 삼는 제약 최적화의 쌍대 변수가 다. 이 구조는 탐험을 잡음 하이퍼파라미터가 아닌 정책의 본질로 만든다.
정리
- DQN의 연산은 이산 행동 공간의 산물이다. 연속 공간에서 이산화는 지수 폭발로 계산 불가능해진다.
- DPG 정리는 없이 연속 행동을 개선하는 경로를 제공한다 — 비평자의 를 신호로 행위자를 직접 학습한다.
- DDPG는 이 정리를 경험 재현, 소프트 타깃, 행위자-비평자 분리로 구현했지만, Q 과대추정과 탐험 잡음 민감성이라는 구조적 취약점을 남겼다.
- TD3는 보수적 이중 Q와 지연 업데이트로, SAC는 엔트로피 정규화로 같은 취약점을 서로 다른 원칙에서 공략한다.
연속 제어의 역사는 “행동 최대화를 어떻게 회피하는가”라는 하나의 질문에 대한 반복적 정제다.