Q-network diverges
Q-network는 좋은 알고리즘이지만, 그다지 결과가 좋지 않다. (수렴하지 않음)
Google Deepmind에서 그를 고쳐 만들어 낸 것이 DQN이다.
2 Problems
기존 Q-network가 좋은 성과를 낼 수 없던 이유는 다음의 두 가지이다.
1) Correlation between samples
- action을 취하면서 environment가 조금씩 바뀌기 때문에 유사함
= sample들이 비슷함 (상관관계가 있음)
- 전체적 경향성을 보여줄 수 있는 data들이 아니라 유사한 (붙어있는) data들로 학습을 시키면 제대로 학습되지 않음
2) Non-stationary targets
- 즉, "target이 움직임"
- pred값을 target값에 가까이 하기 위해 θ값을 조정하는데, 동시에 target도 바뀌게 됨
- pred값과 target값이 같은 θ값을 공유했기 때문 (같은 네트워크를 사용)
- 화살을 쏘자마자 과녁을 움직인 격
3 Solutions
0) Go deep
- 여러 hidden layer를 둘 수록 여러 가지 상태를 담아낼 수 있음
1) Experience Replay ← Correlation between samples
- action을 취하고 reward, next_state를 받아오는 loop에서 학습을 시키지 않고,
- state, action, reward, next_state의 묶음을 buffer에 저장해두었다가 일정한 시간이 지나면 random하게 sample을 꺼내어 학습을 시킴 (Minibatch_작은 집단)
- 그러면 전체적 경향성을 보여줄 수 있는 data들을 뽑아낼 수 있음
2) Separate networks: create a target network ← Non-stationary targets
- pred값과 target값이 서로 다른 θ값을 가짐
- target값의 θ'은 두고 pred값의 θ만 update시키다가, 일정한 시간이 지나면 copy함 (θ' = θ)
- 네트워크를 서로 분리시켜 target값이 흔들리는 상황을 막음
Reference: Sung Kim 모두를 위한 RL강좌 정리
작성일: 2018. 11. 12.
'머신러닝, 딥러닝 > Reinforcement Learning' 카테고리의 다른 글
강화학습 복습 자료 5: Stochastic World (0) | 2022.03.12 |
---|---|
강화학습 복습 자료 4: Discounted future reward (0) | 2022.03.12 |
강화학습 복습 자료 3: Exploit & Exploration (0) | 2022.03.12 |
강화학습 복습 자료 2: Dummy Q-learning algorithm (0) | 2022.03.12 |
강화학습 복습 자료 1: Concept of RL (0) | 2022.03.12 |
댓글