強化學習(五) - 無模型學習(Sarsa、Q-Learning)
阿新 • • 發佈:2018-11-10
上一節主要講了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)
處於狀態 s’ 時,利用 e-greedy 選擇了用於更新Q值的a’,而且在下一輪迴圈也採取了該動作 a’。
即:用於計算的動作a’,就是下一步採取的動作
Q-Learning(off-policy)
處於狀態 s’ 時,計算了在 s’ 時要採取哪個 a’ 可以得到最大的 Q 值,但在下一輪迴圈時並沒有採取這個用於計算的動作 a’,而是重新根據 e-greedy 選的 a。
即:用於計算的動作a’,並不是下一步採取的動作
off-policy方法行為策略和估計策略是分離的,行為策略是用來做決策的,也就是選擇下一步動作的,而估計策略是確定的,例如貪心策略,用來更新值函式的。這種分離的優點是估計策略是確定的,同時行為策略能夠持續抽樣所有可能的動作。
參考:
強化學習(五):Sarsa演算法與Q-Learning演算法
時間差分方法Q-learning和sarsa的區別
</div>