DQN(Deep Q-Network)과 Double DQN의 차이점
1. DQN(Deep Q-Network)이란?
DQN은 강화 학습의 Q-learning을 신경망을 사용하여 근사한 방식입니다.
DQN 업데이트 수식
$$ Y^{DQN}_t = r_t + \gamma \max_{a'} Q(s_{t+1}, a'; \theta^-) $$
여기서:
- \(\theta^-\) : 타겟 네트워크의 가중치
- \(Q(s_{t+1}, a'; \theta^-)\) : 다음 상태 \(s_{t+1}\)에서 각 행동 \(a'\)에 대한 Q-value
- \(\max_{a'} Q(s_{t+1}, a'; \theta^-)\) : 가장 큰 Q-value 선택
DQN의 문제점: Q-value의 과대평가
DQN은 최대 Q-value를 직접 사용하기 때문에 일부 행동의 Q-value가 과대평가될 수 있습니다.
2. Double DQN(Double Deep Q-Network)이란?
Double DQN(DDQN)은 DQN의 Q-value 과대평가 문제를 해결하기 위해 제안되었습니다.
Double DQN 업데이트 수식
$$ Y^{DDQN}_t = r_t + \gamma Q(s_{t+1}, \arg\max_{a'} Q(s_{t+1}, a'; \theta); \theta^-) $$
DDQN은 다음과 같은 방식으로 개선됩니다:
- **현재 네트워크(\(\theta\))**에서 최적의 행동(\(\arg\max\))을 선택
- **타겟 네트워크(\(\theta^-\))**에서 해당 행동의 Q-value를 평가
3. 예제 비교 (Grid World 환경)
예를 들어, 현재 상태에서 Q-value가 다음과 같다고 가정해 보겠습니다.
$$ Q(s, \text{up}) = 5.2, \quad Q(s, \text{right}) = 5.0 $$
DQN은 \(\max\)를 사용하여 "up"을 선택하지만, 실제로는 잘못된 값일 가능성이 있습니다.
반면, Double DQN은:
- 현재 네트워크(\(\theta\))에서 \(\arg\max\)로 행동 선택
- 타겟 네트워크(\(\theta^-\))에서 선택한 행동의 Q-value를 평가
이를 통해 더 안정적인 학습이 가능합니다.
4. 결론 및 요약
DQN | Double DQN (DDQN) | |
---|---|---|
Q-value 계산 | \(\max Q\) 사용 | \(\arg\max Q\)로 액션 선택 후, 타겟 네트워크로 평가 |
과대평가 문제 | 있음 (Q-value bias 발생) | 줄어듦 (과대평가 방지) |
학습 안정성 | 불안정할 수 있음 | 더 안정적 |
성능 | 특정 환경에서 성능 저하 가능 | 일반적으로 더 나은 성능 |
Double DQN은 DQN의 단점을 보완하여 Q-value의 과대평가 문제를 줄이고 학습의 안정성을 향상시키는 강화 학습 알고리즘입니다.