上一節主要講了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’,就是下一步采取的動作
Q-Learning(off-policy)
處于狀态 s’ 時,計算了在 s’ 時要采取哪個 a’ 可以得到最大的 Q 值,但在下一輪循環時并沒有采取這個用于計算的動作 a’,而是重新根據 e-greedy 選的 a。
即:用于計算的動作a’,并不是下一步采取的動作
off-policy方法行為政策和估計政策是分離的,行為政策是用來做決策的,也就是選擇下一步動作的,而估計政策是确定的,例如貪心政策,用來更新值函數的。這種分離的優點是估計政策是确定的,同時行為政策能夠持續抽樣所有可能的動作。
參考:
強化學習(五):Sarsa算法與Q-Learning算法
時間差分方法Q-learning和sarsa的差別