2015-09-29 125 views
2

Q-Learning和SARSA的區別在於Q-Learning比較當前狀態和最佳狀態,在SARSA比較當前狀態和實際下一個狀態的情況下。Q-Learning與貪婪選擇對比SARSA

如果使用貪婪選擇策略,即在100%的時間內選擇具有最高動作值的動作,則SARSA和Q-Learning是否相同?

+0

要得到SARSA和Q學習之間的相似性更好的直覺,我建議看進入預期的SARSA。可以證明,在使用貪婪選擇策略時,預期SARSA等同於Q-Learning。 – Andnp

回答

7

呃,不是真的。 SARSA和Q學習之間的一個關鍵區別在於,SARSA是一種on-policy算法(它遵循的是正在學習的策略),而Q-learning是一種非策略算法(它可以遵循任何策略(滿足一些收斂要求)

請注意,在以下兩種算法的僞代碼中,SARSA選擇'和s',然後更新Q函數;而Q學習首先更新Q函數,然後選擇下一個要執行的操作在下一迭代中,從更新後的Q-函數導出,而不一定等於一個」選擇更新Q.

enter image description here

enter image description here

在任何情況下,兩個算法都需要探索(即採取與貪婪行爲不同的行動)來收斂。

SARSA和Q學習的僞代碼已經從薩頓和巴託的薄提取:Reinforcement Learning: An Introduction (HTML version)

+0

在僞代碼的例子中,很明顯SARSA和Q-Learning之間的區別在於,先驗是在政策上,而後者是在政策外。但是,當政策純屬貪婪(epsilon = 0)時,它們是不是一樣? 我之所以問,是因爲當使用Q值的泛化時,將epsilon設置爲0是合適的,因爲泛化算法會在評估每個狀態中的動作時出錯。 – Mouscellaneous

+4

在上面的兩個實現中,在epsilon = 0的情況下,動作總是基於從Q派生的策略來選擇。但是,Q學習首先更新Q,並且基於更新的Q選擇下一個動作。對於SARSA ,它會選擇下一個動作並在更新之後Q.所以,我認爲它們不是等價的。 –

+1

在泛化的情況下,Q函數近似於某個誤差的事實並不能保證所有狀態下的所有動作都可以選擇不同於0的概率。因此,引入探索並不是一個好方法。 –

1

如果我們只用貪婪的政策那麼就不會有這樣的探索學習將無法正常工作。在epsilon變爲0(例如1/t)的極限情況下,SARSA和Q-Learning將收斂到最優策略q *。然而,隨着ε的修正,SARSA將會收斂到最優策略,而Q-Learning將收斂到最優策略q *。

我寫了一個小紙條這裏解釋一下兩者之間的差異,並希望它能夠幫助:

https://tcnguyen.github.io/reinforcement_learning/sarsa_vs_q_learning.html