On the journey of

[이브와] DQN 알고리즘과 강화학습, 주가예측 (2) 본문

Experiences & Study/이브와(KIBWA)

[이브와] DQN 알고리즘과 강화학습, 주가예측 (2)

dlrpskdi 2023. 6. 25. 13:48

https://nowolver.tistory.com/41 : 강화학습 관련 첫 번째 글

 

 

[이브와] DQN 알고리즘과 강화학습, 주가예측

https://search.shopping.naver.com/book/catalog/32436237914?cat_id=50010921&frm=PBOKPRO&query=%ED%8C%8C%EC%9D%B4%EC%8D%AC%EC%9C%BC%EB%A1%9C+%EB%A7%8C%EB%93%9C%EB%8A%94+%EC%9D%B8%EA%B3%B5%EC%A7%80%EB%8A%A5&NaPm=ct%3Dljas1zg0%7Cci%3D28e319f56e402caa05528ac793

nowolver.tistory.com


1. Q러닝

> 모델 없이 학습하는 강화학습 방법 중 하나로, 마르코프 결정 과정에서 최적의 정책을 찾기 위해 주료 사용된다. 주어진 상태에서 주어진 행동을 수행하는 것이 갖다 줄 효용(효과)의 기댓값을 예측하는 Q함수를 학습함으로써 최적의 정책을 학습하는 방식으로 진행된다. 

> 임의의 유한한 MDP에 대해 현재 상태에서 최대의 보상을 획득하는 최적의 정책을 학습시킬 수 있다는 사실이 이미 증명된 바 있다. 

이미지로 표현하자면 위 귀여운 Q를 사용한 표현과 같다. 그럼 여기서, Q를 어떻게 찾을 수 (=어떻게 학습할 수 ) 있을까? 일단 시작해보고, 아래 수식을 반복해야 한다. 

문제는, 이렇게 Q-function을 근사하고자 하는 기존의 시도들은 학습의 불안전성 혹은 수렴하지 않는 문제가 발생하였다. 그 원인으로는 sample correlation, data distribution(분포), moving target value(고정되지 않은 target value)의 3가지가 지목된 바 있는데, 이를 해결하고자 등장한 방법이 바로 DQN 알고리즘이다. 

 

 

2. DQN 알고리즘

: DQN은 딥러닝과 강화학습을 결합한 알고리즘으로, 크게 CNN과 Replay(반복), Target network의 3개 요소로 구성되어 있다. 크게

1. parameter 초기화

2. 탐욕 알고리즘 방식에 따라 행동 선택 및 target value 계산, 반복

3. 누적보상을 최대화하는 대신, loss(손실함수)를 최소화하는 방향으로 parameter update하기

이렇게 3스텝으로 진행된다. 또한 2의 반복에서는, replay memory라는 매개체를 생성하고, 이 매개체에 생성된 sample를 저장함으로써 학습 불안정성을 해소한다. 

 

2-1. DDQN(Double DQN)

: Target Value와 Prediction Value의 차이를 줄이는 방법을 DQN이 사용했다면, DDQN은 DQN의 target value의 overestimation(: target value를 항상 증가시키는 방향으로 발생)을 전제로 , 이를 해소하기 위한 방법이라고 할 수 있다. 수식상의 차이는 아래와 같다.

즉, DDQN에서는 행동의 결정과 평가를 분리하여 현재 state의 가치를 추정한다. 이게 무슨 의미가 있냐고 한다면,

이미지 출처 copyright. https://ai-com.tistory.com/entry/RL-%EA%B0%95%ED%99%94%ED%95%99%EC%8A%B5-%EC%95%8C%EA%B3%A0%EB%A6%AC%EC%A6%98-2-Double-DQN

실제 Atari 게임을 진행하면서 DQN과 DDQN을 비교했을 때, DQN은 overestimation이 상당한 데 비해 DDQN은 이를 많이 해소한 것을 위 그래프(빨간색, 파란색 차이)를 통해 알 수 있다. 전체 score 또한 DDQN이 더 높음을 확인할 수 있다. 

 

2-2. Dueling DQN(2016) - 강화학습에 보다 특화된 신경망 구조(Dueling Architecture) 활용

출처 https://ai-com.tistory.com/entry/RL-%EA%B0%95%ED%99%94%ED%95%99%EC%8A%B5-%EC%95%8C%EA%B3%A0%EB%A6%AC%EC%A6%98-3-Dueling-DQN

Dueling Q-Network의 구조는 위와 같다. 마지막 Fully connected layer을 통과하면 행동에 대한 Q값을 바로 추정했던 기존 네트워크 구조와는 달리, Fully connected layer을 state value와 advantage의 2개 상태로 나눠 추정한 후, 합쳐서 최종 Q-value를 출력하는 구조이다. 이러한 구조는,  action이 환경에 영향을 주지 않는, 버려지는 state들을 학습하는 데 유용하며 한 action(행동)에 대한 Q-value가 업데이트 될 때마다 전체 state value (V(s)) 가 업데이트 된다는 장점이 있다.