본문 바로가기
Deep Learning

[모두RL-⑤] Q-Network

by 룰루셩 2022. 3. 7.

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)=(Wsy)2

y=r+γmaxQ(s)

 

 

Q-Network training(math notations)

위의 경우를 좀더 일반화 시켜보면,  Qθ를 사용하여 approximate하는 것으로 볼 수 있다.

(Approximate Q function using θ)

이를 수식으로 표현하면  Q^(s,a|θ)Q(s,a)이다. 즉, 위의 Ws가 Q^(s,a|θ)로 표현되는 것이다. 여기서 θ는 network의 weight이다.

 

그리고 이를 학습하는 방법은 아래 식을 minimize하는 θ를 찾는 것이다.

 

 

Algorithm

1. Q 초기화

2. 첫번째 s1 만들고 전처리 있을 경우 전처리(ϕ)

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 (yjQ(ϕ,aj;θ))2를 gradient descent하여 θ를 업데이트 한다.

 

 

 

하지만 이 방법은 Q^Q로 converge 하지 않는다. 이를 극복하기 위한 방법으로 DQN이 제안되었다. (다음 게시물)

'Deep Learning' 카테고리의 다른 글

[XAI] LIME  (0) 2022.03.22
[모두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

댓글