Reinforcement Learning

RL (강화학습) 기초 - 6. Monte-Carlo Learning

대소니 2017. 10. 29. 15:34





Planning 의 대표적인 Dynamic programming 에서는 MDP를 이미 알고 있는 것을 Bellman 방정식으로 풀어내는 것이였습니다. 그리고 GPI를 따르는 방식으로 최적화 정책을 찾아냈었습니다.


Model-free 는 MDP를 모르는 상황에서 환경과 직접적으로 상호작용을 하면서 경험을 통해서 학습을 하게되는 방식을 말합니다.


Prediction 은 value를 estimate 하는 것을 말하는데 여기서는 model-free 에서 prediction이므로 MDP를 모르는 상태에서 (환경에 대한 사전지식이 없는 상태에서) 환경과 상호 작용을 하며 value function을 추정해 가는 방식을 말합니다.


control 은 이렇게 찾은 value function을 최적화하여 최적의 poilcy를 찾는 것을 말합니다.


대표적인 Model-free 방식에 Monte-Carlo Learning과 Temporal-Difference Learning이 있습니다.





MC는 에피소드에서 경험을 하면서 직접 환경에 대해서 학습하는 방법입니다.


MDP에 대한 사전 지식이 없고 모델이 없어서 알려주는 이도 없으므로 trasition / reward 에 대한 정보를 전혀 모르는 상태에서 시작합니다.


항상 에피소드가 완료가 되어 최종적으로 받게 되는 보상을 통해서 평균적으로 학습을 하게 되므로 bootstrapping이 아닙니다.


MC에서는 간단하게 에피소드가 종료된 후에 받게 되는 보상에 평균값들이 value로 사용이 됩니다.








에피소드를 진행하게 되면서 지나가게 되는 경로를 trajectory라고 합니다. s1 에서 a1를 취하면 r2를 얻게 되고 이런식으로 에피소드가 끝날때까지 연속되겠습니다.


이전에도 살펴본 내용이지만 최종 Gain을 얻기 위해서 value function을 정의하는데, 기대값을 추정해야 하지만 MC에서는 보상에 대한 평균 값을 사용하는 것이 다릅니다.





state를 evaluate하기 위해서는 크게 2가지 방법이 있는데요.


하나는 first visit MC 방식입니다. 에피소드에서 하나의 state를 여러번 지나갈 수 있을 것입니다. 이때 해당 state에 첫번째 방문 했을때의 value만을 사용하는 방식입니다.


에피소드가 여러번 진행이 되므로 각 에피소드에 대한 평균으로 value를 추정합니다.


에피소드가 충분히 무한대로 진행이 되게 되면 이렇게 평균값으로 추정한 value가 최적화된 실제 value와 같게 되고 이를 통해서 policy를 업데이트 하면 우리가 원하는 최적의 정책을 찾을 수 있게 됩니다.






다른 하나는 every visit MC 방식입니다. 하나의 states를 두번이상 지나갔다면 이때의 모든 value를 각각 사용하여 평균내어 추정하는 방식입니다.


그외 나머지는 비슷합니다.


보통은 일반적으로 first visit MC를 많이 사용한다고 합니다.






평균을 구하는 공식에 대해서 설명을 수학적으로 하고 있습니다.


연속되는 x 값들을 모두 sum 해서 k 로 나눠주는 것이 평균인데 이것을 현재것과 그외의 것들로 분리하여 공식을 전개하면 위와 같이 됩니다.


마지막 공식에서 1/k 뒷 부분이 error 항목이 되며 이를 통해서 incremental update를 하게 됩니다.






하나의 에피소드가 완료가 되면 점진적으로 value function을 업데이트 하게 됩니다.


에피소드를 수행한 횟수 N(s)와 각각의 보상들을 평균내어 V(s)를 추정할 수 있게 됩니다.


non-stationary 환경 데이터의 경우에는 평균을 산출할때 이전의 횟수를 사용하는 것이 아니라 특별한 running mean 인 알파 값을 사용해서 나누어주는 것이 다릅니다.