


Policy Evaluation으로 가 estimate되고 나면, Policy Improvement로 를 업데이트 한다.

TD에서는 state-values에서 action-values로 관점을 바꿔야 한다.
State-action pair로 values를 estimate하며 policy를 선택하는 과정이 필요하다.

Sarsa 알고리즘은 GPI with TD learning과 같다.
기존에는 state-values로만 policy evaluation & improvement 했다면, Sarsa는 state-action pair가 주어지기 때문에 action-values로 업데이트 하게 된다.





만약 아래에서 바람이 불어오고 있고 부는 정도가 아래 숫자와 같을 때, 왼쪽으로 가는 Agent가 있다고 하자.
이 Agent는 바람의 영향과 본인이 선택한 action으로 북서쪽으로 한 칸 올라갈 것이다.



처음 2000번까지의 기울기를 보면 episode가 훨씬 빨리 완료되고, 7000번쯤 되어서는 policy improvement가 급격하지 않다는 것을 알 수 있다.
Exploration은 optimal policy로 향해가는 과정을 약간 해칠 수 있기 때문에, episode가 끝났을 때 policy를 업데이트 하는 MC control은 적절하지 않을 수 있다.


Q-learning에 대해 다뤄보자.



Sarsa는 Bellman equation for action-value의 sample 버전이라고 볼 수 있다.
Q-learning은 Bellman optimality equations의 sample 버전이다.

Sarsa는 Policy Iteration이고 Q-learning은 Valu Iteration에 비유할 수 있다.




만약 같은 parameter 를 설정하였다고 하면 아래와 같은 그래프가 그려진다.
Sarsa는 greedy behavior를 value function에 평균값으로 업데이트 하기 때문에 더 나은 성과를 낼 수 있다.
Q-learning은 매순간 최대치를 차지하며 즉각적으로 업데이트하기 때문에 수렴 속도가 빠르다는 특징이 있다.

만약 Sarsa의 값을 0.1로 설정한다면 어떻게 될까?
아래와 같이 Q-learning과의 기울기가 거의 비슷해지는 것으로 미루어보아, 두 알고리즘 모두 동일한 정책으로 수렴하고 있다는 것을 알 수 있다.
이를 통해 , , initial state 모두 학습 효과와 속도에 영향을 미치고 있음을 알 수 있으므로, 다양한 실험을 통해 적절한 optimal 값으로 향해가도록 만들면 된다.



이번 강의에서는 importance sampling 없이 Q-learning이 어떻게 off-policy일 수 있는지에 대해 다뤄보도록 하겠다.

Sarsa는 on-policy 알고리즘으로, behavior 정책에서 sampling한 다음 step의 value를 boostrap한다.
Q-learning은 다음 step에서 가장 큰 action-value를 boostrap한다.


Q-learning이 off-policy라면 왜 importance sampling ratio를 볼 수 없을까?
이는 Agent가 알 수 없는 policy로 action을 추정하고 있기 때문에 차이를 보정하기 위한 ratio를 따로 정정할 필요가 없다고 한다.

The cliff walking environment에서의 상황을 보자.
Q-learning은 당장의 maximal action-value만을 고려하기 때문에 전체 rewards가 Sarsa 알고리즘에 비해 높지 않다.
Sarsa는 조금 더 enable하고 safety한 경로로 움직이는 것을 알 수 있다.




Bellman equation으로부터 action-value를 계산하는 방법은 다음과 같이 policy 를 따르는 모든 action-value의 expectation으로 구하였다.
Sarsa는 현 상태에서의 Q와 다음 상태에서의 Q의 차이를 더함으로써 지속적인 업데이트를 하는 알고리즘이다.
이 때 state는 MDP process를 따르고 agent는 이미 policy를 알고 있는 상황에서 action을 취하고 있는데, 왜 다음 action을 sampling해야 할까?


Expected sarsa는 이러한 평균치를 곧바로 다음 action 예상 값으로 활용한다.
즉, 어떠한 state에서의 하나만 뽑힌 action-value만을 고려하는 것이 아니라 매번 평균 낸 expected value로 TD 알고리즘을 적용하는 것이다.

이렇게 되면 Expected sarsa는 sarsa에 비해 낮은 variance를 가진다는 특징이 생긴다.




아래 그래프에서 x축은 step size 를 나타내고 y축은 average return을 나타낸다.
거의 모든 값에서 expected sarsa가 sarsa에 비해 더 높은 값을 가진다.
또한, 이러한 환경은 결정론적인 환경이라 sample 뽑기 이외의 다른 무작위성을 고려할 필요가 없다.

100,000개 이후 에피소드 그래프를 그리면 아래와 같다.



이번 강의에서는 TD control 내용인 Sarsa, Q-learning, Expected Sarsa를 비교해 볼 것이다.

Expected Sarsa에서는 를 따르는 특정 action에 대한 기대치를 계산하여 업데이트 한다.
이는 다음 state에서 취한 실제 action과는 독립적으로 계산된다는 점에 유의하여야 한다.
즉, Q-learning과 마찬가지로 Expected Sarsa에서는 policy를 벗어난 학습을 할 수 있다는 점이 특징이다.

만약 behavior policy에서 가장 가치가 높은 기대치를 greedy하게 뽑으려 한다면 어떻게 될까?



