qcoding

[AI논문리뷰-강화학습] Dreamer - 잠재 공간에서 상상하고 역전파로 행동을 학습한 모델 기반 강화학습 본문

AI논문리뷰-강화학습

[AI논문리뷰-강화학습] Dreamer - 잠재 공간에서 상상하고 역전파로 행동을 학습한 모델 기반 강화학습

Qcoding 2026. 5. 2. 09:53
반응형
논문  Dream to Control: Learning Behaviors by Latent Imagination 저자  Hafner et al. (Google Brain / DeepMind) 학회/연도  ICLR 2020 arXiv  1912.01603

📄 한 문단 요약

Dreamer는 Google Brain이 ICLR 2020에 발표한 모델 기반 강화학습 알고리즘이다. 핵심 아이디어는 세 단계다: ① RSSM(Recurrent State Space Model)으로 세계 모델을 학습하고, ② 실제 환경 없이 이 세계 모델 안에서 H=15 스텝을 상상(imagination)한 뒤, ③ 상상 궤적을 통해 역전파(backpropagation)로 Actor-Critic을 직접 최적화한다. 덕분에 DeepMind Control Suite 20개 연속 제어 환경에서 5M 스텝만으로 D4PG(100M 스텝 필요)보다 높은 성능을 달성했다. 이후 DreamerV2·V3로 이어지는 세계 모델 RL의 핵심 선행 연구다.

이 논문은 무엇을 해결하려고 했나?

연속 행동 공간의 이미지 기반 제어 문제에서 모델 프리 RL은 샘플 효율이 극단적으로 낮다. SAC나 D4PG 같은 방법들도 좋은 성능을 내지만, 수천만~수억 번의 환경 상호작용이 필요하다. 로봇 제어나 실제 물리 환경에서는 이 정도 데이터 수집 자체가 불가능하거나 수백 시간의 실험을 요구한다.

모델 기반 RL은 이 문제를 세계 모델(world model)로 해결하려 한다. 환경의 역학을 학습하면 실제 환경 상호작용 없이 시뮬레이션 안에서 연습할 수 있다. 그러나 기존 방법의 문제는 두 가지였다.

첫째, 픽셀 재구성 오차가 계획 오차로 증폭된다. 고차원 이미지에서 모델이 각 픽셀을 맞추는 것과 실제로 유용한 제어를 위한 예측 사이엔 큰 간극이 있다. 둘째, **명시적 계획(planning)**을 사용하는 방법(CEM, MCTS)은 모든 행동 선택마다 다수의 가상 롤아웃을 반복해야 해 느리다.

Dreamer는 이 두 한계를 동시에 공략한다. 세계 모델을 잠재 공간에서 동작하게 만들어 픽셀 재구성 의존도를 줄이고, 명시적 계획 대신 역전파로 직접 정책을 최적화해 계획 비용을 제거했다.

배경지식과 핵심 키워드

배경지식과 핵심 키워드

RSSM (Recurrent State Space Model)
결정론적 GRU 상태 h_t와 확률론적 잠재 상태 s_t를 결합한 구조. h_t = f(h_{t-1}, s_{t-1}, a_{t-1}), s_t ~ Normal(μ_t, σ_t) where μ_t, σ_t = MLP(h_t).
결정론적 h_t는 과거 전체 히스토리를 기억하고, 확률론적 s_t는 환경의 불확실성을 표현한다. 둘 다 있어야 긴 지평선 예측이 가능하다.
Dreamer의 선행 연구인 PlaNet(arXiv:1811.04551)에서 계획 전용으로 도입됐다. Dreamer는 여기에 행동 학습(Actor-Critic)을 추가한다.
세계 모델 (World Model)
Dreamer의 세계 모델은 4개 구성 요소로 이뤄진다: 표현 모델 q(s_t|h_t, o_t), 전이 모델 p(s_t|h_t), 보상 모델 p(r_t|h_t, s_t), 종료 모델 p(γ_t|h_t, s_t).
훈련 손실: L = -log p(o_t|h_t, s_t) - log p(r_t|h_t, s_t) + β·KL[q(s_t|h_t, o_t) || p(s_t|h_t)]. β=1.
이미지 재구성은 잠재 상태 학습을 돕기 위한 보조 목적이다. 실제 행동 학습은 잠재 상태만 쓰므로 픽셀 품질이 완벽하지 않아도 된다.
잠재 공간 상상 (Latent Imagination)
현재 잠재 상태 s_t에서 전이 모델 p(s_{τ+1}|h_τ, s_τ)만으로 H=15 스텝의 가상 궤적을 생성한다. 실제 이미지 없이 잠재 공간에서만 롤아웃.
각 가상 상태에서 행동 모델(Actor)이 a_τ ~ π_φ(s_τ)를 출력하고, 보상 모델이 r_τ를 예측한다.
이 가상 궤적이 Actor와 Critic 모두의 학습 데이터다. 환경 상호작용 없이 세계 모델 안에서 수백만 번의 "연습"이 가능하다.
λ-return (가치 타깃)
상상 궤적에서 가치 타깃 V^λ_τ = r_τ + γ_τ[(1−λ)V_ψ(s_{τ+1}) + λV^λ_{τ+1}]로 계산한다. λ=0.95.
TD(0)(λ=0)과 Monte Carlo(λ=1) 사이를 조합한 GAE 계열의 타깃이다. H=15 상상 지평선 전체를 활용해 장기 보상을 반영한다.
Critic(가치 모델) V_ψ는 이 λ-return을 맞추도록 MSE 손실로 훈련된다. 부트스트래핑이 H 스텝을 넘어선 먼 미래까지 커버한다.
재파라미터화 그래디언트 (Reparameterized Gradients)
Actor가 연속 행동 공간에서 tanh 변환된 Gaussian 분포에서 샘플링한다: a = tanh(μ + σ·ε), ε ~ Normal(0, I).
이 재파라미터화(reparameterization trick) 덕분에 샘플링 연산이 미분 가능해져 Actor 파라미터로 역전파가 전달된다. REINFORCE의 고분산 없이 저분산 그래디언트를 얻는다.
이것이 Dreamer가 상상 궤적을 통해 Actor를 end-to-end로 역전파할 수 있는 핵심 기법이다.
PlaNet과의 차이
PlaNet(arXiv:1811.04551)은 RSSM으로 세계 모델을 학습하고 CEM(Cross-Entropy Method) 명시적 계획으로 행동을 선택했다. 행동 선택마다 수백 번의 시뮬레이션 롤아웃이 필요해 느리다.
Dreamer는 명시적 계획을 Actor 네트워크로 대체한다. 학습된 Actor는 상태를 입력받아 즉시 행동을 출력하므로 추론 속도가 O(1)이다.
이 차이가 결정적이다. Dreamer는 PlaNet 대비 성능 2.5배 향상, 연산 시간 약 3.7배 단축.
종료 모델 (Discount Model)
p(γ_t|h_t, s_t) — 현재 잠재 상태에서 에피소드가 종료될 확률을 예측한다. γ ∈ {0, 1} 이진 분류.
종료 모델 없이 상상 롤아웃을 하면 실제로 에피소드가 끝나는 상황에서도 계속 보상을 쌓는다. 특히 Hopper, Walker처럼 넘어지면 종료되는 태스크에서 중요하다.
Dreamer는 이 모델을 λ-return 계산 시 γ_τ = 1 − p(terminated|s_τ)로 사용해 종료 신호를 가치 추정에 반영한다.
DeepMind Control Suite
MuJoCo 물리 엔진 위에 구축된 연속 제어 벤치마크. Cartpole, Reacher, Cheetah, Walker, Hopper, Quadruped 등 20개 태스크. 입력은 64×64×3 이미지.
모든 태스크에서 픽셀만 보고 연속 행동(토크)을 제어해야 한다. 상태 기반 방법보다 훨씬 어렵다.
Dreamer는 이 20개 태스크 중 15개에서 D4PG(모델 프리 SOTA, 100M 스텝)를 5M 스텝만으로 능가했다.

핵심 인사이트

Dreamer의 핵심 기여는 "세계 모델 안에서의 역전파"다. 가상 궤적을 통해 전이 모델 → Actor 순서로 그래디언트가 흐르므로, Actor가 환경 상호작용 없이 상상만으로 수백만 번 업데이트된다. 이것이 샘플 효율을 20배 끌어올리는 근본 원인이다.

기존 방법의 한계

모델 프리 RL (SAC, D4PG, PPO): 환경과 직접 상호작용하며 학습해 샘플 효율이 낮다. D4PG는 DM Control Suite에서 100M 스텝을 써야 평균 786점을 달성한다. 실제 로봇에 적용하면 수백 시간의 실험이 필요하다.

픽셀 재구성 기반 세계 모델 (World Models, 2018): 이미지를 그대로 재구성하는 모델을 학습하면 고차원 픽셀 예측 오류가 계획에서 누적된다. 또 CMA-ES처럼 진화적 방법으로 정책을 학습해 샘플 효율이 낮다.

명시적 계획 (PlaNet, PETS, MBPO): RSSM으로 좋은 잠재 모델을 만들었지만 CEM 계획이 매 스텝 수백 번의 롤아웃을 요구한다. 실시간 제어에서 속도 문제가 있고, 깊은 지평선 계획이 어렵다.

Dyna 계열: 세계 모델로 가상 경험을 생성해 모델 프리 RL에 보강하는 방법이다. 하지만 가상 경험의 품질이 낮으면 오히려 학습이 불안정해진다.

Dreamer는 잠재 공간 상상 + 역전파 Actor-Critic으로 이 세 가지 한계를 동시에 해소한다.

제안 방법의 핵심 아이디어

Dreamer는 세 단계가 반복되는 루프로 동작한다:

Phase 1 — 세계 모델 학습:

리플레이 버퍼 B에서 길이 L 시퀀스 샘플
각 스텝 t에서:
  h_t = GRU(h_{t-1}, s_{t-1}, a_{t-1})          // 결정론적 상태
  s_t ~ Normal(μ_t, σ_t) = MLP_repr(h_t, o_t)   // 잠재 상태 (표현 모델)
  ŝ_t ~ Normal(μ̂_t, σ̂_t) = MLP_trans(h_t)       // 잠재 상태 (전이 모델)

손실: L_WM = -log p(o_t|h_t,s_t)               // 이미지 재구성
           - log p(r_t|h_t,s_t)               // 보상 예측
           + KL[q(s_t|h_t,o_t) || p(ŝ_t|h_t)] // KL 정규화

Phase 2 — 행동 학습 (잠재 공간 상상):

현재 잠재 상태 s_t에서 H=15 스텝 상상 롤아웃:
  for τ = t to t+H:
    a_τ = tanh(μ_φ(s_τ) + σ_φ(s_τ)·ε),  ε~N(0,I)   // Actor
    h_{τ+1} = GRU(h_τ, s_τ, a_τ)
    s_{τ+1} ~ p(·|h_{τ+1})                            // 전이 모델

λ-return: V^λ_τ = r_τ + γ_τ[(1−λ)V_ψ(s_{τ+1}) + λV^λ_{τ+1}]

Actor 손실:  L_π = -E[Σ_τ V^λ_τ]   // 역전파: ∂L/∂φ 전이모델 통과
Critic 손실: L_V = E[Σ_τ (V^λ_τ - V_ψ(s_τ))²]

Phase 3 — 환경 상호작용:

현재 obs → h_t, s_t = RSSM(h_{t-1}, s_{t-1}, a_{t-1}, o_t)
a_t = tanh(μ_φ(s_t))  // 학습된 Actor 사용
환경에 a_t 적용, (o_{t+1}, r_t) 관찰
궤적을 버퍼 B에 추가

논문 그림/표로 이해하기

Dreamer 전체 흐름: 세계 모델 학습, 잠재 공간 행동 학습, 환경 상호작용 3단계
원문 Figure 1: Dreamer 전체 파이프라인 — 세계 모델, 잠재 공간 행동 학습, 환경 상호작용. 출처: Hafner et al., "Dream to Control: Learning Behaviors by Latent Imagination", ICLR 2020. arXiv:1912.01603 — arXiv 라이선스 하에 인용.
Dreamer 세계 모델 학습, 잠재 공간 행동 학습, 환경 상호작용 컴포넌트 상세
원문 Figure 3: Dreamer 세 컴포넌트 상세 — (좌) 세계 모델 학습, (중) 잠재 상상 행동 학습, (우) 환경 상호작용. 출처: Hafner et al., ICLR 2020. arXiv:1912.01603 — arXiv 라이선스 하에 인용.

Figure 3이 이 논문에서 가장 중요한 그림이다. 왼쪽 패널은 실제 환경 데이터로 RSSM + 보상 모델을 학습하는 세계 모델 훈련 단계다. 가운데 패널은 세계 모델 안에서 H=15 가상 궤적을 상상하고 역전파로 Actor-Critic을 최적화하는 핵심 단계다. 실제 환경 없이 잠재 공간에서만 이뤄진다. 오른쪽 패널은 학습된 Actor로 실제 환경과 상호작용해 경험을 수집하는 단계다.

DM Control Suite 20개 태스크에서 Dreamer vs D4PG vs PlaNet vs A3C 성능 비교
원문 Figure 6: DM Control Suite 20개 태스크 평균 성능 비교. 출처: Hafner et al., ICLR 2020. arXiv:1912.01603 — arXiv 라이선스 하에 인용.

Figure 6에서 Dreamer(파란 선)가 5M 스텝 시점에서 이미 D4PG(주황, 100M 스텝 SOTA)의 최종 성능을 넘어섰다. PlaNet(초록)은 RSSM과 동일한 세계 모델을 쓰지만 CEM 계획을 사용해 Dreamer 대비 큰 폭으로 낮다. A3C(빨강)는 이미지 기반 모델 프리 방법으로 가장 낮은 성능을 보인다.

실험 설정과 결과 해석

DM Control Suite 결과 (5M env steps, 이미지 입력 64×64):

알고리즘 Env Steps 평균 점수 (20태스크) 학습 시간/1M 스텝
A3C (이미지) 50M ~102
PlaNet (RSSM+CEM) 50M 332 11시간
D4PG (모델 프리 SOTA) 100M 786 24시간
✦ Dreamer 5M 823 3시간
논문 Table 1 재구성. Dreamer는 D4PG 대비 20배 적은 환경 상호작용, 8배 빠른 벽시계 시간으로 더 높은 점수 달성.

상상 지평선(H) ablation: H=5에서 H=15로 늘릴수록 성능이 뚜렷이 향상된다. H=1(TD처럼 1스텝만 상상)은 성능이 크게 떨어진다. 15 스텝의 잠재 공간 롤아웃이 장기 크레딧 할당에 중요하다는 것을 보여준다.

표현 학습 방법 ablation (Figure 8): 이미지 재구성 vs 대조 학습 vs 보상 예측만. 이미지 재구성이 가장 좋은 잠재 표현을 학습하는 것으로 나타났다. 재구성 손실이 잠재 상태에 관찰의 세부 정보를 충분히 담도록 강제하기 때문이다.

핵심 인사이트

Dreamer의 숫자를 다시 보면: D4PG 100M 스텝(786점)을 Dreamer 5M 스텝(823점)으로 넘었다. 환경 상호작용 횟수 기준 20배 효율 차이다. 잠재 공간 상상에서 역전파로 학습하는 것이 왜 샘플 효율을 이토록 끌어올리는가 — 세계 모델 안에서 1M 번의 가상 업데이트가 실제 환경 1000번과 동등한 효과를 낼 수 있기 때문이다.

한계와 비판적 관점

1. 이산 행동 공간 미지원: Dreamer 원본은 연속 행동 공간(MuJoCo)에 특화됐다. Atari처럼 이산 행동이 필요한 환경에는 직접 적용이 어렵다. DreamerV2(2020)에서야 Atari를 추가했다.

2. 세계 모델 오차 누적: 잠재 상태로 H=15 스텝을 상상하면 전이 모델의 작은 오차가 쌓인다. 물리가 복잡하거나 접촉이 많은 환경(로봇 조작)에서는 가상 롤아웃이 실제와 크게 달라질 수 있다.

3. 픽셀 재구성의 무거운 계산: 이미지를 재구성하는 CNN 디코더를 학습하는 것 자체가 계산 비용이 크다. 재구성 품질이 행동 학습 성능에 직결되지 않음에도 학습해야 한다. DreamerV2에서 재구성 없이 대조 손실로 대체하는 실험이 이어진다.

4. 하이퍼파라미터 민감성: KL 균형 β, 상상 지평선 H, λ-return λ, 학습률 등 세계 모델과 Actor-Critic을 동시에 안정적으로 학습시키는 조합이 까다롭다.

5. 복잡한 환경 일반화: DM Control Suite는 물리가 비교적 단순하고 보상이 조밀하다. 희소 보상이나 다중 물체 조작 같은 복잡한 환경에서는 세계 모델 학습 자체가 어렵다.

구현하거나 응용한다면 무엇을 봐야 하나?

오픈소스 구현:

  • danijar/dreamer (GitHub): 논문 저자의 공식 TensorFlow 구현. DM Control Suite 재현에 최적.
  • DreamerV3 (2023): 저자가 최신 업그레이드한 버전. Atari, Minecraft, 로보틱스를 단일 하이퍼파라미터로 커버하며 가장 안정적이다.
  • dreamer-pytorch: 커뮤니티 PyTorch 포팅 버전. 코드 이해에 좋다.

핵심 구현 포인트:

  1. KL 균형(Free Bits): KL 손실에 free_bits = 1.0 같은 하한을 두면 KL이 너무 작아져 정보가 없는 잠재 상태로 수렴하는 것을 방지한다. KL ≥ free_bits가 되도록 KL 손실을 클리핑.
  2. 수치 안정성 (tanh 변환 Gaussian): Actor의 tanh 변환 로그 확률 계산에서 수치 오류가 자주 발생한다. log_prob = Normal.log_prob(arctanh(a)) - log(1-a²+ε) 형태로 조심스럽게 구현해야 한다.
  3. 세계 모델과 Actor-Critic 분리 학습: 세계 모델 파라미터와 Actor-Critic 파라미터의 옵티마이저를 분리하고, 세계 모델 역전파가 Actor 학습에 영향을 주지 않도록 .detach()를 사용해야 한다.
  4. 리플레이 버퍼 크기: 논문은 50M 스텝까지 버퍼를 유지한다. 메모리 제약이 있으면 최근 N 에피소드만 유지하는 크기 제한 큐를 쓴다.

실용 팁: DreamerV3를 바로 쓰는 것이 현재 가장 실용적이다. 단일 하이퍼파라미터 세트가 다양한 환경에서 안정적으로 작동해 새 환경 적용 비용이 낮다.

한 줄 결론과 다음에 읽을 논문

한 줄 결론: Dreamer는 RSSM 세계 모델 안에서 가상 궤적을 상상하고 역전파로 Actor-Critic을 직접 최적화해, D4PG 대비 20배 적은 환경 상호작용으로 더 높은 성능을 달성했다.

다음에 읽을 논문:

  • DreamerV2 (2020): 이산 잠재 상태(categorical)와 KL 균형 개선으로 Atari까지 확장. DQN의 영역을 세계 모델 RL이 침범하기 시작한다.
  • DreamerV3 (2023): 단일 하이퍼파라미터로 Atari, DM Control, Minecraft, 로보틱스 모두 커버. 현재 범용 세계 모델 RL의 최전선.
  • PlaNet (arXiv:1811.04551): Dreamer의 직접 선행. RSSM과 CEM 계획 원본. Dreamer와 비교하며 읽으면 "계획 vs 역전파" 차이가 명확해진다.

참고 자료:

반응형
Comments