이중 Q-러닝 딥 강화학습 (Double DQN)
DQN의 과대평가를 고르기 · 값 매기기 분리로 줄인 Double DQN — 식 한 줄로 큰 개선
먼저 알아야 할 것
다루는 내용
Q-러닝의 max 연산은 추정 오차가 평균 0이어도 행동 가치를 위로 치우치게 만들며, 논문은 이를 정리로 보이고 DQN이 아타리 49개 게임 모두에서 과대평가함을 확인했습니다. 목표값에서 행동은 온라인 신경망으로 고르고 값은 목표 신경망으로 매기는 Double DQN을 제안해, 추가 신경망 없이 과대평가를 줄였습니다. 정규화 점수 중앙값이 no-op 평가에서 93.5%→114.7%, 사람 시작점 평가에서 47.5%→88.4%(조정판 116.7%)로 올랐습니다.
초록
널리 쓰이는 Q-러닝 알고리즘은 특정 조건에서 행동 가치를 과대평가한다고 알려져 있습니다. 그러나 실제로 이런 과대평가가 흔한지, 성능을 해치는지, 그리고 일반적으로 막을 수 있는지는 지금까지 알려지지 않았습니다. 이 논문은 이 질문 모두에 '그렇다'고 답합니다. 구체적으로, 먼저 Q-러닝과 심층 신경망을 결합한 최근의 DQN 알고리즘이 아타리 2600 분야의 일부 게임에서 상당한 과대평가를 겪는다는 것을 보입니다. 이어서, 표 형식(tabular) 설정에서 제안된 이중 Q-러닝(Double Q-learning) 알고리즘의 아이디어를 대규모 함수 근사에서도 작동하도록 일반화할 수 있음을 보입니다. DQN 알고리즘에 대한 구체적인 변형을 제안하고, 이렇게 얻은 알고리즘이 가설대로 관찰된 과대평가를 줄일 뿐 아니라 여러 게임에서 훨씬 좋은 성능으로 이어진다는 것을 보입니다.
해설
이중 Q-러닝 딥 강화학습 (Double DQN)
Q-러닝과 DQN이 행동 가치를 체계적으로 부풀린다는 것(과대평가)을 이론과 아타리 실험으로 보이고, 목표값 계산에서 "행동 고르기"와 "값 매기기"를 서로 다른 신경망에 맡기는 아주 작은 수정으로 이를 줄였습니다. 코드 한 줄을 바꿔 점수가 크게 오른, DQN 개선의 첫 단추입니다.
| 항목 | 내용 |
|---|---|
| 원제 | Deep Reinforcement Learning with Double Q-learning |
| 저자 | Hado van Hasselt · Arthur Guez · David Silver (Google DeepMind) |
| 발표 | 2015(arXiv) · AAAI 2016 · arXiv 1509.06461 |
| 트랙 · 수준 | 강화학습 · 중급 |
| 먼저 알면 좋은 것 | Q-러닝, DQN(Nature 판)의 목표 네트워크, 기댓값과 최댓값의 차이, 편향(bias) |
들어가기 전에
이 해설은 아래 내용을 안다고 보고 씁니다. 처음이라면 먼저 읽고 오면 수식과 손계산을 훨씬 쉽게 따라올 수 있습니다.
- 딥 강화학습으로 사람 수준의 제어 (DQN, Nature 판) — 목표 네트워크를 더한 DQN으로 아타리 49개 게임에서 사람 수준에 다가선 Nature 논문
한눈에 보기
- 추정값이 평균적으로는 정확해도, 그중 최댓값을 고르면 위로 치우친다는 사실(과대평가)을 숫자로 확인합니다.
- 오차의 원인이 잡음이든 함수 근사든 상관없이 과대평가가 생긴다는 논문의 정리(Theorem 1)를 이해합니다.
- Double DQN의 목표값 식이 DQN과 어디가 다른지, 왜 추가 신경망 없이 구현되는지 압니다.
- 아타리 49개 게임에서 정규화 점수 중앙값 · 평균이 얼마나 올랐는지 압니다.
초록 (번역)
널리 쓰이는 Q-러닝 알고리즘은 특정 조건에서 행동 가치를 과대평가한다고 알려져 있습니다. 그러나 실제로 이런 과대평가가 흔한지, 성능을 해치는지, 그리고 일반적으로 막을 수 있는지는 지금까지 알려지지 않았습니다. 이 논문은 이 질문 모두에 '그렇다'고 답합니다. 구체적으로, 먼저 Q-러닝과 심층 신경망을 결합한 최근의 DQN 알고리즘이 아타리 2600 분야의 일부 게임에서 상당한 과대평가를 겪는다는 것을 보입니다. 이어서, 표 형식(tabular) 설정에서 제안된 이중 Q-러닝(Double Q-learning) 알고리즘의 아이디어를 대규모 함수 근사에서도 작동하도록 일반화할 수 있음을 보입니다. DQN 알고리즘에 대한 구체적인 변형을 제안하고, 이렇게 얻은 알고리즘이 가설대로 관찰된 과대평가를 줄일 뿐 아니라 여러 게임에서 훨씬 좋은 성능으로 이어진다는 것을 보입니다.
무엇을 풀었나
Q-러닝의 목표값에는 가 들어갑니다. 다음 상태에서 "가장 좋아 보이는" 행동의 값을 가져오는데, 추정값에 오차가 있으면 우연히 높게 잘못 추정된 행동이 뽑히기 쉽습니다. 그래서 목표값이 체계적으로 위로 치우칩니다.
이 현상은 이미 알려져 있었습니다. Thrun과 Schwartz(1993)는 함수 근사가 충분히 유연하지 않을 때, van Hasselt(2010)는 환경의 잡음 때문에 과대평가가 생긴다고 봤습니다. 하지만 남은 질문이 있었습니다.
- 실제로 흔한가? 결정론적인 아타리 게임 + 유연한 심층 신경망은 Q-러닝에 가장 유리한 조건인데, 여기서도 생길까?
- 해로운가? 모든 값이 고르게 부풀면 행동 순위는 그대로라 정책은 나빠지지 않습니다. 탐색에는 낙관이 도움이 되기도 합니다.
- 대규모에서 막을 수 있나? 이중 Q-러닝은 표 형식에서만 제안됐습니다.
이 논문은 세 질문 모두 '그렇다'고 답합니다. 과대평가는 상태 · 행동마다 고르지 않게 생기고, 부트스트래핑으로 퍼져 "어느 상태가 더 좋은지"라는 상대 정보를 망가뜨리기 때문에 정책을 해칩니다.
핵심 아이디어
flowchart LR
A[경험 s, a, r, s'] --> B[온라인 신경망 θ로 s'의 최선 행동 고르기 argmax]
B --> C[목표 신경망 θ⁻로 그 행동의 값 매기기]
C --> D[목표 y = r + γ · 그 값]
D --> E[온라인 신경망 Q s,a;θ 를 y 쪽으로 갱신]
E -.->|일정 단계마다 복사| F[목표 신경망 θ⁻]
F --> C1. 최댓값은 왜 위로 치우치나
직관: 실력이 모두 똑같은 지원자 10명을 면접 점수로 뽑는다고 해 봅시다. 면접관이 매번 조금씩 실수한다면, 1등의 점수는 "실력 + 가장 운 좋은 실수"입니다. 1등 점수를 실력으로 믿으면 늘 과대평가하게 됩니다.
단계:
- 상태 의 모든 행동의 진짜 값이 로 같다고 둡니다.
- 추정값 는 행동마다 오차가 있지만, 오차의 평균은 0입니다(전체적으로 편향 없음).
- 그래도 그중 최댓값을 고르면, 진짜 값보다 최소 일정량 이상 커집니다.
논문의 정리 1(설명용으로 기호를 조금 줄임):
| 기호 | 뜻 |
|---|---|
| 시점의 행동 가치 추정값 | |
| 모든 행동이 공유하는 진짜 최적 가치 | |
| 상태 의 행동 수() | |
| 추정 오차 제곱의 평균(오차가 얼마나 큰지) |
- 이 하한은 빡빡(tight)합니다. 같은 조건에서 이중 Q-러닝 추정의 절대 오차 하한은 0입니다.
- 오차가 행동끼리 독립이라는 가정도 필요 없습니다. 오차의 출처가 무엇이든(잡음, 함수 근사, 비정상성 등) 과대평가가 생길 수 있다는 뜻입니다.
- 오차가 에서 독립 균등분포라면 과대평가의 기댓값은 입니다(논문 부록의 정리 2). 행동이 많을수록 커집니다.
숫자로 해 보기(해설용 예): 행동 3개, 진짜 값은 모두 0, 추정 오차가 이라 합시다. 오차 합은 0이라 "평균적으로는 정확"합니다. 그런데 는 0.5로, 0.5만큼 과대평가합니다. 정리 1로 확인하면 , 하한은 이고 실제 0.5는 그 이상입니다. 정리 2를 행동 10개에 대입하면 로, 오차 범위의 대부분만큼 부풀 수 있습니다.
함수 근사 실험(논문 그림 2): 연속 상태에 행동 10개, 모든 행동의 진짜 값이 같은 문제( 또는 )에서 행동마다 다른 표본 상태로 다항식(6차 또는 9차)을 맞췄습니다. 잡음이 전혀 없는데도 행동별 근사의 최댓값이 거의 모든 상태에서 진짜 값보다 높았습니다. 다항식을 더 유연하게(9차) 하면 표본 상태는 잘 맞지만 표본이 없는 곳의 오차가 커져 과대평가가 오히려 커졌습니다.
2. 고르기와 값 매기기를 떼어 놓기
직관: 면접관 A가 1등을 뽑고, 1등의 점수는 A와 독립인 면접관 B에게 다시 매기게 하면 "A의 운 좋은 실수"가 B의 점수에는 들어가지 않습니다.
Q-러닝 목표값을 풀어 쓰면, 같은 가중치 가 두 번 쓰입니다.
원래 이중 Q-러닝은 가중치 두 벌 를 두고, 경험마다 무작위로 한쪽만 갱신합니다. 한 벌로 고르고 다른 벌로 값을 매깁니다.
3. Double DQN: 이미 있는 목표 네트워크를 활용
직관: DQN에는 이미 "조금 옛날 버전" 신경망(목표 네트워크)이 있습니다. 새 면접관을 뽑지 않고 그 신경망을 B로 씁니다.
단계:
- 온라인 신경망 로 다음 상태에서 가장 좋은 행동을 고릅니다.
- 그 행동의 값은 목표 신경망 로 매깁니다.
- 나머지(경험 재생, 목표 신경망의 주기적 복사, 손실, 하이퍼파라미터)는 DQN 그대로입니다.
비교를 위해 DQN의 목표값은 입니다. 즉 DQN은 목표 신경망 하나로 고르기와 값 매기기를 다 하고, Double DQN은 고르기만 온라인 신경망으로 옮겼습니다.
| 기호 | 뜻 |
|---|---|
| 온라인(학습 중인) 신경망 가중치 | |
| 목표 신경망 가중치(일정 단계마다 를 복사) | |
| 값이 가장 큰 행동 자체(값이 아니라 '어느 행동인지') |
왜 이렇게 했나: 두 신경망이 완전히 독립은 아니지만(목표 신경망은 온라인 신경망의 옛 복사본), 추가 신경망이나 파라미터 없이 계산량도 거의 늘리지 않고 이중 Q-러닝 효과의 대부분을 얻을 수 있습니다. 또 DQN과의 차이를 목표값 하나로 한정해, 성능 차이가 오로지 과대평가 감소에서 온다고 공정하게 비교할 수 있습니다.
숫자로 해 보기(해설용 예): 다음 상태에서 온라인 신경망 값이 , 목표 신경망 값이 , , 라 합시다.
- DQN: 목표 신경망의 최댓값 1.8을 그대로 씁니다 → .
- Double DQN: 온라인 신경망이 행동 1(값 2.0)을 고르고, 그 행동을 목표 신경망으로 매기면 1.6 → . 두 신경망이 동시에 "운 좋게" 높게 본 행동이 아니면 값이 깎이므로, 평균적으로 부풀림이 줄어듭니다.
결과
설정: Mnih 외(2015)의 실험 설정과 신경망 구조(합성곱 3층 + 완전연결 은닉층, 약 150만 파라미터, 최근 4프레임 입력)를 그대로 따랐습니다. 게임마다 GPU 1개로 2억 프레임(약 1주일) 학습했습니다.
과대평가 관찰: 학습 중 DQN의 가치 추정은 학습이 끝난 정책을 실제로 돌려 얻은 할인 보상보다 꾸준히, 때로는 크게 높았습니다. 애스터릭스 · 위저드 오브 워에서는 DQN의 가치 추정이 폭주하면서 점수가 함께 떨어졌고, Double DQN은 훨씬 안정적이었습니다. 과대평가는 정도는 달라도 실험한 49개 게임 모두에서 관찰됐습니다. 반면 퐁처럼 조금 과대평가해도 최적 행동을 하는 게임도 있었습니다.
정책 품질(정규화 점수, 사람 = 100%):
| 평가 | 지표 | DQN | Double DQN | Double DQN(조정) |
|---|---|---|---|---|
| no-op 시작 · 최대 5분 · 49게임 | 중앙값 | 93.5% | 114.7% | — |
| 평균 | 241.1% | 330.3% | — | |
| 사람 시작점 · 최대 30분 · 49게임 | 중앙값 | 47.5% | 88.4% | 116.7% |
| 평균 | 122.0% | 273.1% | 475.2% |
(논문 표 1 · 표 2의 수치를 요약한 표입니다. 사람 시작점 평가의 DQN 수치는 Nair 외(2015)에서 가져온 것입니다.)
- no-op 평가: 최대 30번의 '아무것도 안 하기' 행동으로 시작점을 바꾸고, 5분(18,000프레임) 동안 로 100 에피소드를 평균했습니다. Double DQN은 DQN에 맞춰 조정된 하이퍼파라미터를 그대로 썼는데도 크게 나아졌습니다. 예: 로드 러너 233% → 617%, 애스터릭스 70% → 180%, Zaxxon 54% → 111%, 더블 덩크 17% → 397%.
- 사람 시작점 평가: 결정론적 게임에서 행동 순서를 외우는 것만으로 높은 점수를 얻는 것을 막으려고, 사람 전문가 플레이에서 뽑은 100개 시작점에서 평가했습니다(최대 108,000프레임). Double DQN이 이 더 어려운 평가에서도 견고했습니다.
- 조정판: 목표 신경망 복사 간격을 10,000에서 30,000프레임으로 늘리고, 학습 중 탐색 을 0.1에서 0.01로, 평가 중에는 0.001로 줄였으며, 마지막 층의 행동 값들이 편향(bias) 하나를 공유하게 했습니다.
- 참고로 대규모 분산판 DQN인 Gorila는 구조 · 인프라가 달라 표에서 뺐고, no-op 기준 중앙값 96% · 평균 495%, 사람 시작점 기준 중앙값 78% · 평균 259%였다고 함께 적었습니다.
왜 중요한가 · 이후 영향
- "작은 수정, 큰 효과"의 대표 사례: 목표값 식 한 줄만 바꿔 아타리 결과를 크게 끌어올렸습니다. 이후 DQN 계열 구현에서 거의 기본 옵션이 됐습니다.
- 과대평가라는 관점: "max를 쓰는 곳에는 위쪽 편향이 숨어 있다"는 인식을 강화학습 전반에 퍼뜨렸습니다. 연속 제어의 TD3는 같은 문제를 액터-크리틱에서 다룹니다.
- Rainbow의 구성 요소: Rainbow가 합친 여섯 가지 개선 중 하나입니다.
- 평가 방식에 대한 교훈: 같은 알고리즘도 no-op 시작과 사람 시작점에서 결과가 크게 다릅니다. 결정론적 환경에서는 일반화를 따로 확인해야 한다는 점을 보여 줍니다.
한계 · 주의할 점
- 완전한 분리가 아닙니다. 목표 신경망은 온라인 신경망의 옛 복사본이라 둘의 오차가 어느 정도 겹칩니다. 논문도 "완전히 떼어 놓지는 않았다"고 밝힙니다. 복사 직후에는 두 신경망이 같아져 둘 다 Q-러닝으로 돌아갑니다(조정판에서 복사 간격을 늘린 이유).
- 과대평가가 늘 해로운 것은 아닙니다. 퐁처럼 과대평가가 있어도 최적 행동을 하는 경우가 있습니다.
- 과소평가 가능성: 이중 추정은 반대로 값을 낮게 볼 수 있습니다. 논문은 이 부분을 깊게 다루지 않습니다.
- 하이퍼파라미터 공정성: 주 결과는 DQN용 하이퍼파라미터를 그대로 쓴 것이라 Double DQN에 다소 불리한 비교입니다. 조정판은 여러 설정을 동시에 바꿔서 각 변경의 개별 효과는 분리돼 있지 않습니다.
이어서 읽을 것
- 앞: 딥 강화학습으로 사람 수준의 제어 (DQN, Nature 판) · 강화학습 입문 6.7절 '최대화 편향과 이중 학습'
- 뒤: 듀얼링 네트워크 구조 (Dueling DQN) · 우선순위 경험 재생 · Rainbow
- 같은 문제의 연속 제어판: TD3
용어 정리
| 용어 | 쉬운 뜻 |
|---|---|
| 과대평가(overestimation) | 추정한 가치가 진짜보다 체계적으로 높게 나오는 것 |
| 편향(bias) | 오차가 한쪽(위 또는 아래)으로 치우친 정도 |
| 이중 Q-러닝(Double Q-learning) | 가치 함수 두 벌로 행동 고르기와 값 매기기를 나눠 과대평가를 줄이는 방법 |
| 온라인 신경망 | 지금 경사 하강으로 학습 중인 신경망 |
| 목표 신경망(target network) | 목표값 계산용으로 일정 간격마다 복사해 두는 신경망 |
| argmax | 값이 가장 큰 '항목 자체'를 돌려주는 연산 |
| 부트스트래핑 | 다른 추정값으로 지금 추정값을 고치는 것. 과대평가가 퍼지는 통로가 됩니다 |
| no-op 시작 | 처음에 아무것도 안 하는 행동을 무작위 횟수만큼 해서 시작점을 바꾸는 평가 방식 |
| 사람 시작점(human starts) | 사람이 플레이한 궤적의 중간 지점에서 평가를 시작하는 방식 |
스스로 점검
- 추정 오차의 평균이 0인데 왜 는 위로 치우치나?
여러 추정값 중 가장 큰 것을 고르면, 그 값에는 우연히 위쪽으로 틀린 오차가 담겨 있을 가능성이 높기 때문입니다. 정리 1은 오차 크기 가 0이 아니면 최댓값이 최소 만큼 높아진다는 것을 보여 줍니다.
- Double DQN의 목표값에서 온라인 신경망과 목표 신경망은 각각 무엇을 하나?
온라인 신경망은 다음 상태에서 어떤 행동이 최선인지 고르고, 목표 신경망은 그 행동의 값을 매깁니다.
- 모든 값이 고르게 부풀면 문제가 없는데, 실제로는 왜 문제가 되나?
과대평가는 상태 · 행동마다 다르게 생기고, 부트스트래핑으로 다른 추정값에 퍼집니다. 그러면 어느 상태 · 행동이 더 좋은지에 대한 상대 정보가 틀어져 정책이 나빠집니다.
다음에 볼 것
이 글을 이해했다면 이어서 보면 좋은 항목입니다.
- 듀얼링 네트워크 구조 (Dueling DQN) — Q-네트워크를 상태 가치와 어드밴티지 두 갈래로 나눈 듀얼링 구조 — 구조만 바꿔 성능 향상
출처
- 원문: arxiv.org/abs/1509.06461 (2015 · Hado van Hasselt 외)
AI 원리부터 이해하기 · 강화학습 모듈
강화학습 모듈 학습
이 글은 강화학습 모듈의 학습 자료입니다. 전체 31개 자료 중 12번째입니다.
출처·원문
원문 보기요약만