2022.03.07 - [Deep Learning/RL] - [모두RL-④] Stochastic (non-deterministic)에 이어서 김성훈 교수님의 모두를 위한 RL강좌 lecture 6를 듣고 작성하였다.
만약 Q table이 100x100 table이라면, 혹은 그보다 더 많은 pixel을 가진다면?
연산량이 어마어마할 것이다.
그래서 제안된 기법이 Q-Network이다.
Q-function approximation
테이블을 쓰지 않고,
테이블보다 더 작은 수의 뉴런을 사용해서 이런 네트워크를 만들면
어떤 값이든 출력할텐데...
그 출력하는 값을 우리가 원하는 값으로 approximation하면 되지 않을까?
Q-table과 다르게 state(s)만 input으로 사용한다.
그리고 각 action에 대한 결과(reward)를 출력한다.
즉, 모든 가능한 action에 대해서 Q값을 만들어 내도록 한다.
Q-Network training (linear regression)
위처럼 linear regression network라고 할 때, 예측값(output)은 Ws일 것이다. 이게 Q의 optimal한 값이 되도록 학습해야한다. 우리는 linear regression을 학습할 때 우측 상단의 식처럼, 예측값 (Wx)와 실제값 (y)의 차이가 최소가 되도록 학습해야한다. 이걸 Q-Network로 보면, 예측값(Qpred)이 Ws인 것이고 실제값이 $Q^*$인것이다.
식을 다시 써보면 다음과 같다.
$cost(W)=(Ws-y)^2$
$y=r+\gamma maxQ(s')$
Q-Network training(math notations)
위의 경우를 좀더 일반화 시켜보면, $Q^*$를 $\theta$를 사용하여 approximate하는 것으로 볼 수 있다.
(Approximate $Q^*$ function using $\theta$)
이를 수식으로 표현하면 $\hat{Q}(s,a|\theta) \sim Q^*(s,a)$이다. 즉, 위의 Ws가 $\hat{Q}(s,a|\theta)$로 표현되는 것이다. 여기서 $\theta$는 network의 weight이다.
그리고 이를 학습하는 방법은 아래 식을 minimize하는 $\theta$를 찾는 것이다.
Algorithm
1. Q 초기화
2. 첫번째 s1 만들고 전처리 있을 경우 전처리($\phi$)
3. a 고르기 (E&E)
4. action을 하면 s와 r을 돌려준다.
5. 학습
1) y를 설정한다.($Q^*$를 y라고 한다.)
- 그 다음 단계의 reward가 없을 때 (마지막단계) 그 단계를 terminal이라고 한다.
이때는 다음 state가 없으므로 r이다.
- 그 이전의 state에서의 y는 앞에서 정의한 Q의 식과 같다.
다시말해 우리가 얻고자 하는 $Q^*$를 target, label로 정한다.
2) loss $(y_j-Q(\phi,a_j;\theta))^2$를 gradient descent하여 $\theta$를 업데이트 한다.
하지만 이 방법은 $\hat{Q}$가 $Q$로 converge 하지 않는다. 이를 극복하기 위한 방법으로 DQN이 제안되었다. (다음 게시물)
'Deep Learning > RL' 카테고리의 다른 글
[모두RL-⑥] DQN (0) | 2022.03.07 |
---|---|
[모두RL-④] Stochastic (non-deterministic) (0) | 2022.03.07 |
[모두RL-③] E&E과 discounted future reward (0) | 2022.03.07 |
[모두RL-②] Dummy Q-Learning (table) (0) | 2022.03.06 |
[모두RL-①] 강화학습 소개 (0) | 2022.03.04 |
댓글