講清楚Sarsa和Q-learning的對比,各自起作用的場景

兩者的區別

  • 兩者的區別就在於Q值的更新公式上:
  • Sarsa
    Q(st,at)=Q(st,at)+α(rt+γQ(st+1,at+1)Q(st,at)) Q\left(s_{t}, a_{t}\right)=Q\left(s_{t}, a_{t}\right)+\alpha^{*}\left(r_{t}+\gamma^{*} Q\left(s_{t+1}, a_{t+1}\right)-Q\left(s_{t}, a_{t}\right)\right)
  • Q-learning
    Q(st,at)=Q(st,at)+α(rt+vmaxaQ(st+1,a)Q(st,at)) Q\left(s_{t}, a_{t}\right)=Q\left(s_{t}, a_{t}\right)+\alpha^{*}\left(r_{t}+v^{*} \max _{a} Q\left(s_{t+1}, a\right)-Q\left(s_{t}, a_{t}\right)\right)
  • 明確兩個概念行爲策略和目標策略
    • 行爲策略:agent在與環境互動時,究竟怎樣通過Q表來選擇action。兩個算法是一樣的,都爲ϵ\epsilon-greedy。
    • 目標策略:
      • 即最終要得到的策略,也就是找到QQ_*.有了它之後,每次在真實場景下,直接通過QQ_*找對應狀態下的最優action即可。
      • agent訓練的最終目的,是讓Q值表確定下來。一般也不一定能完全確定,就是可能比較穩定收斂了,就近似認爲是最優。
      • 兩個算法的區別也就在這裏,就是對Q值的更新方法不同,具體見上面公式。

直觀解釋

  • 有了前面的鋪墊,就很好解釋了。
  • Sarsa的行爲策略,目標策略一致。意味着在訓練的過程裏,它實際上採取的行動,和它根據行動後的反饋,對自身目標的更新,都是一致的。這和下面的Q-learning算法形成鮮明對比。
  • Q-learning的行爲策略和目標策略不一致。導致agent會在環境裏,做一些目標策略以外的事。 用RL裏的一個專業術語,可以說是更多探索。好處是也許能發現驚喜,比如很難找到的全局最優。或者一些不會掉的坑,讓agent受到更強烈的反饋,以後就絕對不會再掉進去等。

作用場景

Sarsa

Sarsa 就是目標策略和實際行爲一致的算法。適合做一些,我們希望agent在學習過程中,表現“良好”的場景。不希望他做一些”出格“,”意料外“的事。比如一個機器人很貴重,Sarsa下,它不太可能會去做冒險的事,比如掉進陷阱,導致摔壞設備的情況。

Q-learning

允許agent做一些冒險的事,可以不計成本。比如新車的測試,我需要它能遇到一些緊急情況,並看它的處理行爲如何。只有這樣,才能保證人坐在上面也是安全的。

參考

  1. stackoverflow
  2. zhihu
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章