검색
← 모듈 로드맵

듀얼링 네트워크 구조 (Dueling DQN)

논문 · 준전문가 · Ziyu Wang 외 5명 · 2015 · arXiv

원제 · Dueling Network Architectures for Deep Reinforcement Learning

Q-네트워크를 상태 가치와 어드밴티지 두 갈래로 나눈 듀얼링 구조 — 구조만 바꿔 성능 향상

먼저 알아야 할 것

상태 가치와 행동 가치 함수DQN과 Double DQN합성곱 신경망어드밴티지 개념

다루는 내용

Q-네트워크의 뒷부분을 상태 가치 V를 내는 흐름과 행동별 어드밴티지 A를 내는 흐름으로 나누고, 평균 어드밴티지를 빼서 합치는 듀얼링 구조를 제안합니다. 알고리즘은 바꾸지 않아 Double DQN · 우선순위 재생과 그대로 결합되며, 가치 흐름이 모든 갱신에서 함께 배워 비슷한 행동이 많을수록 유리합니다. 아타리 57개 게임에서 우선순위 재생과 결합해 사람 대비 평균 591.9% · 중앙값 172.1%로 당시 최고 성적을 냈습니다.

초록

저자가 쓴 초록을 옮긴 것입니다.

최근 몇 년 동안 강화학습에서 심층 표현을 활용한 성공 사례가 많았습니다. 그러나 이런 응용의 상당수는 합성곱 신경망, LSTM, 오토인코더 같은 기존 구조를 그대로 씁니다. 이 논문에서는 모델 없는(model-free) 강화학습을 위한 새로운 신경망 구조를 제시합니다. 듀얼링 네트워크는 두 개의 분리된 추정기를 나타냅니다. 하나는 상태 가치 함수이고, 다른 하나는 상태에 따라 달라지는 행동 어드밴티지 함수입니다. 이렇게 나누는 것의 주된 이점은, 바탕이 되는 강화학습 알고리즘을 전혀 바꾸지 않고도 행동들 사이에서 학습을 일반화할 수 있다는 것입니다. 실험 결과, 이 구조는 가치가 비슷한 행동이 많을 때 더 나은 정책 평가로 이어집니다. 또한 듀얼링 구조 덕분에 강화학습 에이전트가 아타리 2600 분야에서 기존 최고 성능을 넘어섭니다.

해설

듀얼링 네트워크 구조 (Dueling DQN)

Q-네트워크의 뒷부분을 "이 상태가 얼마나 좋은가(가치)"와 "그중 이 행동이 얼마나 더 좋은가(어드밴티지)" 두 갈래로 나눈 신경망 구조입니다. 알고리즘은 그대로 두고 구조만 바꿔, 비슷한 행동이 많은 상황에서 더 빨리 배우고 아타리 57개 게임에서 당시 최고 성적을 냈습니다.

항목내용
원제Dueling Network Architectures for Deep Reinforcement Learning
저자Ziyu Wang · Tom Schaul · Matteo Hessel · Hado van Hasselt · Marc Lanctot · Nando de Freitas (Google DeepMind)
발표2015 · arXiv 1511.06581
트랙 · 수준강화학습 · 중급
먼저 알면 좋은 것Q 함수와 상태 가치 함수 VV, DQN, Double DQN, 합성곱 신경망

들어가기 전에

이 해설은 아래 내용을 안다고 보고 씁니다. 처음이라면 먼저 읽고 오면 수식과 손계산을 훨씬 쉽게 따라올 수 있습니다.

한눈에 보기

  • 행동 가치 QQ를 상태 가치 VV와 어드밴티지 AA의 합으로 나누는 생각과, 그 직관을 이해합니다.
  • 그냥 V+AV + A로 더하면 왜 안 되는지(식별 불가능성), 평균을 빼는 결합 방식이 왜 쓰이는지 손계산으로 확인합니다.
  • 이 구조가 DQN · Double DQN · 우선순위 재생 같은 기존 알고리즘에 그대로 끼워진다는 점을 압니다.
  • 57개 게임 결과와, 행동 수가 많을수록 이득이 커진다는 실험 결과를 압니다.

초록 (번역)

최근 몇 년 동안 강화학습에서 심층 표현을 활용한 성공 사례가 많았습니다. 그러나 이런 응용의 상당수는 합성곱 신경망, LSTM, 오토인코더 같은 기존 구조를 그대로 씁니다. 이 논문에서는 모델 없는(model-free) 강화학습을 위한 새로운 신경망 구조를 제시합니다. 듀얼링 네트워크는 두 개의 분리된 추정기를 나타냅니다. 하나는 상태 가치 함수이고, 다른 하나는 상태에 따라 달라지는 행동 어드밴티지 함수입니다. 이렇게 나누는 것의 주된 이점은, 바탕이 되는 강화학습 알고리즘을 전혀 바꾸지 않고도 행동들 사이에서 학습을 일반화할 수 있다는 것입니다. 실험 결과, 이 구조는 가치가 비슷한 행동이 많을 때 더 나은 정책 평가로 이어집니다. 또한 듀얼링 구조 덕분에 강화학습 에이전트가 아타리 2600 분야에서 기존 최고 성능을 넘어섭니다.

무엇을 풀었나

당시 딥 강화학습 연구는 대부분 알고리즘을 고치는 데 집중했습니다(Double DQN, 우선순위 재생 등). 신경망은 합성곱 신경망 · MLP · LSTM 같은 표준 구조를 그대로 가져다 썼습니다.

그런데 강화학습에는 표준 구조가 잘 다루지 못하는 특성이 있습니다. 많은 상태에서는 어떤 행동을 하든 결과가 거의 같습니다. 논문의 예는 자동차 경주 게임 엔듀로입니다. 앞에 차가 없을 때는 왼쪽이든 오른쪽이든 상관이 없고, 충돌이 임박했을 때만 행동 선택이 중요합니다.

단일 흐름 Q-네트워크는 이런 상태에서도 행동마다 값을 따로따로 배워야 합니다. 게다가 한 번의 갱신에서는 실제로 한 행동의 출력만 고쳐집니다. 상태 자체의 좋고 나쁨이라는 공통 정보를 행동들끼리 나눠 쓰지 못하는 셈입니다.

이 논문은 알고리즘이 아니라 신경망 구조를 바꿔 이 문제를 풉니다. 출력은 여전히 행동별 Q값이라, 기존 알고리즘에 그대로 끼울 수 있습니다.

핵심 아이디어

mermaid
flowchart LR
  A[최근 프레임 입력] --> B[공통 합성곱 3층]
  B --> C[가치 흐름: 완전연결 512 → V s 1개]
  B --> D[어드밴티지 흐름: 완전연결 512 → A s,a 행동 수만큼]
  C --> E[결합: Q = V + A − 평균 A]
  D --> E
  E --> F[행동별 Q값 → Double DQN 등으로 학습]

1. 가치와 어드밴티지로 나누기

직관: 식당을 고를 때 "이 동네 식당은 대체로 맛있다(가치)"와 "그중 이 메뉴가 평균보다 얼마나 나은가(어드밴티지)"는 따로 판단할 수 있습니다. 동네 수준은 메뉴를 하나만 먹어 봐도 알 수 있습니다.

단계:

  1. 상태 가치 Vπ(s)V^\pi(s)는 "이 상태에 있는 것 자체가 얼마나 좋은가"입니다.
  2. 행동 가치 Qπ(s,a)Q^\pi(s,a)는 "이 상태에서 행동 aa를 하면 얼마나 좋은가"입니다.
  3. 둘의 차이가 어드밴티지 Aπ(s,a)A^\pi(s,a), 즉 "평균보다 이 행동이 얼마나 더 나은가"입니다.
Aπ(s,a)=Qπ(s,a)−Vπ(s),Ea∼π(s)[Aπ(s,a)]=0A^\pi(s, a) = Q^\pi(s, a) - V^\pi(s), \qquad \mathbb{E}_{a \sim \pi(s)}\big[A^\pi(s, a)\big] = 0
기호뜻
Vπ(s)V^\pi(s)정책 π\pi를 따를 때 상태 ss의 기대 할인 보상
Qπ(s,a)Q^\pi(s, a)상태 ss에서 aa를 하고 이후 π\pi를 따를 때의 기대 할인 보상
Aπ(s,a)A^\pi(s, a)행동 aa의 상대적 중요도. 정책으로 평균 내면 0

결정론적 최적 정책 a∗=arg⁡max⁡a′Q∗(s,a′)a^* = \arg\max_{a'} Q^*(s, a')에서는 Q∗(s,a∗)=V∗(s)Q^*(s, a^*) = V^*(s), 즉 A∗(s,a∗)=0A^*(s, a^*) = 0입니다.

왜 나누나: 가치 흐름은 모든 갱신에서 고쳐집니다. 단일 흐름 구조에서는 한 행동의 값만 바뀌고 나머지는 그대로지만, 듀얼링 구조에서는 어떤 행동으로 갱신하든 공통의 VV가 함께 배웁니다. 상태 가치는 부트스트래핑 방법(Q-러닝 등)에서 모든 상태에 대해 정확해야 하므로, 여기에 학습 자원을 더 쓰는 것이 유리합니다.

논문은 또 하나의 이유를 듭니다. 같은 상태의 Q값들끼리의 차이는 Q값 크기에 비해 아주 작은 경우가 많습니다. 시퀘스트에서 DDQN으로 학습한 뒤, 방문한 상태들의 평균 '행동 간격'(최선과 차선 행동의 Q값 차이)은 약 0.04였는데 평균 상태 가치는 약 15였습니다. 이런 상황에서는 작은 잡음에도 행동 순위가 뒤집혀 정책이 갑자기 바뀔 수 있는데, 어드밴티지를 따로 두면 이런 영향에 강합니다.

2. 두 흐름을 어떻게 합칠까: 식별 문제

직관: "총점 10점 = 기본점 + 가산점"이라고만 알려 주면, 기본점 7 + 가산점 3인지 기본점 9 + 가산점 1인지 알 수 없습니다. 둘 중 하나를 고정하는 규칙이 필요합니다.

가장 단순한 결합은 그냥 더하기입니다.

Q(s,a;θ,α,β)=V(s;θ,β)+A(s,a;θ,α)Q(s, a; \theta, \alpha, \beta) = V(s; \theta, \beta) + A(s, a; \theta, \alpha)
기호뜻
θ\theta공통 합성곱 층의 파라미터
β\beta가치 흐름(완전연결 층)의 파라미터
α\alpha어드밴티지 흐름의 파라미터

문제: VV에 상수 cc를 더하고 AA에서 cc를 빼도 QQ는 같습니다. QQ만 보고는 VV와 AA를 하나로 정할 수 없습니다(식별 불가능, unidentifiable). 논문은 이 식을 그대로 쓰면 실제 성능도 나빴다고 보고합니다.

해결 1 — 최댓값 빼기: 고른 행동의 어드밴티지가 0이 되도록 강제합니다.

Q(s,a)=V(s)+(A(s,a)−max⁡a′A(s,a′))Q(s, a) = V(s) + \Big(A(s, a) - \max_{a'} A(s, a')\Big)

이러면 최선 행동에서 Q=VQ = V가 되어, VV는 상태 가치의 추정, AA는 어드밴티지의 추정이라는 뜻이 살아납니다.

해결 2 — 평균 빼기(논문이 실제로 쓴 방식):

Q(s,a;θ,α,β)=V(s;θ,β)+(A(s,a;θ,α)−1∣A∣∑a′A(s,a′;θ,α))Q(s, a; \theta, \alpha, \beta) = V(s; \theta, \beta) + \Big(A(s, a; \theta, \alpha) - \frac{1}{|\mathcal{A}|}\sum_{a'} A(s, a'; \theta, \alpha)\Big)
  • ∣A∣|\mathcal{A}|: 행동 수
  • 왜 평균인가: VV와 AA의 원래 의미가 상수만큼 어긋나는 대신, 최적화가 더 안정적입니다. 최댓값 방식에서는 최선 행동의 어드밴티지가 바뀔 때마다 나머지가 그 변화를 다 따라잡아야 하지만, 평균 방식에서는 평균이 변하는 만큼만 따라가면 됩니다. 소프트맥스 변형도 시험했지만 평균 방식과 결과가 비슷해, 모든 실험에 평균 방식을 썼습니다.
  • 평균을 빼도 AA(따라서 QQ)의 순위는 바뀌지 않으므로, 행동을 고를 때는 어드밴티지 흐름만 봐도 됩니다.
  • 이 결합은 신경망의 한 층으로 구현되며, 따로 감독 신호를 주지 않아도 역전파만으로 VV와 AA가 저절로 나뉘어 학습됩니다.

숫자로 해 보기(해설용 예): 행동 3개, 가치 흐름 출력 V=5V = 5, 어드밴티지 흐름 출력 A=[2, 0, 1]A = [2,\ 0,\ 1]이라 합시다.

  • 그냥 더하기: Q=[7, 5, 6]Q = [7,\ 5,\ 6]. 그런데 V=6V=6, A=[1,−1,0]A=[1, -1, 0]이어도 똑같이 [7,5,6][7, 5, 6]입니다. 어느 쪽이 '진짜' VV인지 정해지지 않습니다.
  • 평균 빼기: AA의 평균은 1이므로 A−1=[1, −1, 0]A - 1 = [1,\ -1,\ 0], Q=[6, 4, 5]Q = [6,\ 4,\ 5]. 이제 AA에 무엇을 더해도 평균을 빼면 같은 값이 되므로, VV가 QQ의 평균(=5)으로 고정됩니다.
  • 최댓값 빼기: A−2=[0, −2, −1]A - 2 = [0,\ -2,\ -1], Q=[5, 3, 4]Q = [5,\ 3,\ 4]. 최선 행동의 QQ가 VV와 같아집니다.
  • 어느 방식이든 행동 순위(1번 > 3번 > 2번)는 같습니다.

3. 구조와 학습 설정

  • 신경망: 아래쪽은 DQN과 같은 합성곱 3층(8×8 필터 32개 보폭 4, 4×4 필터 64개 보폭 2, 3×3 필터 64개 보폭 1). 그 뒤 두 흐름으로 갈라져 각각 완전연결 512 유닛, 가치 흐름은 출력 1개, 어드밴티지 흐름은 행동 수만큼(ALE에서 3~18개) 출력합니다. 모든 층 사이에 ReLU.
  • 알고리즘: Double DQN(DDQN)으로 학습합니다. 구조만 바꿨기 때문에 SARSA 등 다른 Q-네트워크 알고리즘에도 쓸 수 있습니다.
  • 안정화 요령: 두 흐름이 모두 마지막 합성곱 층으로 기울기를 보내므로, 그 층에 들어가는 합친 기울기를 1/21/\sqrt{2}로 줄였습니다. 기울기 노름은 10 이하로 잘랐습니다(딥 강화학습에서는 흔치 않고 순환 신경망 학습에서 흔한 요령).
  • 공정한 비교: 구조 효과만 분리하려고, 같은 절차(기울기 자르기 포함)에 첫 완전연결 층을 1,024 유닛으로 키워 파라미터 수를 비슷하게 맞춘 단일 흐름 DDQN('Single Clip')을 다시 학습해 비교했습니다.

결과

정책 평가 실험: 복도 환경

정확한 Q값을 계산할 수 있는 간단한 '복도' 환경(세로 구간 2개 각 10상태, 가로 구간 50상태)에서 고정된 ε-탐욕 정책(ϵ=0.001\epsilon = 0.001)의 Q값을 TD 학습으로 추정했습니다. 행동은 위 · 아래 · 왼쪽 · 오른쪽 · 정지 5개이고, 아무것도 안 하는 행동을 더해 10개 · 20개 변형도 만들었습니다. 단일 흐름은 은닉층 50 유닛 3층 MLP, 듀얼링은 50 유닛 층 뒤에 25 유닛 2층짜리 두 흐름입니다.

  • 행동 5개에서는 두 구조의 수렴 속도가 비슷했습니다.
  • 행동이 10개, 20개로 늘수록 듀얼링이 진짜 Q값에 대한 제곱 오차를 더 빨리 줄였고, 그 차이는 행동 수가 많을수록 커졌습니다.

아타리 57개 게임

30번 이하의 no-op로 시작점을 바꾼 평가와, 사람 전문가 궤적에서 뽑은 100개 시작점(최대 108,000프레임)에서 시작하는 평가를 했습니다. 아래는 사람 점수 대비 백분율(논문 표 1을 요약)입니다.

에이전트no-op 평균no-op 중앙값사람 시작 평균사람 시작 중앙값
우선순위 + 듀얼링 (Prior. Duel Clip)591.9%172.1%567.0%115.3%
우선순위 단일 흐름 (Prior. Single)434.6%123.7%386.7%112.9%
듀얼링 (Duel Clip)373.1%151.5%343.8%117.1%
단일 흐름 + 기울기 자르기 (Single Clip)341.2%132.6%302.8%114.1%
단일 흐름 DDQN (Single)307.3%117.8%332.9%110.9%
Nature DQN227.9%79.1%219.6%68.5%
  • no-op 평가: 듀얼링은 비슷한 용량의 Single Clip보다 57개 중 43개(75.4%), 원래 Single보다 46개(80.7%) 게임에서 나았습니다. 행동이 18개인 게임 30개 중에서는 26개(86.6%)에서 나아, 복도 실험의 "행동이 많을수록 유리"와 맞았습니다. 듀얼링 에이전트는 57개 중 42개 게임에서 사람 수준에 도달했습니다.
  • 사람 시작점 평가: Single보다 40개(70.2%) 게임에서 나았고, 18개 행동 게임에서는 30개 중 25개(83.3%)에서 나았습니다.
  • Single Clip > Single의 차이는 대부분 기울기 자르기 덕분이었다고 확인해, 이후 모든 새 방법에 기울기 자르기를 넣었습니다.
  • 우선순위 재생과 결합: 순위 기반 우선순위 재생(우선순위 지수 0.7, 중요도 샘플링 지수를 0.5에서 1로 늘림)과 합치고, 9개 게임에서 학습률(6.25×10⁻⁵)과 기울기 자르기 노름(10)을 대략 다시 맞췄습니다. 이 조합이 당시 아타리 최고 기록이 됐습니다.
  • 개선율 지표: 게임별 개선을 볼 때는 에이전트 점수−기준 점수max⁡(사람 점수,기준 점수)−무작위 점수\frac{\text{에이전트 점수} - \text{기준 점수}}{\max(\text{사람 점수}, \text{기준 점수}) - \text{무작위 점수}}를 썼습니다. 둘 다 못하는 게임에서 "1% → 2%"가 두 배 개선처럼 부풀려 보이는 것을 막기 위해서입니다.
  • 돌출 맵(saliency map): 엔듀로에서 가치 흐름은 새 차가 나타나는 지평선과 점수에 주목했고, 어드밴티지 흐름은 바로 앞에 차가 있을 때만 그 차에 주목했습니다.

왜 중요한가 · 이후 영향

  • "구조도 알고리즘만큼 중요하다": 알고리즘은 그대로 두고 신경망 구조만 바꿔 큰 개선을 얻었습니다. 그래서 다른 개선과 자유롭게 겹쳐 쓸 수 있습니다.
  • Rainbow의 구성 요소: Rainbow가 합친 여섯 가지 개선 가운데 하나입니다.
  • 어드밴티지라는 개념의 보편화: 어드밴티지 함수는 정책 경사 쪽에서도 핵심 개념입니다(분산을 줄이는 기준값). GAE · PPO에서 다시 만납니다. 논문도 Schulman 외(2015)의 온라인 어드밴티지 추정을 관련 연구로 듭니다.
  • 역사적 뿌리: 가치와 어드밴티지를 따로 두는 생각은 Baird(1993)의 어드밴티지 갱신(advantage updating)까지 거슬러 갑니다. 차이는, 이 논문은 표현(신경망)과 알고리즘을 분리해 어떤 알고리즘과도 쓸 수 있게 했다는 점입니다.

한계 · 주의할 점

  • 평균 빼기의 대가: 실제로 쓴 평균 방식에서는 VV와 AA가 진짜 상태 가치 · 어드밴티지와 상수만큼 어긋납니다. VV 출력을 그대로 상태 가치로 해석하면 안 됩니다.
  • 행동이 적으면 이득이 작습니다. 복도 실험에서 행동 5개일 때는 차이가 거의 없었습니다.
  • 여러 요령이 함께 들어갔습니다. 기울기 자르기, 학습률 조정, 기울기 재조정(1/21/\sqrt{2})이 같이 쓰였습니다. 논문은 Single Clip으로 구조 효과를 분리하려 했지만, 우선순위 재생과의 조합에서는 학습률 · 자르기 노름을 다시 맞췄습니다.
  • 일부 게임에서는 오히려 나빠졌습니다. 게임별 개선 그래프에는 음수 막대(단일 흐름보다 못한 게임)도 있습니다.
  • 이산 행동 전용입니다. 행동마다 출력 칸을 두는 구조라 연속 행동 공간에는 그대로 쓸 수 없습니다.

이어서 읽을 것

용어 정리

용어쉬운 뜻
상태 가치 V(s)V(s)이 상태에 있는 것 자체가 얼마나 좋은지
행동 가치 Q(s,a)Q(s,a)이 상태에서 이 행동을 했을 때 얼마나 좋은지
어드밴티지 A(s,a)A(s,a)이 행동이 이 상태의 평균보다 얼마나 더 좋은지(Q−VQ - V)
흐름(stream)신경망에서 갈라진 한 갈래의 층들
식별 불가능(unidentifiable)결과만 보고는 구성 요소를 하나로 정할 수 없는 상태
행동 간격(action gap)최선 행동과 차선 행동의 Q값 차이
기울기 자르기(gradient clipping)기울기 벡터의 크기가 정한 값보다 크면 줄이는 요령
돌출 맵(saliency map)입력의 어느 부분이 출력에 크게 영향을 주는지 보여 주는 그림
정책 평가(policy evaluation)정해진 정책의 가치 함수를 추정하는 일

스스로 점검

  1. Q=V+AQ = V + A로 그냥 더하면 무엇이 문제인가?

    VV에 상수를 더하고 AA에서 같은 상수를 빼도 QQ가 같아서, VV와 AA를 하나로 정할 수 없습니다. 실제 학습 성능도 나빴습니다.

  2. 평균 빼기 결합을 써도 행동 선택이 바뀌지 않는 이유는?

    모든 행동에서 같은 값(평균)을 빼므로 행동들 사이의 순위가 그대로이기 때문입니다.

  3. 행동 수가 많을수록 듀얼링 구조가 유리해지는 이유는?

    한 행동으로 갱신해도 공통의 가치 흐름 VV가 함께 배워, 비슷한 행동들이 그 정보를 나눠 씁니다. 행동이 많을수록 단일 흐름은 행동마다 따로 배워야 할 것이 늘어납니다.

다음에 볼 것

이 글을 이해했다면 이어서 보면 좋은 항목입니다.

  • 우선순위 경험 재생 — TD 오차가 큰 경험을 더 자주 다시 보는 우선순위 재생 — 학습 두 배 빠르게

출처

AI 원리부터 이해하기 · 강화학습 모듈

강화학습 모듈 학습

이 글은 강화학습 모듈의 학습 자료입니다. 전체 31개 자료 중 13번째입니다.

AI 기초 과정은 현재 진도 저장을 지원하지 않습니다.

출처·원문

원문 보기

요약만

arXiv (논문별 상이)

arXiv 1511.06581