이 글은 서강대 가상융합 전문대학원(구 메타버스 전문대학원) 강화학습 자료를 기반으로 작성되었습니다.
DQN 성능 높이기-Dueling DQN 구조와 학습 안정화 팁
강화학습(Reinforcement Learning)이라는 용어를 처음 접할 때, 대다수의 사람들은 기계가 스스로 판단하고 학습한다는 표현에서 막연한 기대를 품는다. 마치 어린아이가 걸음마를 배우듯, 기계가 경험을 쌓아가며 점점 더 인간처럼 똑똑한 존재로 성장하는 모습을 상상하게 되는 것이다. 그러나 실제 연구 현장에서 강화학습을 다루다 보면, 연구자가 가장 먼저 마주하는 감정은 경이로움이 아니라 깊은 의심이다. 지금 눈앞의 모델이 정말로 환경을 이해하고 학습하고 있는 것인지, 아니면 단지 운 좋게 맞아떨어진 결과를 반복하고 있는 것인지 구별하기가 쉽지 않기 때문이다. 이러한 문제의식은 강화학습이 단순히 코드를 한 번 실행해보는 것이 아니라, 끊임없이 반복하고 비교해야 하는 실험 과학이라는 점을 시사한다.
DQN(Deep Q-Network)은 겉보기에 Q-learning에 신경망을 결합한 단순한 구조처럼 보이지만, 실제로는 불안정한 값 추정 문제를 해결하기 위해 다수의 공학적 장치가 정교하게 결합된 시스템이다. 이 시스템이 안정적으로 작동하기 위해서는 네 가지 핵심 요소가 필수적으로 요구된다. 첫째는 상태와 행동을 입력받아 가치를 추정하는 신경망, 둘째는 과거의 경험을 저장하고 무작위로 재사용하여 데이터 간의 상관관계를 끊어주는 리플레이 버퍼(Replay Buffer), 셋째는 목표값의 변동성을 줄여 안정적인 기준점을 제공하는 타깃 네트워크(Target Network), 그리고 마지막으로 탐험과 활용의 균형을 조절하는 탐험 전략이다. 이 네 가지 요소는 서로 독립적인 것처럼 보이지만, 어느 하나라도 제 역할을 하지 못하면 값 기반 학습은 즉시 불안정해지고 만다. 즉, 강화학습은 단순한 수학 공식의 적용이 아니라, 학습 과정에서 발생하는 불안정성을 어떻게 제어할 것인가에 대한 치밀한 공학적 설계의 결과물이다.
일반적인 지도학습(Supervised Learning)에서는 고정된 데이터셋을 기준으로 학습 정확도와 테스트 정확도를 비교함으로써 모델의 과적합(Overfitting) 여부를 명확히 판단할 수 있다. 그러나 강화학습에는 이러한 명확한 기준선이 존재하지 않는다. 에이전트는 환경과 상호작용하며 스스로 데이터를 생성하고, 그 데이터로 다시 자신의 지능을 업데이트하는 순환 구조를 가진다. 이 과정에서 에이전트는 종종 '세상 전체'를 배우는 것이 아니라, 리플레이 버퍼에 저장된 '최근의 제한된 경험'만을 달달 외워버리는 형태의 과적합에 빠지게 된다. 이를 '암기(Memorization)'라고 부르는데, 에이전트는 최근에 자주 본 상황에 대해서만 완벽하게 반응할 뿐, 환경의 일반적인 규칙은 전혀 이해하지 못하는 상태가 되는 것이다. 이때 학습 곡선은 상승하는 것처럼 보이지만, 이는 좁은 데이터 분포 안에서의 국소적 최적화일 뿐이며, 탐험이 제거된 실제 평가 상황에서는 성능이 처참하게 붕괴하는 원인이 된다.
이러한 불안정한 학습 과정을 안정시키기 위해 연구자들은 다양한 안전장치를 고안해냈다. 대표적인 것이 손실 함수로 Huber Loss를 사용하는 것이다. 학습 초기나 정책이 급변하는 구간에서는 추정 오차가 매우 크게 발생할 수 있는데, 이때 단순한 제곱 오차를 사용하면 오차가 증폭되어 파라미터가 급격히 변하고 학습이 발산하게 된다. Huber Loss는 오차가 작을 때는 정밀하게, 오차가 클 때는 둔감하게 반응하도록 설계되어 이상치에 의한 학습 폭주를 막아주는 완충 장치 역할을 수행한다.
또한, 구조적 불안정성을 극복하기 위해 등장한 Double DQN과 Dueling DQN 역시 단순한 성능 개선을 위한 장식이 아니다. 구체적으로 Double DQN은 기존 DQN이 가진 '낙관적 편향(Optimistic Bias)' 문제를 해결하기 위해 고안되었다. DQN은 다음 상태의 가치를 계산할 때 Q값이 가장 높은 행동을 선택하는 $max$ 연산을 사용하는데, 신경망이 가진 필연적인 추정 오차와 이 $max$ 연산이 결합되면 실제보다 가치를 과대평가하는 문제가 발생한다. Double DQN은 학습 중인 '온라인 네트워크'가 최적의 행동을 선택하게 하고, 그 행동에 대한 가치 평가는 '타깃 네트워크'가 담당하도록 역할을 분리한다. 이를 통해 특정 네트워크의 과도한 평가를 교차 검증하여 목표값의 폭주를 막는다.
한편 Dueling DQN은 신경망의 내부 구조를 재설계하여 학습 효율을 극대화한다. 기존 DQN은 모든 상태-행동 쌍의 Q값을 개별적으로 학습해야 했으나, Dueling DQN은 이를 상태 가치(State Value)와 행동 이점(Action Advantage)으로 분리한다. 이는 "어떤 행동을 하든 결과가 뻔한 위태로운 상황"에서는 행동 간의 이득 차이가 크지 않다는 점에 착안한 것이다. 상태 자체의 가치와 행동별 이점을 별도로 계산하고 합치는 방식을 통해, 불필요한 변동을 줄이고 에이전트가 모든 행동을 일일이 경험하지 않아도 상태의 가치를 빠르게 학습할 수 있게 한다.
이론적 이해가 완벽하더라도 실제 구현 단계에서는 수많은 난관이 존재한다. 텐서의 차원이 조금만 맞지 않아도 코드는 에러 없이 작동하지만 전혀 엉뚱한 결과를 학습하게 된다. 리플레이 버퍼의 메모리 관리 방식, 데이터를 샘플링하는 디테일, 타깃 네트워크의 업데이트 주기와 같은 하이퍼파라미터 설정은 학습의 운명을 가르는 결정적인 요소들이다. 특히 학습률이나 탐험 전략과 같은 민감한 변수들은 잘못 설정될 경우 학습 자체가 시작되지 않거나 겉보기 성능만 남기는 결과를 초래한다.
결국 이 논의가 도달하는 지점은 강화학습이 "한 번 돌려보는 코드"가 아니라, 철저한 검증과 비교가 필요한 "실험 과학"이라는 사실이다. 학습 그래프가 우상향한다고 해서 섣불리 성공을 확신해서는 안 된다. 에이전트가 정말로 환경을 이해하고 있는지, 아니면 단순히 경험을 외우고 있는지 끊임없이 의심해야 한다. 실험이 흔들릴 때 구조적 결함인지, 구현의 실수인지, 아니면 단순한 설정 문제인지를 명확히 구분해낼 수 있는 통찰력이 필요하며, 이러한 집요한 검증 과정이 뒷받침될 때 비로소 기계는 "경험으로부터 패턴을 배우고 세상을 판단한다"는 강화학습의 본질적인 목표에 다가설 수 있다.
'Reinforcement learning' 카테고리의 다른 글
| [강화학습 정복하기] 9강: 배우와 평론가의 만남: Actor-Critic (A2C)과 GAE (0) | 2025.12.22 |
|---|---|
| [강화학습 정복하기] 8강: 가치에서 정책으로-REINFORCE 알고리즘과 정책 그래디언트 (0) | 2025.12.22 |
| [강화학습 정복하기] 6강: DQN의 탄생-딥러닝이 강화학습을 만났을 때 (Replay Buffer & Target Network) (0) | 2025.12.22 |
| [강화학습 정복하기] 5강: Q-learning vs SARSA: 지도 없이 길을 찾는 방법 (0) | 2025.12.22 |
| [강화학습 정복하기] 4강: MDP와 벨만 방정식: 강화학습을 지탱하는 수학적 뼈대 (0) | 2025.12.22 |