DQN(Deep - Q - Networks)
DQN
Q-Table을 업데이트하지 않고, 현재 상태값을 입력값으로 받고 현재 상태에서 취할 수 있는 행동들에 대한 Q값을 예측하는 인공신경망을 만들어서 사용하는 Q-NetWorks기법이다.
Q-Networks를 학습시킬 때, 타겟 데이터는 Q-Learning알고리즘으로 구한 최적의 행동가치 함수값인 $ Q*(s_{t}, a_{t}) = R_{t+1} + \gamma \underset{a+1}{max}Q(s_{t+1}, a_{t+1}) $ 으로 지정하고 상태값을 입력받아 신경망이 예측한 $ Q(s_{t}, a_{t}) $ 와 타겟 데이터의 평균제곱오차(MSE)으로 손실함수를 정의해서 최적화를 수행한다.
$ MSE = \frac{1}{2n}\sum_{i=1}^{n}(Q^{*}(s_{t},a_{t}) - Q(s_{t}, a_{t}))^{2} $
$ MSE = \frac{2n}{1}\sum_{i=1}^{n}(R_{t+1} + \gamma \underset{a+1}{max}Q(s_{t+1}, a_{t+1}) - Q(s_{t}, a_{t}))^{2} $
일반적인 ANN구조처럼 손실 함수에 대한 옵티마이저를 선언하고 학습을 진행하면 적절한 Q값을 예측하는 Q-Networks를 학습시킬 수 있다.
$ \epsilon - Greedy $
Q-Learning 및 강화학습을 적용할 때 보통 $ \epsilon - Greedy $ 라는 기법을 함께 적용한다.
에이전트가 항상 최대 Q값으로 행동하게 되면 데이터 수집과정에서 다양성이 감소하고 이로인해 최대 학습 결과가 Local Optima에 빠질 확률이 높아진다.
따라서 $ \epsilon - Greedy $ 기법은 에이전트가 $ \epsilon $ 확률로 최적의 행동이 아닌 랜덤한 행동을 하게 하고, 다시 $ ( 1 - \epsilon ) $ 확률로 최적의 행동을 하게 함으로써 에이전트가 다양한 상태를 경험하고 수집할 수 있게 한다.
결과적으로 학습이 끝난 후에 더 좋은 성능을 발휘할 수 있다. 하지만 계속해서 랜덤한 행동을 하도록 할 수는 없음으로 학습 초반에는 $ \epsilon $ 값을 크게 설정했다가 학습이 진행될 수록 점차 $ \epsilon $ 값을 감소시켜 준다.
$ \pi(a|s) = \left\{\begin{matrix}
1 - \epsilon & ifa^{*} = \underset{a\epsilon A}{argmaxA(s, a)} \\
& \epsilon \\
\end{matrix}\right. $
DQN(Deep- Q-Networks)은 딥마인드 사에서 창안한 강화학습을 위한 인공 신경망 구조로써 기존에 제안된 Q-Networks와 딥러닝 을 결합한 기법이다.
사전지식 없이 오직 게임 화면만을 보고 학습을 진행해서, 학습을 진행함.
기존의 Q-Networks에서 2가지를 개선
- 기존의 Q-Networks은 얕은층의 ANN구조를 사용하지만, DQN은 깊은층의 CNN구조를 사용
- 인간의 해마(Hippocampus)에서 영감을 받아 리플레이 메모리(Replay Memory)라는 기법을 사용했고, 이를 통해 효율적인 강화학습이 가능하도록 만듬
리플레이 메모리(Replay Memory)
리플레이 메모리 기법이란, 기존의 강화학습과 다르게 에이전트가 흭득하는 순차적인 경험데이터를 이용해서 학습을 진행헀습니다.
하지만, 이는 에이전트가 취한 이전 행동에 따라 수집되는 데이터의 형태가 일정한 패턴으로 고정되는 문제가 있다.
리플레이 메모리 기법은 이를 방지하기 위해 리플레이 메모리라는 일종의 경험 저장소에 에이전트가 수집한 경험데이터를 저장한다.
리플레이 메모리에 저장된 랜덤 샘플링을 통해 데이터를 추출해서, 이를 학습에 사용함으로써 에이전트가 특정한 패턴에 대한 편견 없이 학습할 수 있도록 도와준다.