Dueling DQN은 DQN의 후속 논문으로 Google DeepMind에서 2016년도에 공개한 논문입니다. DQN에 관련된 내용은 이전 포스팅을 참고하시길 바랍니다.
Motivation
기존 DQN에서는 computer vision에서 사용되던 CNN을 이용하여 Q-network를 구성합니다. 만약 기존의 신경망 구조 대신 강화학습에 더 특화된 신경망 구조를 이용해 학습하면 더 나은 결과를 보여줄 수 있을 겁니다. 논문은 이를 위해 dueling architecture라는 새로운 신경망 구조를 제안합니다.
Dueling Network Architecture
Dueling Q-network의 구조는 위 그림과 같습니다. 기존의 Q-network에서는 마지막 fully-connected layer를 통과하면 action에 대한 Q-value들을 바로 추정합니다. 반면 dueling network에서는 fully-connected layer를 두 부분으로 분리하여, state-value과 advantage로 나누어 추정한 후 마지막에 합쳐 Q-value들을 출력하는 구조입니다.
1) State-value function $V(s)$: 현재 state의 가치가 얼마나 되는지 나타냅니다. 이는 앞으로 선택될 action과 상관없이 state 자체의 좋고 나쁨을 나타냅니다.
2) Advantage function $A(s,a)$: 현재 state에서 해당 action이 다른 action에 비해 가지는 상대적 가치를 나타냅니다. 아래와 같이 action-value $Q(s,a)$와 state-value $V(s)$의 차이로 정의되어 있습니다.
$$ A(s,a)=Q(s,a)-V(s)$$
Fully-connected layer 이전 공통된 부분의 파라미터는 $\theta$, state-value를 위한 레이어는 $\beta$, advantage를 위한 레이어의 파라미터는 $\alpha$로 각각 표시합니다.
Aggregation layer
[그림 1]의 초록색의 aggergation layer에서는 두 값을 특수하게 합쳐주는 역할을 합니다. Q-value를 얻기 위해 advantage function의 정의에 따라 두 값을 단순히 더해주면 문제가 발생합니다. 신경망이 학습하는 과정에서 state-value와 advantage이 구분되지 않고, 각각의 본래의 의미를 가지도록 학습되지 않기 때문입니다.
이렇게 aggregation layer에서 단순히 $Q(s,a)=V(s)+A(s,a)$의 방식으로 합쳐주면 unidentifiable 문제가 발생하는데 논문에서는 이를 해결하기 위해 약간의 트릭을 이용합니다.
$$ Q(s,a)=V(s)+\left(A(s,a)-\max_{a'\in|\mathcal A|}{A(s,a')}\right) $$
Advantage function의 정의에 따르면 우변에 추가된 $\max_{a'\in|\mathcal A|}{A(s,a')}$은 deterministic policy에서 항상 0을 만족합니다. 항상 0인 특성을 빼주어서 신경망이 advantage와 state-value의 특징을 따라가도록 강제하는 트릭입니다. 하지만 위의 트릭은 실제로 학습 시 practical하지 않기 때문에 논문에서는 아래의 두번째 방식을 제안합니다.
$$ Q(s,a)=V(s)+\left(A(s,a)-\frac{1}{|\mathcal A|}\sum_{a'}{A(s,a')}\right) $$
Max operation을 평균으로 대체하였는데요, 우변에서 빼준 advantage 평균 $\frac{1}{|\mathcal A|}\sum_{a'}{A(s,a')}$은 항상 0은 아닙니다. 따라서 각각의 fully-connected layer가 정확한 advantage와 state-value의 의미를 가지도록 학습하지는 않습니다. 하지만 최대값 대신 평균을 이용하면 advantage의 변화량이 적어 학습 안정성이 올라가는 효과가 있습니다. 따라서 논문에서는 advantage의 평균을 이용한 위 수식을 aggregation layer로 이용합니다.
또한 dueling architecture는 새로운 알고리즘이 아니라 네트워크 구조의 변경이기 때문에 기존의 다른 알고리즘과 함께 사용될 수 있습니다.
Why Dueling Architecture?
Dueling architecture은 state-value와 advantage를 구분하는데 이를 통해 학습 과정에서 다음의 두 가지 장점이 있습니다.
① State-value의 효과적인 학습
Dueling architecture에서는 어떠한 state가 가치 있는지 해당 state의 모든 action을 해보지 않아도 학습할 수 있습니다. 기본적으로 state-value $V(s)$는 action-value $Q(s,a)$의 평균이므로 state에서 다양한 action을 경험해 본 후에만 그 값을 추정할 수 있습니다.
기존 구조에서는 하나의 action에 대한 Q-value를 얻으면 그 값에 대해서만 업데이트되고, 동일한 state의 다른 action에 대한 Q-value는 업데이트되지 않습니다. 하지만 dueling architecture에서는 state의 어느 action에 대한 Q-value가 업데이트 될 때마다 전체 state-value stream $V(s)$가 업데이트되기 때문에 다른 action에 대한 Q-value도 동시에 간접적으로 학습할 수 있습니다.
이는 특히 action이 환경에 영향을 주지 않는 state들을 학습하는데 유용한데, 상당수의 state에서 action 선택에 대한 가치를 직접적으로 추정하는 것이 불필요하다고 합니다. 아래의 Enduro 게임 예시는 action이 환경에 영향을 주지 않는 상황에서 state-value와 advantage의 역할을 보여줍니다.
상단은 agent가 어떠한 action을 취해도 얻는 보상은 같기 때문에 advantage 부분이 비활성화되고 현재의 state-value에만 집중하는 것을 알 수 있습니다. 반면 하단은 장애물이 나타나 action에 따라 얻게 되는 보상이 달라지므로 advantage 부분이 추가적으로 활성화되는 것을 보여주며 이러한 상황에서 dueling architecture는 효율적인 학습을 보여줍니다.
② Noise에 강건한 학습
특정한 state들에서는 Q-value들의 차이 (즉, advantage)가 Q-value 절대적 크기에 비해 매우 작습니다. 아래 그림은 Seaquest 게임에서 action에 따른 Q-value의 예시를 보여줍니다. 모든 Q-value들이 9에 가까운 크기를 가지지만 Q-value들의 상대적 차이는 매우 작은 것을 알 수 있습니다.
이러한 상황에서는 업데이트시 발생하는 약간의 noise라도 action에 따른 Q-value의 순서를 바꿔버리기 때문에 학습 성능을 저하시킵니다. 반면 dueling architecture에서는 Q-value의 절대적 크기에 해당하는 state-value와 상대적 차이인 advantage를 분리하여 학습하기 때문에 이러한 noise에 대해서 강건한 학습효과를 보여준다고 합니다.
References
[1] Z. Wang et al., "Dueling Network Architectures for Deep Reinforcement Learning," arXiv, 2016.
[2] https://www.youtube.com/watch?v=XjsY8-P4WHM&ab_channel=AndrewMelnik
강화학습 스터디의 다른 글 목록
- 강화학습 이론: On-policy & Off-policy
- 강화학습 알고리즘: (1) DQN (Deep Q-Network)
- 강화학습 알고리즘: (2) Double DQN
- 강화학습 알고리즘: (3) Dueling DQN
- 강화학습 알고리즘: (4) DDPG
- 강화학습 알고리즘: (5) PPO
오타나 잘못된 부분 있으면 댓글 부탁드립니다. 도움이 되셨다면 공감 눌러 주시면 감사하겠습니다 :)
'AI & Optimization > Reinforcement Learning' 카테고리의 다른 글
[RL] 강화학습 이론: On-policy & Off-policy (0) | 2023.11.08 |
---|---|
[RL] 강화학습 알고리즘: (5) PPO (0) | 2023.08.13 |
[RL] 강화학습 알고리즘: (4) DDPG (3) | 2022.12.30 |
[RL] 강화학습 알고리즘: (2) Double DQN (0) | 2022.09.10 |
[RL] 강화학습 알고리즘: (1) DQN (Deep Q-Network) (4) | 2022.06.03 |
댓글