A.I/RL by Sung Kim

Lecture 6: Q-Network

궁선이 2019. 1. 23. 20:32

이 내용은 Sung Kim 교수님의 모두를 위한 RL 강좌를 정리한 내용입니다.


https://youtu.be/w9GwqPx7LW8


RL 시뮬레이션에 도움이 되는 사이트

http://computingkoreanlab.com/app/jAI/jQLearning/

----------------------------------------------------------------------------------------------------------------------

 기본 Q-learning에서 사용하던 Q-table은 실제 문제에 적용시키기에는 무리가있다.


왜냐하면 Q-Table은 Array를 사용하고 있는데, 실제 문제를 Array로 나타낸다면 엄청난 리소스가 필요하다.


예를 들어 아래의 게임화면의 경우는 2^(80*80) 가지의 화면 종류가 나올 수 있다.



따라서 이러한 문제를 해결하고자 Neural Netwrok를 접목시켜보자는 아이디어가 나왔다.


Input과 Output의 값에 따라 크게 두가지의 신경망이 존재한다.



1. Input으로 State, Action이 들어간다.



2.input으로 State만 들어간다.




아래와 같이 요약이 가능하다. 앞으로 두번째 신경망을 사용할 것이다.

 





다음은 Q-Network가 어떻게 학습되는지에 대한 내용입니다.


Linear regression으로 본다면 Input layer부터 Output layer까지 의 모든 가중치 연산은 W 로 나타내어질 수 있으므로,

Output은  Ws 로 볼 수 있다.


또한 Loss function인 cost(W) = (Ws - y)^2 에서 Label인 는 s에서의 Optimal Q(s)로 볼 수 있다.



그리고 위 식을 정리하여 신경망 학습의 경사하강법을 적용시킨다면 아래 그림과 같이 나타낼 수 있습니다.

(이 때 아래 그림에서의 Theta는 Weight를 나타냅니다.)

따라서 Q-Network문제는 아래 수식을 최소화 시키는 Theta를 찾는 문제라고 볼 수 있습니다.




다음은 Q-Network Algorithm 입니다.

알고리즘의 수식을 보면 Terminal state(종료상태)인 경우와 Non-terminal state 인 경우를 나누어 주었습니다.


위 식들을 보고 있으면 한가지 의문이 들 수 있습니다. Non-deterministic world 인 경우는 어째서 고려하지 않느냐고 말입니다.

그러나 신경망 학습의 경사하강법 자체가 Update를 조금씩 하기때문에 Non-deterministic world의 Update와 비슷한 효과를 낸다고 볼 수 있습니다.


그러나 지금까지 설명한 Q-Network는 오류가 존재하여 실제로 사용을 못한다는게 증명되었습니다.

학습이 진행되면서 Q가 Optimal Q로 수렴해야 하지만 그렇지 못하고 발산한다고 합니다.


그 이유로는 Correlations between samples and Non-stationary targets 문제가 있습니다.

이 문제들의 해결은 다음 Lecture 7 에서 다루어질 것이며, 이 문제들을 해결한 것이 바로 DQN 입니다.







강좌에 나오는 코드는 다음 Github에 구현해 놓았습니다.

https://github.com/whitesoil/ReinforceLearningZeroToAll