본 포스팅은 David Silver 교수님의 강화학습 강의와 그 강의를 정리한 팡요랩 강의를 바탕으로 정리한 것입니다.
환경을 알지 못하는 상황에서 던져진 Agent를 이용하여 어떻게 value function을 추정할 것인가? <Prediction 문제>
Environment의 MDP에 대한 정보를 알지 못하는 상황
MDP를 모른다?
내가 어떤 action을 했을 때 받는 reward 를 사전에 알지 못한다. → 직접 경험해봐야 알 수 있다.
내가 어떤 action을 했을 때 어떤 next-state로 transition할지를 결정하는 transition probability 를 알지 못한다.
prediction 문제 : MDP를 모를 때, value function을 구하는 과정
control 문제 : MDP를 모를 때, 최적의 optimal policy를 찾는 과정 → (next chapter)
Mote-Carlo method?
실제로 구하기 어려운 값을 계산할 때, Agent의 “경험”을 기반으로 구해진 실제 값들을 이용하여 추정하는 방법
(in prediction)
prediction 문제에는 Agent가 따르는 “policy”가 정의되어있기 때문에 실제로 agent가 해당 policy를 따라서 environment를 경험하도록 한다. 이를 하나의 episode라고 한다.
episode를 수행하면서 얻은 각각의 실제 return 값을 저장하고 평균을 구하면, value를 계산할 수 있다.
→ value function의 definition이 return의 expectation이기 때문!
Policy Evaluation의 목적 : agent가 policy 를 따라 경험한 episode를 이용하여 를 찾는 것
Monte-Carlo 방법의 적용
가정 : Agent가 모든 state 를 방문해야한다.
why? 에 근접해야하기 때문
First-visit MC Update : Agent가 해당 state에 처음 방문 했을 때만, 방문횟수를 증가시키고 return을 더한다.
To evaluate state ,
Increment counter
Increment total return
Mean return
⇒ 큰 수의 법칙; law of large number에 따라 에 가까워질수록 에 수렴한다.
Every-visit MC Update: Agent가 해당 state에 방문 할 때마다, 방문횟수를 증가시키고 return을 더한다.
To evaluate state ,
for
every time-step in each
episodeIncrement counter
Increment total return
*한번에 평균을 구하여 업데이트를 하는 것이 아니라 하나의 에피소드가 끝날때마다 조금씩 평균을 업데이트 하는 방법
Incremental Mean
MC Update
Temporal-Difference method의 아이디어
Agent의 “경험”을 기반으로 추정하는 방법
TD는 incomplete episode에서도 업데이트 할 수 있다.
TD updates a guess towards a guess
💡 1-step을 더 진행하면 1-step만큼의 실제정보(=reward)가 반영되기 때문에 더 정확한 value를 가지고 있을 것이다 !
Policy Evaluation의 목적 : agent가 policy 를 따라 경험한 episode를 이용하여 를 찾는 것
Temporal-Difference 방법의 적용
TD target :
TD error : ; target과 실제 값의 차이
TD를 적용할 때는 1-step만 진행하고 바로 update를 진행할 수도 있지만, 여러번의 step을 진행하고 나서 그 때의 값을 이용하여 update하는 방법을 사용할 수도 있다.
→ 이때 terminal state까지의 step을 경험한뒤에 update하는 방법은 MC와 동일하다!
n-step Return
만큼의 실제 reward와, 번째 step에서의 추정 value function의 합으로 표현한다.
n-step TD target :
n-step TD error : ; target과 실제 값의 차이
🍎 TD(0)과 MC사이에는 둘의 효과를 극대화할 수 있는 가장 적절한 sweet-spot이 존재한다.
Averaging n-Step Returns
각 n-step return 에 대하여 weight를 적용하여 계산한다.
이 커질수록 가 계속해서 곱해지게 되므로 더 작은 가중치를 가지게 된다.
TD() weighting function
Forward-view TD()
작은 step만이 아닌, 미래를 보고 update한다.
MC에서 사용하는 return도 사용하기 때문에 episode가 끝나야 계산할 수 있다.
Eligibility trace
어떤 사건이 일어났을 때, 그 사건에 대한 책임이 가장 큰 요소를 더 많이 update하는 방법
. 누가 책임이 가장 큰지는 어떻게 판단하는가?
아이디어 : heuristic을 이용하자!
Eligibility trace
TD-error
Backward-view TD()
TD(0)와 TD()의 장점을 모두 가진다.
일때의 TD-error에 대해 그 상황에서의 eligibility trace값을 곱한만큼 update한다. → 수학적으로 TD()와 동일함
TD() and TD(0)
일 때, 오직 current state만이 update된다.
TD(0) update
TD() and TD(1) and MC
일 때, episode의 끝까지 고려하게된다.
Theorem
The sum of offline updates is identical for forward-view and backward-view TD()
eligibility trace
update : online
total error
MC error의 표현
For general , TD errors also telescope to -error,
TD 총정리*
TD는 final outcome이 산출되기 전에 학습할 수 있다.
TD는 final outcome 없이도 학습할 수 있다.
bias
return 는 에 대한 unbiased estimate이다.
즉, value function의 정의에 따라 를 계속 sampling하면 결국 에 수렴할 것이다.
true TD target 은 에 대한 unbiased estimate이지만, 우리는 의 실제 값을 알지 못한 상태에서 계산하기 때문에 TD target은 은 biased estimate이다.
추정값을 이용하여 갱신하기 때문에 발생하는 biase가 존재하고 따라서 수없이 많이 반복하더라도 TD target이 실제 에 정확히 수렴하리라는 보장은 가질 수 없다.
variance
MC는 high variance, zero bias
TD는 low variance, some bias
state : A, B
아래의 8개의 episode에 대한 정보만을 알고 있을 때 의 값은?
MC : minimum MSE
TD(0) : max likelihood Markov model
→ 한정된 개수의 episode를 이용할 때는 MC와 TD를 사용하여 계산했을 때 value에 차이가 발생한다.
따라서,
TD는 Markov property를 사용하여 value를 추측한다. → Markov 환경에서 더 효율적이다.
MC는 Markov property를 사용하지 않고 value를 추측한다. → non-Markov 환경에서 더 효율적이다.
Backup 방법의 차이
Bootstrapping & Sampling
(bootstrapping & sampling 관점에서) RL method의 총정리*
Random Walk Example