본문 바로가기

강화학습

Policy iteration and Value iteration

강화 학습의 두 종류 iteration을 공부해본다. 

 

Policy iteration은 Evaluation과 Improvement 두 단계가 있다. 

evaluation은 각 step의 모든 state의 V function table을 업데이트해주는 과정이다. 이때 policy를 사용하여 업데이트를 한다. 업데이트에 사용하는 식은 벨만 기대 방정식을 사용해서 업데이트 해준다. 

evaluation을 해주고 나서 업데이트된 V function table을 가지고 improvement를 진행한다. improvement는 policy가 보통 V 값이 가장 큰 action을 가지게 만들어 준다.  

현재 state에서 V값이 가장 큰 action을 정한다는 것은 Q 값이 가장 큰 것을 선택한다는 말이 된다. 따라서 아래 사진에서 
argmax 안에 $r + \gamma V(s^\prime)$는 Q를 표현한 벨만 방정식이다.

위와 같이 policy iteration은 학습 하는 과정에 policy를 필요로 하게 된다. 

 

Value iteration은 policy를 필요로 하지 않고 V 값만을 이용하여 학습한다. 

위의 Policy iteration과 비교해보면 V function table을 업데이트해주는 식에서 policy에 대한 부분이 빠졌고 모든 action에 대해 구한 $V(s^\prime)$를 더해주는 대신 max를 취해서 최댓값만 가지게 된다. 그리고 policy는 위와 같이 Q값이 최대가 되는 action을 취하게 한다. 

 

간단한 Grid world를 통한 예제는 github에 올렸다. 환경은 직접 만들었고 iteration에 대한 코드는 다른 곳에서 가져와서 환경에 맞게 수정하고 나만의 스타일로 조금 수정했다. 빨간색은 장애물이고 도착하면 $-$보상을 받게 된다. Goal에 도착해야만 $+$보상을 받을 수 있다.

https://github.com/KwanWooPark97/RL_basic/tree/master/Iterations

'강화학습' 카테고리의 다른 글

Determinitic Deep PG(DDPG) 공부하기  (0) 2022.12.14
Advantage Actor Critic (A2C) 정리  (0) 2022.12.08
Deep Q-Network(DQN) 공부하기  (0) 2022.11.29
Q-learning  (0) 2022.11.07
SARSA  (0) 2022.11.03