天天看點

強化學習(五) - 無模型學習(Sarsa、Q-Learning)

上一節主要講了Monte-Carlo learning,TD learning。這兩個方法都是在給定政策下來估計價值函數V(s)。

但是我們的目标是想得到最優政策。

基于模型的政策優化過程分為政策評估和政策改進。從一個政策 π 和 v(s) 函數開始,先利用目前政策 π估算v值,然後通過v值來更新政策 π。交替疊代,最後會收斂到最優政策和最優價值函數。

那麼對于模型未知的情況,是否還能使用呢?答案是不能。

模型未知的情況下無法知道目前狀态的所有可能的後續狀态,進而無法确定在目前狀态下應該采取哪個動作是最好的。解決這個問題是利用Q(s,a)來代替V(s)。這樣即使不知道目前狀态的所有後續狀态,我們也可以根據已有的動作來選擇。

這樣政策評估與政策改進就變成:從一個政策 π 和初始的 Q(s,a) 開始,先利用目前政策 π 估算q值,然後通過q值來更新政策 π。交替疊代,最後會收斂到最優政策和最優價值動作函數。

不過利用Q(s,a)來代替V(s)有一個問題是,因為不知道目前狀态能夠執行的所有動作,是以隻選擇目前最好的動作可能會陷入局部最優。 是以需要偶爾去嘗試新的動作,這就是探索(exploration)。

Sarsa、Q-Learning

蒙特卡羅學習需要完整的episode才能更新,而TD learning可以做到單步更新。Q-learning和sarsa都是基于TDL來更新目前行為值函數的。

唯一不同的是在Q-learning中,行動政策(産生資料的政策)和要評估的政策不是一個政策,是以稱之為異政策(off-policy)。而在sarsa中,正好相反,也就是行動政策(産生資料的政策)和要評估的政策是一個政策,稱之為同政策(on-policy)。

Sarsa(on-policy)

處于狀态 s’ 時,利用 e-greedy 選擇了用于更新Q值的a’,而且在下一輪循環也采取了該動作 a’。

即:用于計算的動作a’,就是下一步采取的動作

強化學習(五) - 無模型學習(Sarsa、Q-Learning)

Q-Learning(off-policy)

處于狀态 s’ 時,計算了在 s’ 時要采取哪個 a’ 可以得到最大的 Q 值,但在下一輪循環時并沒有采取這個用于計算的動作 a’,而是重新根據 e-greedy 選的 a。

即:用于計算的動作a’,并不是下一步采取的動作

強化學習(五) - 無模型學習(Sarsa、Q-Learning)

off-policy方法行為政策和估計政策是分離的,行為政策是用來做決策的,也就是選擇下一步動作的,而估計政策是确定的,例如貪心政策,用來更新值函數的。這種分離的優點是估計政策是确定的,同時行為政策能夠持續抽樣所有可能的動作。

參考:

強化學習(五):Sarsa算法與Q-Learning算法

時間差分方法Q-learning和sarsa的差別

繼續閱讀