심층 강화학습 알고리즘 구현: DQN, Double DQN, PER 비교 분석

1. 프로젝트 개요

프로젝트 배경 및 목표

강화학습 수업의 기말 프로젝트로 DQN(Deep Q-Network), Double DQN, PER(Prioritized Experience Replay) 세 가지 알고리즘을 직접 구현하고 성능을 비교 분석하였다. 단순히 라이브러리를 사용하는 것이 아니라 핵심 알고리즘을 처음부터 PyTorch로 구현하여 각 알고리즘의 작동 원리와 특성을 깊이 이해하는 것이 목표였다.

특히 다음 세 가지 질문에 답하고자 하였다:

  • DQN의 Q값 과대추정 문제가 실제로 성능에 얼마나 영향을 미치는가?
  • Double DQN이 모든 환경에서 DQN보다 좋은 성능을 보이는가?
  • PER이 희소 보상 환경의 근본적인 문제를 해결할 수 있는가?

구현한 알고리즘을 CartPole-v1, Acrobot-v1, MountainCar-v0 세 가지 OpenAI Gymnasium 환경에서 테스트하여 각 알고리즘의 특성과 한계를 파악하였다. 세 환경은 각각 다른 보상 구조와 난이도를 가지고 있어 알고리즘 간 비교에 적합하다.

강화학습 기초 개념

본격적인 알고리즘 설명에 앞서, 강화학습의 핵심 개념을 정리하였다.

마르코프 결정 과정 (MDP)

강화학습 문제는 마르코프 결정 과정(Markov Decision Process, MDP)으로 형식화된다. MDP는 다음 요소로 구성된다:

  • 상태 공간 S: 에이전트가 처할 수 있는 모든 상태의 집합
  • 행동 공간 A: 에이전트가 취할 수 있는 모든 행동의 집합
  • 전이 확률 P(s'|s,a): 상태 s에서 행동 a를 취했을 때 상태 s'로 전이할 확률
  • 보상 함수 R(s,a,s'): 전이에 따른 즉각적 보상
  • 감가율 γ: 미래 보상의 현재 가치 할인율 (0 ≤ γ ≤ 1)

에이전트의 목표는 누적 보상의 기대값을 최대화하는 정책 π를 찾는 것이다.

Q-함수와 벨만 방정식

Q-함수 Q(s,a)는 상태 s에서 행동 a를 취한 후, 정책 π를 따랐을 때 얻을 수 있는 기대 누적 보상을 나타낸다. 최적 Q-함수는 벨만 최적 방정식을 만족한다:

Q-Learning은 이 방정식을 반복적으로 적용하여 최적 Q-함수를 학습한다. 테이블 기반 Q-Learning은 상태-행동 쌍의 수가 적을 때 효과적이지만, 연속적이거나 고차원 상태 공간에서는 함수 근사가 필요하다.

심층 강화학습의 등장

2013년 DeepMind는 Q-함수를 신경망으로 근사하는 DQN을 제안하였다. 그러나 단순히 신경망을 사용하는 것만으로는 학습이 불안정했다. 두 가지 핵심 기법이 이 문제를 해결하였다:

  1. Experience Replay: 경험을 버퍼에 저장하고 무작위 샘플링하여 데이터 간 상관관계를 깨뜨림
  2. Target Network: 별도의 타겟 네트워크를 사용하여 학습 목표의 안정성을 확보

이 두 기법은 이후 Double DQN, PER 등 후속 알고리즘의 기반이 되었다.

실험 환경

이번 프로젝트에서 사용한 세 가지 환경은 각각 다른 특성을 가지고 있어 알고리즘 비교에 적합하다.

CartPole-v1

막대가 달린 카트를 좌우로 움직여 막대의 균형을 유지하는 환경이다. 500 스텝 동안 막대를 쓰러뜨리지 않으면 성공으로 간주한다.

  • 상태 공간: 카트 위치, 카트 속도, 막대 각도, 막대 각속도 (4차원 연속)
  • 행동 공간: 왼쪽/오른쪽 (2개, 이산)
  • 보상: 매 스텝 +1 (밀집 보상)
  • 종료 조건: 막대 각도가 ±12° 초과, 카트 위치가 ±2.4 초과, 또는 500 스텝 도달

CartPole은 강화학습의 "Hello World"로 불리며, 알고리즘 테스트에 널리 사용된다. 상태 공간이 4차원으로 비교적 단순하고, 매 스텝마다 +1 보상을 받아 학습 신호가 밀집되어 있다. 그러나 균형을 유지하는 것이 직관적으로 쉬워 보이지만, 정책이 조금만 잘못되어도 빠르게 실패하는 특성이 있어 정책의 안정성을 테스트하기에 적합하다.

Acrobot-v1

두 개의 링크로 연결된 진자를 스윙하여 끝점을 목표 높이까지 올리는 환경이다. 복잡한 진자 역학을 가지고 있다.

  • 상태 공간: 두 링크의 cos/sin 값, 각속도 (6차원 연속)
  • 행동 공간: 토크 -1, 0, +1 (3개, 이산)
  • 보상: 목표 도달 전 매 스텝 -1 (밀집된 음의 보상)
  • 종료 조건: 끝점이 목표 높이 도달 또는 500 스텝 초과

Acrobot은 6차원 상태 공간으로 CartPole보다 복잡해 보이지만, 매 스텝 -1 보상을 받아 "빠르게 목표에 도달하라"는 명확한 학습 신호를 제공한다. 복잡한 스윙 동작을 학습해야 하지만, 밀집된 보상 구조 덕분에 학습이 비교적 안정적이다.

MountainCar-v0

골짜기에 있는 차를 좌우로 가속하여 오른쪽 언덕 꼭대기에 도달하는 환경이다. 희소 보상(sparse reward) 문제의 전형적인 예시이다.

  • 상태 공간: 위치, 속도 (2차원 연속)
  • 행동 공간: 왼쪽 가속, 정지, 오른쪽 가속 (3개, 이산)
  • 보상: 목표 도달 시에만 0, 그 외 -1 (희소 보상)
  • 종료 조건: 위치가 0.5 이상 도달 또는 200 스텝 초과

MountainCar는 상태 공간이 2차원으로 가장 단순하지만, 희소 보상 구조로 인해 가장 어렵다. 차의 엔진 힘이 중력을 이기기에 부족하여 언덕을 직접 올라갈 수 없고, 반대편 언덕에서 모멘텀을 모아야 한다. 이 "스윙" 전략을 발견하기 전까지는 목표에 도달할 수 없어 의미 있는 학습 신호를 받지 못한다. 이는 탐험(exploration)의 중요성을 보여주는 대표적인 환경이다.

개발 환경

  • 프레임워크: PyTorch 2.0
  • 환경 라이브러리: OpenAI Gymnasium 0.29
  • 하드웨어: NVIDIA RTX 3080 GPU
  • 실험 반복: 각 알고리즘-환경 조합당 1000 에포크

2. 네트워크 구조 설계

세 알고리즘 모두 동일한 Q-Network 구조를 사용하도록 설계하였다. 이를 통해 네트워크 구조가 아닌 알고리즘 자체의 차이가 성능에 미치는 영향을 분리하여 분석할 수 있다.

Q-Network 구현

2개의 은닉층(128 유닛)과 ReLU 활성화 함수를 사용하는 구조로 구현하였다. 입력은 상태 벡터이고, 출력은 각 행동의 Q값이다.

설계 결정 사항

은닉층 크기 선택

은닉층 크기를 128로 설정한 이유는 다음과 같다:

  • 실험 환경의 상태 공간이 2~6차원으로 비교적 작음
  • 128 유닛은 표현력과 계산 효율성의 균형점
  • 더 큰 네트워크는 과적합 위험이 있고, 더 작은 네트워크는 표현력 부족 우려

실험 초기에 64, 128, 256 유닛으로 테스트한 결과, 128 유닛이 세 환경 모두에서 안정적인 성능을 보였다.

활성화 함수 선택

ReLU를 선택한 이유:

  • 계산 효율성이 높음 (단순 max 연산)
  • 기울기 소실 문제 완화
  • DQN 원논문에서 사용하여 재현성 확보

손실 함수 선택

Smooth L1 Loss (Huber Loss)를 사용하였다. MSE Loss 대비 장점:

  • 이상치(outlier)에 덜 민감
  • TD 오류가 큰 초기 학습 단계에서 안정적
  • DQN 원논문 권장 방식

3. DQN 구현

DQN이란?

DQN(Deep Q-Network)은 Q-Learning에 딥러닝을 적용한 알고리즘이다. 2013년 DeepMind가 처음 제안하고, 2015년 Nature 논문에서 Atari 게임에서 인간 수준의 성능을 달성하며 심층 강화학습의 시대를 열었다.

핵심 아이디어

전통적인 Q-Learning은 테이블에 모든 상태-행동 쌍의 Q값을 저장한다. 그러나 상태 공간이 크거나 연속적이면 테이블 방식은 불가능하다. DQN은 신경망을 함수 근사기로 사용하여 Q(s,a; θ)를 학습한다.

학습 불안정성 문제

단순히 신경망을 사용하면 학습이 불안정하다. 두 가지 원인:

  1. 데이터 상관관계: 연속된 상태들은 서로 유사하여 i.i.d. 가정 위반
  2. 이동 타겟: Q값 업데이트 시 타겟도 같은 네트워크로 계산되어 불안정

DQN의 해결책

  1. Experience Replay: 경험 (s, a, r, s', done)을 버퍼에 저장하고 무작위 샘플링. 데이터 간 상관관계를 깨뜨려 i.i.d. 조건 만족.

  2. Target Network: 별도의 타겟 네트워크 θ⁻를 유지. 일정 주기(예: 1000 스텝)마다 온라인 네트워크 θ를 복사하여 업데이트. 타겟의 안정성 확보.

Q값 과대추정 문제

DQN의 알려진 한계 중 하나는 Q값 과대추정이다. 타겟 계산 시:

max 연산자는 노이즈가 있는 Q값 추정치 중 최대값을 선택한다. Q값 추정에 노이즈가 있으면, max 연산은 체계적으로 과대추정된 값을 선택하게 된다. 이 문제는 Double DQN에서 해결된다.

DQN 구현 상세

1) 하이퍼파라미터 설정

환경별로 epsilon 감소율을 다르게 설정하였다. 특히 MountainCar는 희소 보상 환경이므로 더 느린 감소율을 적용하여 충분한 탐험이 이루어지도록 하였다.

하이퍼파라미터 선택 근거

  • 감가율 0.98: CartPole의 최대 스텝이 500이므로, γ^500 ≈ 0.00004로 충분히 먼 미래까지 고려
  • 학습률 0.001: Adam 옵티마이저의 기본값, 안정적인 수렴 확인
  • 배치 크기 256: GPU 메모리 활용과 그래디언트 분산 감소의 균형
  • 버퍼 크기 100000: 충분한 경험 다양성 확보

2) 행동 선택 메서드 (get_action)

ε-greedy 정책을 구현하였다. 확률 ε로 랜덤 행동, 1-ε로 현재 Q값이 최대인 행동 선택.

MountainCar 휴리스틱 탐험

MountainCar 환경에서 단순 랜덤 탐험은 비효율적이다. 차가 골짜기 바닥에서 랜덤하게 움직이면 모멘텀을 축적하지 못하고 제자리를 맴돈다. 이를 해결하기 위해 속도 방향에 따라 가속하는 휴리스틱을 추가하였다:

  • 오른쪽으로 움직이면 오른쪽 가속 → 오른쪽 언덕 오르기
  • 왼쪽으로 움직이면 왼쪽 가속 → 왼쪽 언덕에서 모멘텀 축적
  • 정지 상태면 왼쪽 또는 오른쪽 가속 (정지는 비효율적)

이 휴리스틱은 스윙 동작을 자연스럽게 유도하여 목표 도달 확률을 높인다.

3) 학습 메서드 (train)

타겟 계산에서 를 사용하는 기본 DQN 방식을 구현하였다.

학습 과정 상세 분석

  1. 샘플링: 버퍼에서 256개 경험을 무작위 추출. 시간적 상관관계를 깨뜨림.

  2. 타겟 계산: 타겟 네트워크로 다음 상태의 최대 Q값 계산. 로 그래디언트 차단하여 타겟 안정화.

  3. TD 오류: Q(s,a) - target. 예측값과 타겟의 차이를 최소화.

  4. 역전파: 온라인 네트워크만 업데이트. 타겟 네트워크는 주기적으로 복사.

4) 타겟 네트워크 업데이트

매 에포크 종료 시 타겟 네트워크를 온라인 네트워크로 교체하였다. Hard update 방식을 사용하였으며, soft update (θ⁻ ← τθ + (1-τ)θ⁻)도 테스트했으나 성능 차이가 미미하여 구현 단순성을 위해 hard update를 채택하였다.


DQN 실험 결과

CartPole-v1 결과

DQN CartPole Score & Exploration

DQN CartPole Training Dynamics

DQN CartPole Raw Scores

DQN CartPole Metrics

DQN은 CartPole-v1에서 적절한 학습 절차에도 불구하고 심각한 성능 저하를 보였다. Figure 1은 epsilon이 1.0에서 0.0067로 적절히 감소했지만, 누적 성공률이 12%에 머물렀음을 보여준다.

점수 분포를 분석하면 흥미로운 패턴이 발견된다. 점수가 150 미만(실패)이거나 500(완벽한 성공) 둘 중 하나로 이분화되어 있다. 이는 "전부 아니면 전무(all-or-nothing)" 행동을 나타내며, 정책이 균형점 근처에서 취약하여 한 번 불안정해지면 바로 실패하는 것을 의미한다. 중간 점수(예: 300)가 거의 없다는 것은 정책이 점진적으로 개선되지 않고 운에 따라 성공하거나 실패함을 시사한다.

Figure 2는 Q값이 γ=0.98을 사용한 이론적 기대치와 일치하는 약 51에서 수렴함을 보여준다. CartPole에서 최대 500 스텝 동안 매 스텝 +1 보상을 받으므로, 이론적 Q값은 다음과 같다:

Q값이 51로 수렴한 것은 가치 추정 자체는 올바르게 학습되고 있음을 의미한다.

그러나 후반 에포크에서 상승하는 TD 오류는 vanilla DQN 특유의 과대추정 바이어스(overestimation bias)를 나타낸다. max 연산자가 노이즈가 있는 Q값 중 최대값을 선택하면서 Q값이 실제보다 부풀려지고, 이것이 다시 타겟에 반영되어 악순환이 발생한다.

훈련 손실은 에포크 300 이후에도 지속적인 진동과 함께 비단조적 행동을 보인다. 이는 에이전트가 최적 정책에 수렴하지 못하고 차선의 지역 최소값(local minimum)에 갇혀 있음을 시사한다.

Figure 3은 최종 에포크에서도 지속적인 점수 변동성을 보여준다. 에이전트는 최적 성능의 35.6%(178.13/500)만 달성하였다. Figure 4의 높은 분산(σ=148.55)은 정책 불안정성을 정량적으로 확인해준다. 에이전트가 산발적으로 성공하는 법을 배웠지만 일관된 성능을 유지하지 못함을 보여준다.

Acrobot-v1 결과

DQN Acrobot Score & Exploration

DQN Acrobot Training Dynamics

DQN Acrobot Raw Scores

DQN Acrobot Metrics

DQN은 Acrobot-v1에서 CartPole 결과와 극명하게 대조되는 뛰어난 성능을 보였다. Figure 5는 보수적인 epsilon 감소(1.0→0.3681, 비율 0.999)가 복잡한 진자 역학의 철저한 탐험을 가능케 했음을 보여준다.

수렴은 놀랍게도 에포크 40에 빠르게 발생하였으며, 누적 성공률이 99%에 도달하였다. 6차원 상태 공간과 복잡한 스윙 동역학에도 불구하고 DQN이 빠르게 최적 정책을 학습하였다.

점수 분포는 초기 약 -500의 실패(500 스텝 내내 -1 보상)에서 최적 범위 -100 근처의 집중된 성능으로 극적으로 변화하였다. 이는 에이전트가 효율적인 스윙 전략을 학습하여 약 100 스텝 내에 목표에 도달함을 의미한다.

Figure 6은 에포크 200 근처에서 손실 급증과 함께 초기 훈련 불안정성을 보여주지만, 이후 견고한 수렴이 뒤따른다. Q값은 예측과 타겟 추정치 간의 완벽한 정렬과 함께 -24.13에서 안정화되어 안정적인 가치 함수 학습을 확인하였다.

예외적으로 낮은 TD 오류(0.0009)는 과대추정 바이어스의 부재를 보여준다. 이는 CartPole에서 관찰된 과대추정 문제가 환경 특성에 따라 다르게 나타남을 시사한다. Acrobot의 밀집된 음의 보상 구조가 안정적인 학습을 유도한 것으로 분석된다.

Figure 7은 150 에포크 내에 빠른 개선을 보여주며, 에피소드 길이가 500에서 60-100 스텝으로 효율적으로 감소하면서 높은 점수를 유지하였다. Figure 8의 최종 메트릭은 뛰어난 성능을 정량화한다: 평균 점수 -76.41은 344.48점 개선을 나타내며, 환경 특성이 알고리즘 강점과 일치할 때 DQN의 효과를 검증하였다.

MountainCar-v0 결과

DQN MountainCar Score & Exploration

DQN MountainCar Training Dynamics

DQN MountainCar Raw Scores

DQN MountainCar Metrics

MountainCar-v0는 희소 보상 환경에서의 근본적인 DQN 한계를 드러낸다. Figure 9는 희소 보상 도전에 대응하기 위한 가장 보수적인 탐험 전략(epsilon: 1.0→0.6068, 비율 0.9995)을 보여주지만, 누적 성공률은 30%에 머물렀다.

-200과 -110 주변에 클러스터된 이분법적 점수 분포가 관찰된다. -200은 200 스텝 내내 목표에 도달하지 못한 완전 실패를 의미하고, -110 근처는 목표 도달 성공을 의미한다. 이는 올바른 모멘텀 구축 전략의 간헐적 발견은 있지만 일관된 재현은 없음을 나타낸다.

Figure 10은 낮은 손실(약 0.02)이 근본적인 학습 어려움을 가리는 역설적 훈련 안정성을 보여준다. Q값은 예측-타겟 정렬이 완벽한 상태에서 일관되게 낮게(-31.92) 유지되어, 의미 있는 진전 없는 알고리즘적 안정성을 확인하였다.

이는 희소 보상 설정에서의 vanilla DQN의 치명적 한계를 보여준다: 작업 해결책 발견 없는 수치적 수렴. 네트워크는 "골짜기 바닥에서 제자리를 맴도는 것"이 최선이라고 잘못 학습하고, 이 잘못된 정책이 낮은 TD 오류로 안정화되어 개선되지 않는다.

Figure 11은 해당 목표 달성 없이 에피소드 길이의 점진적 개선을 보여주며, 모멘텀 구축 실패와 부분 성공 사이를 오가는 에이전트를 드러낸다. Figure 12의 최종 메트릭은 제한된 성공을 정량화한다: 46% 성공률과 겸손한 72.07점 개선은 하이퍼파라미터 튜닝만으로는 희소 보상 병리를 극복할 수 없는 알고리즘의 무능력을 보여준다.

DQN 종합 분석

세 환경은 vanilla DQN의 구별되는 실패 모드와 능력을 드러낸다.

CartPole의 저조한 성능(12% 성공률)은 과대추정 바이어스에서 비롯된다. 연산자가 체계적으로 Q값을 부풀려 차선의 정책 업데이트와 정책 취약성을 초래한다. 단일 네트워크 아키텍처는 추정 오류를 증폭하는 피드백 루프를 생성하여 수치적 수렴에도 불구하고 높은 분산 실행을 초래한다.

Acrobot의 예외적 성능(99% 성공률)은 복잡성이 아닌 환경 특성이 알고리즘 성능을 결정함을 보여준다. 밀집된 음의 피드백 구조가 안정적인 Q-learning 업데이트를 가능케 하고, 결정론적 역학이 불안정화하는 확률적 효과를 줄인다. 이 환경은 DQN의 알고리즘적 가정과 잘 맞아떨어진다.

MountainCar의 실패(46% 성공률)는 희소 보상 병리를 나타내며, TD 학습이 지연된 결과와 장기 의존성으로 어려움을 겪는다. 환경은 DQN의 마르코프 행동 선택 프레임워크를 초과하는 궤적 수준 계획과 모멘텀 조정을 요구한다. 균일한 경험 리플레이가 풍부한 실패 중에서 드문 성공 경험을 희석하여 효과적인 정책 개선을 방해한다.

이러한 결과는 CartPole에서 관찰된 과대추정 바이어스를 특히 해결하기 위한 Double DQN 구현의 동기를 제공한다. 그러나 MountainCar의 근본적인 희소 보상 도전은 Double DQN의 아키텍처 개선을 넘어서는 더 정교한 접근법이 필요함을 시사한다.


4. Double DQN 구현

Double DQN이란?

Double DQN은 2016년 van Hasselt 등이 제안한 알고리즘으로, DQN의 Q값 과대추정 문제를 해결한다. 이 문제의 원인과 해결책을 수학적으로 분석하였다.

과대추정 문제의 수학적 분석

DQN의 타겟 계산:

문제는 max 연산자에 있다. Q값 추정이 실제 값에 균일 분포 노이즈 ε를 가진다고 가정하면:

max 연산의 기대값:

Jensen's inequality에 의해 max의 기대값은 기대값의 max보다 크거나 같다. 따라서 노이즈가 평균 0이어도 max 연산은 과대추정을 유발한다.

Double DQN의 해결책

핵심 아이디어는 행동 선택과 행동 평가를 분리하는 것이다:

DQN의 타겟:

→ 같은 네트워크(θ⁻)가 행동 선택과 평가 모두 담당

Double DQN의 타겟:

→ 온라인 네트워크(θ)가 행동 선택, 타겟 네트워크(θ⁻)가 평가

이렇게 분리하면 같은 노이즈가 선택과 평가에 동시에 영향을 미치지 않아 과대추정이 감소한다.

Double DQN 구현 상세

학습 메서드 수정

온라인 네트워크로 행동을 선택하고, 타겟 네트워크로 해당 행동의 Q값을 평가하도록 train 메서드를 수정하였다.

핵심 변경점 분석

DQN과의 차이점은 단 두 줄이다:

가 핵심이다. 온라인 네트워크가 선택한 행동 인덱스를 타겟 네트워크의 Q값에서 추출한다.


Double DQN 실험 결과

CartPole-v1 결과

Double DQN CartPole Score & Overestimation

Double DQN CartPole Training Dynamics

Double DQN CartPole Raw Scores

Double DQN CartPole Metrics

Double DQN은 CartPole-v1에서 주로 효과적인 과대추정 바이어스 감소를 통해 vanilla DQN보다 측정 가능한 개선을 보여준다. Figure 13은 핵심 과대추정 추세가 0.447에서 거의 0으로 감소함을 보여주며, 알고리즘의 핵심 이론적 이점을 검증하였다.

과대추정 감소 메커니즘이 실제로 작동함을 수치적으로 확인한 것은 의미 있는 결과이다. DQN에서 Q_pred - Q_target 값이 양수로 누적되는 경향이 있었다면, Double DQN에서는 0 근처에서 안정화된다.

그러나 이 개선은 지연된 수렴(에포크 290 vs vanilla DQN의 100)과 함께 발생하였다. 더 보수적인 가치 추정이 초기 탐험 단계에서 학습을 늦추는 트레이드오프가 존재한다. 낙관적 Q값이 없으면 에이전트가 새로운 행동을 시도할 동기가 줄어든다.

최종 평균 점수는 219.38(최적의 43.9%)로 개선되어 vanilla DQN보다 23% 성능 향상을 나타내지만, 성공률은 27%로 여전히 차선이다.

Figure 14는 예측과 타겟 Q값이 약 49.5에서 긴밀하게 수렴하는 더 안정적인 훈련 역학을 보여주며, 과대추정 아티팩트 감소를 입증하였다. 훈련 손실은 vanilla DQN에 비해 더 적은 변동성으로 약 0.22에서 안정화되었다.

Figure 15는 갑작스러운 성능 붕괴가 적은 개선된 학습 패턴을 보여주지만, 훈련 전반에 걸쳐 진동 행동이 지속된다. Figure 16에 표시된 과대추정 바이어스 제거에도 불구하고, 높은 점수 분산(σ=181.27)은 근본적인 정책 안정성 문제가 해결되지 않았음을 나타낸다.

이는 중요한 발견이다. 과대추정 바이어스가 CartPole에서 vanilla DQN 한계의 한 구성 요소에 불과하며, 다른 요인(예: 정책 그래디언트의 높은 분산, 네트워크 용량 한계)도 성능에 영향을 미침을 확인하였다.

Acrobot-v1 결과

Double DQN Acrobot Exploration & Score

Double DQN Acrobot Training & Overestimation

Double DQN Acrobot Raw Scores

Double DQN Acrobot Metrics

Double DQN은 Acrobot-v1에서 vanilla DQN에 비해 향상된 안정성을 제공하면서 뛰어난 성능을 유지하였다. Figure 17은 에포크 29에 95% 성공률로 빠른 수렴을 보여주며, 적합한 보상 구조를 가진 환경에서 알고리즘의 효과를 유지함을 확인하였다.

과대추정 추세는 초기 바이어스 약 0.2가 0 근처에서 안정화되어, vanilla DQN이 이미 잘 수행된 환경에서도 Double DQN의 이론적 이점을 확인하였다. DQN이 99% 성공률을 달성했음에도 과대추정이 존재했다는 것은 흥미로운 발견이다. 이 환경에서는 과대추정이 성능에 큰 영향을 미치지 않았지만, Double DQN이 이를 감소시킨 것은 확인되었다.

Figure 18은 Q값이 -25.95로 수렴하고 예외적으로 낮은 TD 오류(-0.0031)를 가진 안정적인 훈련 역학을 보여준다. 과대추정 제어 메커니즘은 vanilla DQN을 이 환경에서 성공적으로 만든 빠른 학습 특성을 손상시키지 않고 효과적으로 작동하였다.

Figure 19는 150 에포크 내의 특징적인 빠른 개선 패턴을 보여주며, 훈련 전반에 걸쳐 효율적인 에피소드 완료가 유지되었다. Figure 20의 최종 메트릭은 vanilla DQN과 거의 동일한 성능(-75.98 vs -76.41)을 보여주지만 향상된 안정성(점수 표준편차: 12.11 vs 43.5)을 가지며, Double DQN이 견고성을 추가하면서 알고리즘 강점을 보존함을 확인하였다.

MountainCar-v0 결과

Double DQN MountainCar Score & Exploration

Double DQN MountainCar Training Dynamics

Double DQN MountainCar Raw Scores

Double DQN MountainCar Metrics

Double DQN은 MountainCar-v0에서 미미한 개선을 보이지만 근본적인 희소 보상 병리를 극복하지 못하였다. 더 놀라운 것은 DQN보다 오히려 성능이 악화되었다는 점이다.

Figure 21은 에포크 49에서 늦은 수렴과 함께 감소된 성공률(21% vs vanilla DQN의 46%)을 보여준다. 이는 Double DQN의 핵심 한계를 드러낸다: 더 보수적인 가치 추정이 희소 보상 환경에서 탐험을 방해한다.

희소 보상 환경에서 에이전트는 우연히 목표에 도달해야 의미 있는 학습 신호를 받는다. DQN의 낙관적 Q값 추정은 "시도해볼 만하다"는 동기를 부여하여 탐험을 촉진한다. 반면 Double DQN의 보수적 추정은 "시도해봤자 별로다"라는 신호를 주어 탐험을 억제한다.

최종 점수 -143.14는 vanilla DQN(-114.21)보다 나쁜 성능을 나타내며, 과대추정 바이어스가 주요 병목이 아닐 때 알고리즘의 한계를 확인하였다.

Figure 22는 상당히 높은 손실 값과 극단적인 값에 도달하는 불안정한 Q값 추정치(>600)를 가진 문제적 훈련 역학을 보여주며, 희소 보상 설정에서의 알고리즘적 어려움을 나타낸다. 과대추정 감소 메커니즘은 드문 성공 궤적을 발견하기 위해 낙관적 탐험이 필요한 환경에서 역효과로 보인다.

Figure 23은 vanilla DQN에 비해 악화된 성능 패턴을 보여주며, 훈련 전반에 걸쳐 더 불규칙한 점수 진동이 있다. Figure 24의 메트릭은 여러 차원에서 열등한 성능을 확인하며, 환경이 희소 보상 도전을 극복하기 위해 공격적인 탐험을 요구할 때 Double DQN의 보수적 접근이 학습을 방해할 수 있음을 입증하였다.

Double DQN 종합 분석

세 환경에 걸친 Double DQN 결과는 환경 의존적 알고리즘 효과를 드러내며 심층 강화학습 설계 원칙에 대한 중요한 통찰을 제공한다.

CartPole-v1은 과대추정 바이어스 감소로부터 명확하지만 제한된 이점을 보여주며, 23% 성능 향상으로 이론적 프레임워크를 검증하면서 보완 솔루션이 필요한 추가적인 안정성 도전을 드러낸다. 바이어스 수정에도 불구하고 지속되는 높은 분산은 정책 취약성이 과대추정만이 아닌 여러 알고리즘적 한계에서 비롯됨을 시사한다.

Acrobot-v1은 학습 효율성을 희생하지 않고 이미 성공적인 성능을 향상된 안정성으로 강화하는 Double DQN의 능력을 보여준다. 알고리즘은 점수 분산을 3배 감소시키면서 95% 성공률을 유지하며, vanilla DQN이 수용 가능한 성능을 달성하는 환경에서도 과대추정 바이어스 감소가 의미 있는 이점을 제공함을 입증하였다.

MountainCar-v0는 낙관적 가치 추정이 필요한 탐험을 촉진하는 희소 보상 환경에서 과대추정 바이어스 감소가 역효과일 수 있다는 치명적 한계를 드러낸다. 악화된 성능(21% vs 46% 성공률)은 알고리즘 수정이 환경 요구 사항과 일치해야 하며, 보수적 가치 추정이 드문 성공 궤적의 발견을 방해할 수 있음을 확인하였다.

이 결과는 "Double DQN이 항상 DQN보다 좋다"는 일반적 인식에 반하는 중요한 발견이다.


5. PER (Prioritized Experience Replay) 구현

PER이란?

PER(Prioritized Experience Replay)은 2016년 Schaul 등이 제안한 기법으로, TD 오류가 큰 경험에 높은 우선순위를 부여하여 중요한 전이(transition)에서 더 자주 학습하도록 한다.

균일 샘플링의 문제

기본 DQN의 Experience Replay는 버퍼에서 균일하게 샘플링한다:

문제점:

  • 드문 성공 경험이 풍부한 실패 경험 사이에서 희석됨
  • 이미 잘 학습된 경험과 아직 학습이 필요한 경험을 동등하게 취급
  • 학습 효율성 저하

우선순위 기반 샘플링

TD 오류 δ가 크다는 것은 "예측이 많이 틀렸다" = "아직 학습이 필요하다"를 의미한다. PER은 이를 활용:

  • α=0: 균일 샘플링 (기본 Experience Replay)
  • α=1: 완전 우선순위 샘플링

Importance Sampling 보정

우선순위 샘플링은 분포를 왜곡하므로 편향이 발생한다. 이를 보정하기 위해 Importance Sampling 가중치를 사용:

  • β=0: 보정 없음
  • β=1: 완전 보정

β는 학습 초기에 낮게 시작하여 점진적으로 1로 증가시킨다. 초기에는 빠른 학습이 중요하고, 후기에는 수렴의 정확성이 중요하기 때문이다.

PER 구현 상세

1) 우선순위 리플레이 버퍼 구현

구현 결정 사항

왜 새 경험에 최대 우선순위를 할당하는가? 새 경험은 아직 학습에 사용되지 않았으므로 TD 오류를 알 수 없다. 보수적으로 최대 우선순위를 할당하여 적어도 한 번은 샘플링되도록 보장한다.

우선순위 상한(1000.0)을 설정하는 이유? 극단적으로 큰 TD 오류가 발생하면 해당 경험만 반복 샘플링되어 학습이 편향될 수 있다. 상한을 설정하여 다양성을 유지한다.

β 스케줄링 전략 초기 β=0.4에서 시작하여 점진적으로 1.0으로 증가한다. 학습 초기에는 빠른 학습을 위해 우선순위 샘플링의 편향을 허용하고, 후기에는 수렴의 정확성을 위해 완전 보정한다.

2) 환경별 하이퍼파라미터 조정

각 환경의 특성에 맞게 PER 파라미터를 조정하였다.

환경별 조정 근거

  • MountainCar (α=0.7): 희소 보상 환경에서 드문 성공 경험의 중요성이 크므로 높은 우선순위 차별화 필요
  • CartPole (α=0.6): 중간 수준의 차별화로 밸런스 유지
  • Acrobot (α=0.5): 밀집 보상 환경에서 모든 경험이 비교적 중요하므로 낮은 차별화

3) 학습 메서드 수정

IS 가중치를 손실에 적용하고, 학습 후 우선순위를 업데이트하도록 수정하였다.

IS 가중치 적용 방식

으로 개별 손실을 유지한 후 가중치를 곱한다:

자주 샘플링되는 경험(높은 P(i))은 낮은 가중치를 받아 그래디언트 기여도가 줄어든다. 이로써 우선순위 샘플링의 편향을 보정한다.


PER 실험 결과

CartPole-v1 결과

PER CartPole Score & Exploration

PER CartPole Training Dynamics

PER CartPole Raw Scores

PER CartPole Metrics

PER은 CartPole-v1에서 모든 테스트된 알고리즘 중 최고 성능을 달성하였다. 최종 평균 점수 256.73(최적의 51.3%)38% 성공률을 보여준다.

Figure 25는 에포크 156에서 지연되었지만 더 안정적인 수렴을 보여주며, 25% 누적 성공률에 도달하는 개선된 학습 진행을 보여준다. 우선순위 샘플링 메커니즘은 높은 TD 오류를 가진 전이(실패에서 회복하거나 성공으로 이어지는 중요 순간)에 효과적으로 학습을 집중시켰다.

CartPole에서 균일 샘플링의 문제는 500 스텝 성공 에피소드와 50 스텝 실패 에피소드가 동등하게 취급되는 것이다. 성공 에피소드의 경험이 10배 많지만, 실패 직전의 경험(높은 TD 오류)이 학습에 더 중요하다. PER은 이 "실패 직전" 경험을 효과적으로 재사용한다.

Figure 26은 Q값이 약 48.80 주변에서 수렴하는 안정적인 훈련 역학을 보여준다. TD 오류 진화는 vanilla DQN에 비해 더 일관된 패턴을 보여 개선된 가치 함수 근사를 나타낸다.

Figure 27은 더 적은 치명적 성능 하락과 더 지속적인 고성능 에피소드를 가진 특징적인 학습 진행을 보여준다. 남아있는 점수 분산(σ=200.18)에도 불구하고, 상당한 성능 개선은 경험 리플레이 비효율성을 해결하는 PER의 효과를 검증하였다.

알고리즘 비교: - DQN: 178.13점 (35.6%) - Double DQN: 219.38점 (43.9%) - PER: 256.73점 (51.3%)

Acrobot-v1 결과

PER Acrobot Exploration & Score

PER Acrobot Training Dynamics

PER Acrobot Raw Scores

PER Acrobot Metrics

PER은 Acrobot-v1에서 이전 알고리즘들에 비해 향상된 안정성을 제공하면서 뛰어난 성능을 유지하였다. Figure 29는 에포크 55에 93% 성공률로 빠른 수렴을 보여주며, 적합한 보상 구조를 가진 환경에서 우선순위 샘플링이 알고리즘의 효과를 보존함을 확인하였다.

최종 점수 -77.89는 훈련 전반에 걸쳐 향상된 일관성과 함께 최적 수준 성능을 나타낸다. Acrobot에서 PER의 이점은 "스윙 타이밍"을 학습하는 중요 순간에 집중하는 것이다. 진자가 최고점에 도달하는 순간의 경험은 TD 오류가 크고, 이를 반복 학습함으로써 효율적인 스윙 정책을 습득한다.

Figure 30은 최소한의 진동과 약 -23.72 주변의 일관된 가치 함수 수렴을 가진 안정적인 훈련 역학을 보여준다. 우선순위 리플레이 메커니즘은 훈련 분산을 줄이면서 빠른 학습 특성을 유지하였다.

Figure 31은 200 에포크 내의 예상되는 빠른 개선 패턴을 보여주며, 훈련 전반에 걸쳐 효율적인 에피소드 완료가 유지되었다. Figure 32의 우수한 점수 안정성(표준편차: 13.76)은 핵심 성능을 손상시키지 않고 이미 성공적인 알고리즘을 향상시키는 PER의 능력을 확인하였다.

MountainCar-v0 결과

PER MountainCar Score & Exploration

PER MountainCar Training Dynamics

PER MountainCar Raw Scores

PER MountainCar Metrics

PER은 MountainCar-v0에서 Double DQN보다 개선되었지만 근본적인 희소 보상 병리를 극복하지 못하였다. 최종 점수 -136.27과 함께 44% 성공률을 달성하여 vanilla DQN(46%)에 근접하였다.

Figure 33은 에포크 29에서 조기 수렴을 보여주지만 전반적인 진행은 제한적이다. 우선순위 샘플링이 드문 성공 경험을 식별하고 재사용하는 데 도움이 되지만, 근본적인 문제는 해결하지 못한다: 성공 경험 자체가 너무 드물다.

MountainCar에서 에이전트가 우연히 목표에 도달하면 그 경험은 높은 TD 오류를 가지고 PER에 의해 반복 샘플링된다. 그러나 단일 성공 궤적만으로는 일반화된 "스윙" 전략을 학습하기 어렵다. 다양한 초기 조건에서의 성공 경험이 필요한데, 이를 수집하는 것 자체가 희소 보상 환경의 도전이다.

Figure 34는 극도로 높은 Q값(>100,000)과 대규모 TD 오류(>10,000)를 가진 우려스러운 훈련 불안정성을 보여준다. 이는 PER의 한계를 드러낸다: 희소 보상 설정에서 드문 성공 경험의 반복 학습이 Q값 폭발을 유발할 수 있다.

드문 성공 경험이 극단적으로 높은 우선순위를 받아 반복 샘플링되면, Q값이 비현실적으로 높아지고, 이 높은 Q값이 다시 TD 오류를 키우는 악순환이 발생한다. α 파라미터 튜닝으로 완화할 수 있지만, 근본적 해결은 아니다.

Figure 35는 이전 알고리즘들과 유사한 불규칙한 성능 패턴을 보여주며, 근본적인 탐험-활용 도전이 해결되지 않았음을 확인하였다. Figure 36의 메트릭은 PER이 중요한 전이를 식별할 수 있지만, MountainCar에서 일관된 모멘텀 구축 전략에 필요한 구조화된 탐험을 생성할 수 없음을 보여준다.

PER 종합 분석

PER 구현은 경험 리플레이 전략과 환경 특성 간의 관계에 대한 가치 있는 통찰을 제공한다.

CartPole-v1에서 PER은 모든 테스트된 알고리즘 중 최고 성능(최적의 51.3% vs Double DQN의 43.9%, vanilla DQN의 35.6%)을 달성하며, 중요 전이가 드물지만 학습 가능한 환경에서 우선순위 샘플링의 이론적 이점을 검증하였다. 개선된 성공률(38% vs Double DQN의 27%)은 고오류 전이에 집중하는 것이 희소한 성공 경험을 가진 환경에서 학습 효율성을 크게 향상시킬 수 있음을 확인하였다.

Acrobot-v1 결과는 불안정성을 도입하지 않고 이미 성공적인 알고리즘을 향상시키는 PER의 능력을 확인하며, 점수 일관성을 개선하면서 93% 성공률을 유지하였다.

그러나 MountainCar-v0는 진정으로 희소한 보상 환경에서 PER의 한계를 드러내며, 큰 예측 오류의 증폭이 학습을 개선하기보다 훈련을 불안정화시킬 수 있다. 극단적인 Q값 인플레이션과 훈련 불안정성은 우선순위 샘플링이 신중한 튜닝을 요구하며 불충분한 학습 신호 밀도를 제공하는 환경과 결합될 때 역효과일 수 있음을 확인하였다.


6. 종합 결과 및 분석

성능 비교표

환경 메트릭 DQN Double DQN PER
CartPole-v1 성공률 12% 27% (+125%) 38% (+217%)
평균 점수 178.13 219.38 256.73
표준편차 148.55 181.27 200.18
Acrobot-v1 성공률 99% 95% 93%
평균 점수 -76.41 -75.98 -77.89
표준편차 43.5 12.11 13.76
MountainCar-v0 성공률 46% 21% 44%
평균 점수 -114.21 -143.14 -136.27

핵심 발견사항

1. 환경 특성이 알고리즘 성능을 결정한다

가장 중요한 발견은 상태 공간의 복잡성이 아닌 보상 구조가 알고리즘 성능을 결정한다는 것이다.

  • Acrobot (6차원): DQN 99% 성공 - 복잡하지만 밀집 보상
  • MountainCar (2차원): DQN 46% 성공 - 단순하지만 희소 보상

이는 알고리즘 선택 시 환경의 보상 구조 분석이 선행되어야 함을 시사한다. 논문에서 보고된 알고리즘 성능을 그대로 기대하기보다, 자신의 문제 환경 특성을 먼저 파악해야 한다.

2. Q값 과대추정 해결만으로는 부족하다

CartPole에서 Double DQN이 과대추정을 0으로 줄였지만, 성공률은 27%에 불과하였다. 이는 정책 취약성의 원인이 다양하며, 과대추정은 그 중 하나에 불과함을 확인하였다.

다른 잠재적 원인:

  • 정책 그래디언트의 높은 분산
  • 네트워크 용량 한계
  • 탐험-활용 밸런스 부적절

3. 보수적 가치 추정은 양날의 검이다

MountainCar에서 Double DQN은 DQN보다 오히려 악화(21% vs 46%)되었다. 이는 직관에 반하는 결과이다.

메커니즘: 희소 보상 환경에서 에이전트는 우연히 목표에 도달해야 의미 있는 학습 신호를 받는다. DQN의 낙관적 Q값 추정은 "시도해볼 만하다"는 동기를 부여하여 탐험을 촉진한다. Double DQN의 보수적 추정은 이 탐험 동기를 억제한다.

시사점: 알고리즘 수정이 환경 요구 사항과 일치해야 한다. 희소 보상 환경에서는 낙관적 탐험이 필요할 수 있다.

4. PER은 점진적 개선이지 근본적 해결이 아니다

CartPole에서 최고 성능(38%)을 달성했지만, MountainCar의 근본적 문제는 해결하지 못하였다.

PER의 전제: 중요한 경험이 버퍼에 존재하고, TD 오류로 식별 가능해야 한다.

MountainCar의 문제: 성공 경험 자체가 너무 드물어 PER이 우선순위를 부여할 대상이 없다.

희소 보상 환경에서는 intrinsic motivation (curiosity-driven learning), hierarchical RL, model-based 접근 등 더 근본적인 해결책이 필요하다.

5. 환경 분석이 알고리즘 선택에 선행되어야 한다

이론적 우월성보다 환경의 보상 구조와 알고리즘 가정의 일치가 중요하다.

실용적 가이드라인: - 밀집 보상 환경: DQN으로 충분, Double DQN/PER은 안정성 향상 - 희소 보상 환경: DQN 기반 방법론의 한계 인식, 대안 탐색 필요 - 중간 환경 (CartPole): PER > Double DQN > DQN 순으로 개선


7. 결론 및 향후 연구

프로젝트 결론

이번 프로젝트를 통해 DQN, Double DQN, PER 세 가지 알고리즘의 특성과 한계를 직접 구현하고 실험하여 확인하였다.

주요 발견사항

  1. DQN은 밀집 보상 환경(Acrobot)에서 뛰어난 성능을 보이지만, 과대추정 바이어스로 인해 일부 환경에서 불안정함

  2. Double DQN은 과대추정 문제를 효과적으로 해결하지만, 희소 보상 환경에서는 오히려 성능이 악화될 수 있음

  3. PER은 중요 전이에 집중하여 학습 효율을 높이지만, 희소 보상의 근본적 문제는 해결하지 못함

  4. "Double DQN이 항상 DQN보다 좋다"는 일반적 인식과 달리, 환경에 따라 역효과가 날 수 있음을 실험으로 확인

  5. 알고리즘 선택 시 환경의 보상 구조 분석이 선행되어야 함

학습 경험

논문을 읽고 알고리즘을 이해하는 것과 직접 구현하는 것은 다른 경험이다. 구현 과정에서 논문에서 다루지 않는 세부 결정(하이퍼파라미터, 수치 안정성, 환경별 조정)의 중요성을 체감하였다.

향후 연구 방향

1. 희소 보상 환경 개선

MountainCar에서 확인된 희소 보상 문제를 해결하기 위한 방법론:

Intrinsic Motivation (Curiosity-Driven Learning) - 외부 보상 외에 "새로운 상태 탐험" 자체에 내재적 보상 부여 - ICM (Intrinsic Curiosity Module), RND (Random Network Distillation) 등

Reward Shaping - 목표까지의 거리, 속도 등을 기반으로 중간 보상 설계 - 주의: 잘못된 shaping은 원래 문제와 다른 해를 유도할 수 있음

Hierarchical RL - 고수준 목표("왼쪽 언덕 오르기")와 저수준 행동("가속") 분리 - Option framework, Feudal Networks 등

2. 알고리즘 확장

Dueling DQN - Q(s,a) = V(s) + A(s,a)로 분리 - 상태 가치와 행동 우위를 별도로 학습

Noisy DQN - ε-greedy 대신 네트워크 파라미터에 노이즈 추가 - 파라미터 공간에서의 탐험

Distributional RL (C51, QR-DQN) - Q값의 기대값 대신 분포 전체를 학습 - 불확실성 정보 활용

3. 실제 문제 적용

구현한 알고리즘을 더 복잡한 환경에 적용:

  • Atari 게임: 원논문의 벤치마크 재현
  • 로봇 제어: 연속 행동 공간으로 확장 (DDPG, SAC)
  • 멀티에이전트: 협력/경쟁 환경

참고 문헌

  1. Mnih, V., Kavukcuoglu, K., Silver, D., Rusu, A. A., Veness, J., Bellemare, M. G., ... & Hassabis, D. (2015). "Human-level control through deep reinforcement learning." Nature, 518(7540), 529-533.

  2. van Hasselt, H., Guez, A., & Silver, D. (2016). "Deep Reinforcement Learning with Double Q-learning." Proceedings of the AAAI Conference on Artificial Intelligence, 30(1).

  3. Schaul, T., Quan, J., Antonoglou, I., & Silver, D. (2016). "Prioritized Experience Replay." International Conference on Learning Representations (ICLR).

  4. Wang, Z., Schaul, T., Hessel, M., Hasselt, H., Lanctot, M., & Freitas, N. (2016). "Dueling Network Architectures for Deep Reinforcement Learning." International Conference on Machine Learning (ICML).

  5. Sutton, R. S., & Barto, A. G. (2018). "Reinforcement Learning: An Introduction (2nd ed.)." MIT Press.

  6. OpenAI Gymnasium Documentation: https://gymnasium.farama.org/


부록: 코드 저장소

전체 구현 코드는 Jupyter Notebook으로 정리되어 있다. 각 알고리즘의 하이퍼파라미터, 실험 재현 방법, 결과 시각화 코드가 포함되어 있다.

비슷한 글 추천

Comments (0)

No comments yet. Be the first to comment!