總結:比較SARSA、SARSA(lambda)、Q-learning、on policy and off policy


前幾天面試的時候被問到RL一些基礎算法的區別,回來抽空做了一些整理方便加深理解。

On policy與off policy

為了解決強化學習中探索與利用的平衡問題,可以采用兩個策略訓練模型,一個策略為行為策略,用於保持探索性,提供多樣化的數據,不斷優化另一個策略(目標策略)。

on policy的目標策略與行為策略是一個策略,在優化時,兩個策略同時被優化。而off policy的目標策略與行為策略不同,可以采用重要性采樣的方法實現這一目標,一個具體的例子是蒙特卡洛on policy算法與蒙特卡洛off polic算法。

 

SARSA算法流程

本質是時序差分算法,它是on policy的

 

SARSA(lambda)即為TD(lambda)算法(eligibility trace),即在更新當前步時,也會同時對前面的步驟進行更新,具體算法如下

和Sarsa相比,Sarsa(lambda)算法有如下優勢:

 Sarsa雖然會邊走邊更新,但是在沒有獲得奶酪之前,當前步的Q值是沒有任何變化的,直到獲取奶酪后,才會對獲取奶酪的前一步更新,而之前為了獲取奶酪所走的所有步都被認為和獲取奶酪沒關系。Sarsa(lambda)則會對獲取奶酪所走的步都進行更新,離奶酪越近的步越重要,越遠的則越不重要(由參數lambda控制衰減幅度)。因此,Sarsa(lambda) 能夠更加快速有效的學到最優的policy。

在算法前幾回合,老鼠由於沒有頭緒, 可能在原地打轉了很久,從而形成一些重復的環路,而這些環路對於算法的學習沒有太大必要。Sarsa(lambda)則可解決該問題,具體做法是:在E(s,a)←E(s,a)+1這一步之前,可先令E(s)=0,即把狀態s對應的行置為0,這樣就只保留了最近一次到達狀態s時所做的action。

 

Q-learning是sarsa的off-policy版本,對於Q-Learning,我們會使用ϵ−貪婪法來選擇新的動作,這部分和SARSA完全相同。但是對於價值函數的更新,在選取下一步最優動作時,Q-Learning使用的是MAX貪婪法(用目標策略選取動作進行評估),而不是SARSA的ϵ−貪婪法(用行為策略選取動作進行評估)。這一點就是SARSA和Q-Learning本質的區別。Q-learning具體算法如下:

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM