JINWOOJUNG

Deep Reinforcement Learning 본문

Reinforcement Learning

Deep Reinforcement Learning

Jinu_01 2024. 2. 5. 16:57
728x90
반응형

본 게시글은 인하대학교 유상조 교수님의 Reinforcement Learning Tutorial Seminar

수강 후 정리를 위한 포스팅입니다.

모든 포스팅의 저작관은 유상조 교수님에게 있음을 사전 공지합니다.


Before This Episode

https://jinwoo-jung.tistory.com/35

 

Value Function Approximation

본 게시글은 인하대학교 유상조 교수님의 Reinforcement Learning Tutorial Seminar 수강 후 정리를 위한 포스팅입니다. 모든 포스팅의 저작관은 유상조 교수님에게 있음을 사전 공지합니다. Before This Episode

jinwoo-jung.tistory.com


 

이전까지의 내용을 정리해 보자. 기존 Tabular 방식의 Update는 공간적 문제, Update 되지 않는 State/Action 문제 등이 있기에 State&Action을 Input으로 하면 Parameter θθ(지난 시간에는 ww)를 통해 ˆv(S),ˆQ(S,a)^v(S),^Q(S,a)가 나오고 해당 Output이 Vπ,QπVπ,Qπ와 같아지는 방향으로 θθ를 학습시키는 VFA를 배웠다. 

 

이때, 목적함수 J(θ)J(θ)는 (Action Value 예시) MSE = E[Qπ(S,a)ˆQ(S,a,θ)2]\theta$를 구하는 것으로 정의되었다. 하지만 수많은 경우를 실제 해보지 못하기 때문에 평균이 아닌 Sample 마다 진행하는 SGD, Batch Size마다 진행하는 BGD가 있었다.

 

그리고 True-Value Qπ를 알지 못하기 때문에, 우리는 SARSA, Q-Learning 각 방식에 맞게 대체해서 적용하였다.

그중에서 Q-Learning 방식의 경우 True-Value를 다음과 같이 대체한다.

 

Deep RL - Q-Learning

 

State St가 Input으로 주어지고 FA에 의해 나온 Prediction ˆQ(st,at|θ) \varepsilon greedyActiona',Rewardr,States_{t+1}.Inputmax_a_{t+1}Q(s_{t+1},a_{t+1})$을 구하고 계산된 값으로 Update를 진행한다.

 

Deep Q-Learning Sudo-Code

 

이러한 Deep Q-Learning의 Sudo-Code를 살펴보면 위에서 설명한 과정이 녹아져 있다.

 

하지만 문제점은 지난 강의에서도 살펴봤듯이 Nonlinera FA(such as a neural network)에서는 Convergence의 문제가 있다. 따라서 Deep Q-Learning에서 강화된 Deep Q-Network(DQN)이 등장하였다.

 

DQN

 

DQN

 

DQN은 더 깊은 층을 구현하고, Sample들 사이에서 상관관계를 최소화 하기 위해 Replay Memory를 사용한다. 가운데에 보면 높은 상관관계(Ex 시간의 연속성)를 지니는 데이터를 이용하여 추론할 경우 True-Value에서 벗어난 경향을 보임을 알 수 있다. 하지만 오른쪽은 상관관계가 적은 데이터를 이용하여 추론하면, 더 적더라도 전체 데이터를 기반으로 추론한 값과 유사함을 알 수 있다. 

 

또한, 위 식에서 정의된 Loss Function을 보면 Target(R_{t+1} + \gamma max_{a'} \hat(Q)(s_{t+1},a'|\theta)})과 비교하는 ˆQ(st,at|θ 모두 θ를 이용하기에 Update할 때 마다 Target 역시 매번 변화하여 Update의 의미를 상실하게 된다. 따라서 Target-Value 계산 시 θ를 고려하지 않는 다른 Value로 교체한다.

 

 

Reduce Correlation


Reduce Correlation

 

상관관계를 줄이기 위해, Terminal State 까지 진행한 <s,a,r,s>을 모두 저장한다. 이후 연속적인 Data가 아닌 Random Sample을 선정하여 Weight를 Update 하는 방향으로 진행한다.

 

DQN Sudo-Code

 

Sudo-Code를 보면 쉽게 알 수 있는데, t=1 T까지 반복하면서 모든 Info를 저장한 후, Random Sample을 선택하여 Update함을 알 수 있다. 현재는 minibatch로 진행하지만, 매 Step마다 진행도 가능하다.

 

Target of loss function


Target of loss function

 

앞서 언급한 것 처럼, Weight Update 시 Target 역시 Parameter θ에 의존적이기 때문에 영향을 미친다. 따라서 이전 단계의 θθ를 Target의 Parameter로 설정하고 매 Batch에 대한 Update가 끝날 때 마다 θ를 Update 한다. 위 슬라이드에서 ϕ가  θ이다.

 

DQN

 

위와 같은 프로세스로 동작 시 Target은 θ에 의존적이지 않으므로, Parameter θ를 정확하게 Update 가능하다. 

만약 둘다 동일하다면, Update가 진행됨과 동시에 Target 역시 변하여 정확한 학습이 불가하다. Sudo-Code는 아래와 같다.

 

 

DQN Sudo-Code

728x90
반응형

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

Value Function Approximation  (0) 2024.02.04
Model-based RL  (1) 2024.01.28
n-Step Bootstrapping  (1) 2024.01.22
Q-Learning  (0) 2024.01.20
State-Action-Reward-State-Action  (0) 2024.01.20