← all posts
AI 2026.05.03 · 12 min read Advanced

Rainbow DQN의 다섯 가지 개선은 왜 함께 작동하는가

Dueling Network의 분해부터 Noisy Net의 암묵적 탐험까지, Rainbow를 구성하는 다섯 요소가 공유하는 설계 철학과 그 수학적 근거를 추적한다.


Rainbow(Hessel 2018)는 DQN 위에 여섯 가지 독립적인 개선을 쌓아 Atari 57게임에서 인간 수준을 뛰어넘었다. 그런데 이 개선들은 각자 별개의 논문에서 나왔음에도 함께 쌓였을 때 단순 합산보다 더 잘 작동한다. 왜 그런가? 그리고 이 요소들이 공유하는 설계 원칙은 무엇인가?

Q-value를 쪼갠다 — Dueling Network

DQN은 Q(s,a)Q(s, a)를 end-to-end로 학습한다. 이 방식의 낭비는, 어떤 state에서는 모든 action의 Q값이 높거나 낮아서 “이 상황이 좋다/나쁘다”는 정보가 action-specific 학습에 묻힌다는 것이다.

Dueling Network(Wang 2016)는 Q를 두 갈래로 분해한다.

Q(s,a; θ)=V(s; w)+A(s,a; w)−1∣A∣∑a′A(s,a′; w)Q(s, a;\,\theta) = V(s;\,w) + A(s, a;\,w) - \frac{1}{|\mathcal{A}|}\sum_{a'} A(s, a';\,w)

V(s)V(s)는 state의 본질적 가치, A(s,a)A(s,a)는 그 state에서 해당 action이 평균보다 얼마나 나은지를 나타낸다. 공유 hidden layer의 gradient가 모든 action에 동시에 흘러들어, VV의 학습이 ∣A∣|\mathcal{A}|배 강해진다.

여기서 mean subtraction이 핵심이다. Q=V+AQ = V + A만으로는 (V+c,A−c)(V+c, A-c)처럼 무한히 많은 분해가 존재해 네트워크가 하나의 표현으로 수렴할 이유가 없다. Mean subtraction은 ∑aA(s,a)=0\sum_a A(s,a) = 0을 강제해 표현을 유일하게 만든다.

명제 1 · Dueling Decomposition의 유일성

Mean-centered constraint ∑aA(s,a)=0\sum_a A(s,a) = 0을 만족하는 (V(s),A(s,a))(V(s), A(s,a))는 QQ로부터 유일하게 복구된다.

V(s)=1∣A∣∑aQ(s,a),A(s,a)=Q(s,a)−V(s)V(s) = \frac{1}{|\mathcal{A}|}\sum_a Q(s, a), \quad A(s,a) = Q(s,a) - V(s)

▷ 증명

(V′,A′)(V', A')가 또 다른 identifiable 분해라면, V′(s)=1∣A∣∑aQ(s,a)=V(s)V'(s) = \frac{1}{|\mathcal{A}|}\sum_a Q(s,a) = V(s)이고 따라서 A′(s,a)=Q(s,a)−V′(s)=A(s,a)A'(s,a) = Q(s,a) - V'(s) = A(s,a). 유일성 성립. □\square

∎

중요한 경험을 더 자주 본다 — Prioritized Experience Replay

표준 DQN의 experience replay는 모든 transition을 1/N1/N의 동일한 확률로 샘플링한다. TD error ∣δi∣|\delta_i|가 작은, 이미 잘 학습된 sample도 high-error sample과 같은 빈도로 불린다.

PER(Schaul 2016)은 priority를 TD error에 비례하게 설정한다.

pi=(∣δi∣+ϵ)α∑j(∣δj∣+ϵ)αp_i = \frac{(|\delta_i| + \epsilon)^\alpha}{\sum_j (|\delta_j| + \epsilon)^\alpha}

α\alpha는 prioritization 강도이고, ϵ\epsilon은 zero-division 방지를 위한 작은 상수다. 그런데 priority sampling은 gradient의 기대값을 uniform sampling과 다르게 만든다 — biased estimator다. 이를 보정하기 위해 Importance Sampling(IS) weight를 곱한다.

wi=(1N⋅pi)βw_i = \left(\frac{1}{N \cdot p_i}\right)^\beta

β=1\beta = 1이면 완전히 unbiased로 복구된다. 학습 초기에는 β\beta를 작게 두어 variance를 낮추고, 학습이 진행될수록 β→1\beta \to 1로 annealing한다. 모델이 부정확할 때는 bias가 오히려 variance를 억제하고, 모델이 수렴하면 unbiasedness가 중요해지기 때문이다.

✎ 트레이드오프

β\beta가 클수록 unbiased하지만 IS weight의 분산이 커진다. wmax⁡/wmin⁡w_{\max}/w_{\min}이 수백 배에 달할 수 있어 gradient를 불안정하게 만들 수 있다. Rainbow에서는 max-normalization(w_i / max(w))으로 weight를 [0, 1]로 클리핑한다.

실제 reward를 더 많이 쓴다 — Multi-Step Returns

1-step TD는 매 step마다 bootstrapped value에 의존한다. 이 추정이 틀리면 오류가 매 step마다 누적된다.

Gt(n)=∑l=0n−1γlrt+l+γnV^(st+n)G_t^{(n)} = \sum_{l=0}^{n-1} \gamma^l r_{t+l} + \gamma^n \hat{V}(s_{t+n})

nn을 늘리면 실제 reward를 더 많이 사용하게 되어 bootstrapping 의존도가 줄고, 분산이 감소한다. 대신 st+ns_{t+n}에서의 value 추정 오류가 전파될 수 있어 bias가 생긴다. 이 bias-variance tradeoff의 균형점이 Atari 환경에서는 경험적으로 n∈[3,5]n \in [3, 5] 근방이다.

Var(G(n))=σr2⋅1−γ2n1−γ2+γ2nσV2\text{Var}(G^{(n)}) = \sigma_r^2 \cdot \frac{1 - \gamma^{2n}}{1 - \gamma^2} + \gamma^{2n} \sigma_V^2

nn이 커지면 reward 항은 늘어나지만 γ2n\gamma^{2n}이 VV 항을 감쇄한다. 최적 nn에서 둘의 합이 최소가 된다.

탐험을 학습한다 — Noisy Networks

ϵ\epsilon-greedy는 모든 state에서 동일한 확률로 random action을 취한다. 이미 잘 알려진 state에서도, 불확실한 state에서도 똑같이 탐험한다는 뜻이다.

Noisy Net(Fortunato 2018)은 탐험을 weight의 확률성으로 구현한다.

W=μ+σ⊙ϵ,ϵ∼N(0,I)W = \mu + \sigma \odot \epsilon, \quad \epsilon \sim \mathcal{N}(0, I)

μ\mu는 standard network의 weight, σ\sigma는 탐험의 강도, ϵ\epsilon은 매 forward pass마다 재샘플링된다. 핵심은 σ\sigma도 gradient로 학습된다는 것이다 — 불확실한 state에서는 gradient variance가 커서 σ\sigma가 자동으로 늘어나고, 잘 알려진 state에서는 줄어든다.

계산 효율을 위해 Factorized Gaussian noise를 쓴다. Full rank noise ϵ∈Rm×n\epsilon \in \mathbb{R}^{m \times n}은 mnmn개의 샘플이 필요하지만, ϵij=ϵix⋅ϵjy\epsilon_{ij} = \epsilon_i^x \cdot \epsilon_j^y로 factorize하면 m+nm + n개로 충분하다.

함께 쌓으면 무엇이 달라지는가

Hessel 2018의 ablation에서 각 요소의 단독 기여도는 다음과 같다(Atari 57게임 human-normalized score 기준):

  • Multi-step, Distributional: 각 +8~10%
  • PER: +6%
  • Dueling: +3~4%
  • Noisy Net: +2~3%
  • Double DQN: +1~2%

단순 합산이면 약 +22~27%이지만 실제 Rainbow는 +40% 이상이다. Synergy가 있다.

PER과 Dueling의 결합이 대표적이다. PER이 high-error sample을 자주 불러오면, Dueling의 VV head가 그 오류를 모든 action에 공유하며 빠르게 수정한다. Multi-step과 Distributional도 서로를 강화한다 — n-step return이 더 풍부한 target 정보를 제공하면, 분포 추정의 정확도가 함께 올라간다.

⚠ 트레이드오프

이 요소들은 각자 hyperparameter를 가진다(α,β,n,σinit\alpha, \beta, n, \sigma_{\text{init}} 등). 조합하면 민감도가 곱해진다. Rainbow의 hyperparameter는 Atari에 맞게 조정된 것이므로, 새로운 환경에서는 재조정이 필요하다. 특히 nn이 너무 크면 off-policy bias가 커지고, β\beta annealing이 너무 빠르면 초기 학습이 불안정해진다.

정리

  • Dueling은 Q=V+AQ = V + A로 분해해 state-value 학습을 모든 action에 공유한다. Mean subtraction이 표현의 유일성을 보장한다.
  • PER은 TD error 기반 priority sampling으로 informative sample에 집중하고, IS weight로 bias를 보정한다.
  • Multi-step return은 실제 reward를 더 많이 사용해 bootstrapping 오류를 줄이며, 최적 nn은 bias-variance tradeoff에서 결정된다.
  • Noisy Net은 weight의 확률성으로 state-dependent exploration을 자동화하며, σ\sigma가 gradient로 학습된다.
  • 이 네 요소는 독립적인 동기에서 나왔지만, 모두 gradient signal의 품질 향상이라는 원칙을 공유하기 때문에 결합했을 때 synergy가 발생한다.
REF
Schaul et al. · 2016 · Prioritized Experience Replay · ICLR