本節課主要內容:
- On-Policy Monte-Carlo Control
- On-Policy Temporal-Difference Learning
- Off-Policy Learning
On-Policy Monte-Carlo Control
上節課講了model-free的預測,這節課講優化控制。
回憶一下之前的內容,lecture03講到對於給定模型的MDP,通過V(s)改進策略:
如果我們想知道v(s)的值,那我們總是需要求出環境的模型。而行動價值函數
但是每次總是選擇最好的Q保證了exploitation,不能滿足exploration,也就是沒有遍歷足夠多的情況。因此用
以下證明
因此,我們是使用lecture04 講到的Monte-Carlo進行policy evaluation,用
- 所有的狀態-行動對被無限地探索很多次。
limk→∞Nk(s,a)=∞ - 策略最終收斂到一個貪心算法。
limk→∞πk(a|s)=1(a=argmaxa′∈AQk(s,a′))
舉個例子,若
現在我們有了一個完整的未知環境MDP的解決方案:GLIE Monte-Carlo Control。
- 使用策略
π 採樣一個episode:S1,A1,R2,...,ST∼π - 更新episode中的每個狀態和行動:
N(St,At)←N(St,At)+1
Q(St,At)←Q(St,At)+1N(St,At)(Gt−Q(St,At)) - 基於新的行動-價值函數改進策略
ϵ←1/k
π←ϵ−greedy(Q)
On-Policy Temporal-Difference Learning
TD相對於MC有很多優點,比如低方差、online、不完整的序列,因此考慮在控制優化使用TD而不是MC:將TD應用到
這稱之爲Sarsa方法,算法如下:
這是經過1步的Sarsa算法,和之前的TD算法類似,Sarsa也有經過n步。設經過n步的Q-return爲:
1. forward-view中的
2. backward-view在online的算法中使用eligibility trace:
Off-Policy Learning
前面討論的都是建立在已知策略的基礎上的,所用的策略就是正在學習的策略,但是有一些情況,我們想學習別的策略,比如我們想學習行爲策略
爲什麼要關心未知策略的學習呢?
- 通過觀察周圍的環境和周圍人的行爲來學習。
- 二次使用舊的策略。
- 在exporation的時候能夠學習到最優策略。
- 在exploitation的時候能夠學習到多個策略。
那怎麼選擇策略呢?使用importance sampling。採用兩個策略
對於off-policy Monte-Carlo使用importance sampling:
- 使用面向Monte-Carlo的策略
μ 產生的return來估計策略π Gπ/μt=π(At|St)μ(At+1|St+1)π(At+1|St+1)μ(At+1|St+1)...π(AT|ST)μ(AT|ST)Gt - 更新價值:
V(St)←V(St)+α(Gπ/μt−V(St))
對於off-policy TD使用importance sampling:
- 使用面向TD的策略
μ 產生的return來估計策略π - 給TD的目標
R+γV(S′) 加權 - 更新價值:
V(St)←V(St)+α(π(At|St)μ(At|St)(Rt+1+γV(St+1))−V(St)) - 比Monte-Carlo importance sampling的方差小
- 不需要每一步的策略都相同
針對off-policy的解決方案是Q-learning。off-policy的行動-價值函數
最後貼上DP和TD的關係: