兩者的區別
- 兩者的區別就在於Q值的更新公式上:
- Sarsa
- Q-learning
- 明確兩個概念:行爲策略和目標策略
- 行爲策略:agent在與環境互動時,究竟怎樣通過Q表來選擇action。兩個算法是一樣的,都爲-greedy。
- 目標策略:
- 即最終要得到的策略,也就是找到.有了它之後,每次在真實場景下,直接通過找對應狀態下的最優action即可。
- agent訓練的最終目的,是讓Q值表確定下來。一般也不一定能完全確定,就是可能比較穩定收斂了,就近似認爲是最優。
- 兩個算法的區別也就在這裏,就是對Q值的更新方法不同,具體見上面公式。
直觀解釋
- 有了前面的鋪墊,就很好解釋了。
- Sarsa的行爲策略,目標策略一致。意味着在訓練的過程裏,它實際上採取的行動,和它根據行動後的反饋,對自身目標的更新,都是一致的。這和下面的Q-learning算法形成鮮明對比。
- Q-learning的行爲策略和目標策略不一致。導致agent會在環境裏,做一些目標策略以外的事。 用RL裏的一個專業術語,可以說是更多探索。好處是也許能發現驚喜,比如很難找到的全局最優。或者一些不會掉的坑,讓agent受到更強烈的反饋,以後就絕對不會再掉進去等。
作用場景
Sarsa
Sarsa 就是目標策略和實際行爲一致的算法。適合做一些,我們希望agent在學習過程中,表現“良好”的場景。不希望他做一些”出格“,”意料外“的事。比如一個機器人很貴重,Sarsa下,它不太可能會去做冒險的事,比如掉進陷阱,導致摔壞設備的情況。
Q-learning
允許agent做一些冒險的事,可以不計成本。比如新車的測試,我需要它能遇到一些緊急情況,並看它的處理行爲如何。只有這樣,才能保證人坐在上面也是安全的。
參考