본문 바로가기
AI & Optimization/Reinforcement Learning

[RL] 강화학습 알고리즘: (3) Dueling DQN

by SIES 2022. 9. 12.
반응형

Dueling DQN은 DQN의 후속 논문으로 Google DeepMind에서 2016년도에 공개한 논문입니다. DQN에 관련된 내용은 이전 포스팅을 참고하시길 바랍니다.

 

Motivation

기존 DQN에서는 computer vision에서 사용되던 CNN을 이용하여 Q-network를 구성합니다. 만약 기존의 신경망 구조 대신 강화학습에 더 특화된 신경망 구조를 이용해 학습하면 더 나은 결과를 보여줄 수 있을 겁니다. 논문은 이를 위해 dueling architecture라는 새로운 신경망 구조를 제안합니다.

 

Dueling Network Architecture

 

Figure 1. Dueling Q-network 구조

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의 역할을 보여줍니다. 

 

Figure 2. Enduro 게임 예시

상단은 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들의 상대적 차이는 매우 작은 것을 알 수 있습니다.

 

Figure 3. Seaquest 게임에서의 Q-values

이러한 상황에서는 업데이트시 발생하는 약간의 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 


강화학습 스터디의 다른 글 목록

 


오타나 잘못된 부분 있으면 댓글 부탁드립니다. 도움이 되셨다면 공감 눌러 주시면 감사하겠습니다 :)

반응형

댓글