Policy Evaluation과 Control이라는 두 가지 distinct task에 대해 알아보자.


Policy evaluation은 미래 보상의 return으로 계산되던 state-value(given policy)로 평가하는 과정을 말한다.

Dynamic programming이란 Bellman equation을 iterative하게 찾아나가는 과정을 말한다.

일반적인 state-value(givne policy) problem은 linear system으로 다뤄져 선형 방정식을 풀어 해결하는 것이 가능했다.

아래와 같은 그래프를 보면 가 보다 항상 better policy를 가진다는 것을 알 수 있다.

여러 번의 시행으로 우리는 optimal policy로 찾아나갈 수 있다.

Dynamic programming이 필요한 이유는 Marcov process에 대한 정보 를 우리가 모르기 때문이다.




Iterative policy evaluation은 기존 Bellman equation에서의 state에 대한 notaion을 와 번째에 관한 수식으로 변경하여 표현한다.







우리는 와 board를 놓고 iteration을 반복할 것이다.



이제 아래와 같은 예시를 보자.

이제 왼쪽 위에서부터 board 안의 값을 쭉 보며, policy evaluation을 진행할 것이다.


아래 검은 박스가 쳐진 곳에서부터 step을 밟아 나가보자.

위로 가는 경우의 수는 다시 현재 상태로 돌아오고 오른쪽, 아래 state의 value까지 모두 계산한 값을 더하면 -1로 얻어진다.

그리고 바로 옆 검은 박스의 왼쪽부터 다시 계산해나간다.

위로 가는 경우의 수는 다시 현재 상태로 돌아오고 오른쪽, 아래 state의 value까지 모두 계산한 값을 더하면 -1로 얻어진다.




이러한 iteration을 멈추게 할 수 있는 방법은 parameter 를 설정함으로써 해결할 수 있다.

아래와 같이 첫 번째 iteration은 가 1이었기 때문에 계속해서 iteration을 진행한다.




아래와 같이 value가 충분히 업데이트 되면 iteration간의 차이가 거의 없을 것이므로 optimal value에 도달하였다고 보아도 좋다.




Optimal value 의 argmax 즉, greedy하게 value를 선택해 action을 취하면 optimal policy 를 따른다고 하였다.

Policy Improvement Theorem은 가 이미 optimal하다는 가정 하에, 적어도 하나의 state에서 더 큰 action-value를 가진다면 더 가치가 높은 policy라고 얘기할 수 있는 정리다.

위에서 다루었던 board의 optimal value 를 update해 두고, greedy한 action을 선택하게끔 만들어보자.
Value의 argmax를 취하도록 만들었더니 기존 policy에 비해 훨씬 향상된 경로로 value를 maximize하는 것이 가능해졌다.





Policy Improvement Theorem은 미래 state에서의 expected value를 argmax 취하여, greedy한 action으로 policy 를 업데이트하는 과정을 말한다.

Policy Evaluation과 policy improvement를 반복하며 policy를 향상시키다 보면 이전 policy에 비해 항상 더 큰 value를 가진다는 것을 알 수 있다.




Policy Iteration은 아래와 같은 일련의 과정으로 evaluation과 improvement가 반복된다.




Policy iteration은 이와 같이 evaluation과 improvement(greedy selection)하는 과정을 반복하며 dancing한다.

Policy iteration 알고리즘은 아래 sudo code와 같다.

이제 아래와 같은 새로운 board판이 놓여졌다고 해보자.

아래 판에 적힌 value는 한번의 Policy Evalution(sweep)을 통해 업데이트 된 상태를 나타낸다.

최종 evaluation 결과는 아래와 같고 이를 바탕으로 최종 policy improvement를 해보자.

이제 첫 evaluation sweep과 improvement로 policy를 순차적으로 업데이트 해보자.


두 번째 evaluation sweep과 improvement를 반복해보자.


세 번째 evaluation sweep과 improvement를 반복해보자.


또 한 번의 evaluation sweep으로 value가 바뀌었고 이를 바탕으로 policy improvement한 결과, 어떠한 policy도 업데이트 되지 않았다.


Policy iteration은 각 policy가 deterministic하다는 관점에서 출발하여 optimal policy를 찾아나가는 과정이다.




Generalized Policy Iteration은 아래와 같이 maximum value와 완전한 greedy 선택이 아니더라도, optimal value & policy로 수렴하는 내용을 담고 있다.



Synchronous DP는 모든 state에서의 policy probability와 value를 전부 계산해 업데이트 하는 과정이었다.





Monte Carlo method는 sampling한 선택지에서의 policy evaluation을 의미한다.


번째 state-value로 번째 value를 계산하는 과정을 Boostrapping이라 한다.

Brute-Force Search는 모든 경우의 수를 전부 계산하는 과정이다.

Dynamic Programming으로부터 policy iteration을 수행하는 과정은 Brute-Force search 알고리즘에 비해 선형 와 선형 를 더한 값의 복잡도를 갖는다.






