# 1. Deep Q network
우선, 지금까지 봤던 Q-learning과 DQN을 비교하면 다음과 같다.
Q-Learning에서는 Q-Table을 업데이트 하는 방식으로 Input으로 {State,Action} Pair이 들어오면 그거에 대한 Q-value값을 return했다. 하지만, 이러기에는 State와 Action개수가 많아지면 Q-Table을 관리하기란 불가능에 가깝게 될뿐더러 시간도 오래걸리게 된다. 그리고 경험하지 못한 것에 대한 값은 알 수가 없다.따라서, Q-Learning에서 Q-Table 대신 Neural Network를 사용해서 Q-value를 추정해보는 게 DQN이다.
# 2. Naive DQN
Neural Network를 학습시키기 위해서는 Loss Function이 필요한데,
Bellman Equation을 이용해서 Loss Function을 만들어서 사용한다. 그럼 Naive DQN 알고리즘은 다음과 같다.
하지만, 이 때 2가지 문제가 발생한다.
- Correlated Samples
- Non Stationary Target
# 3. Experience Replay
Correlated Samples란?
위 그림에서 전체적으로 봤을 때 빨간선이 좋은 모델이고, a가 제일 근접한 데이터라고 봐야하지만, 만약 b근처의 데이터만 보게 된다면, 파란선으로 예측이 되고, b가 제일 가까운 데이터가 된다. 따라서, 학습을 할 때는 데이터간의 서로 독립적이라는 가정이 꼭 보장되어야 하는데, 강화학습의 경우 순서대로 나오다 보니 이러한 Correlation이 크기 때문에 다음과 같은 문제가 발생할 수 있다.
Experience & Replay란?
다음과 같이 모든 Time-Stamp마다 학습을 진행하는 것이 아니라 transition Buffer에 Data Set을 모아두고 그 중에서 랜덤으로 선택해서 학습을 진행하는 걸 말한다.
# 4. Separate Target Network
지도학습에는 데이터와 라벨이 정해져 있어서 학습을 진행할 수록 수렴이 가능하지만, 지금의 경우에는 라벨이 계속해서 갱신되기 때문에 발산해버릴 위험이 있다. 따라서, 매번 갱신되지 않도록 Q값을 따로 저장하여 일정 학습이 진행된 이후에 Q값이 업데이트 되도록해서 라벨에 안정성을 더해주는 방법이다.
여기까지 하면 다음과 같은 알고리즘을 가진다.
그림으로 표현하면 다음과 같다.
'🗂️Data Science > Aritificial Intelli' 카테고리의 다른 글
강화학습(Reinforcement Learning) - 2.Q-learning (0) | 2022.12.07 |
---|---|
강화학습(Reinforcement Learning) - 1.Value Function (0) | 2022.12.07 |
Pattern mining (0) | 2022.11.26 |
주성분분석(Principal Component Analysis) (0) | 2022.11.22 |