什麼是 Sarsa (強化學習)

今天我們會來說說強化學習中一個和 Q learning 類似的演算法, 叫做 Sarsa.

注: 本文不會涉及數學推導. 大家可以在很多其他地方找到優秀的數學推導文章.

因為本文原作是一段短視頻介紹.

所以首先放視頻鏈接: Youtube 或者 優酷.

也可以在這個網頁找到其他很多相關內容: 莫煩 Python

在強化學習中 Sarsa 和 Q learning 及其類似, 這節內容會基於之前我們所講的 Q learning. 所以還不熟悉 Q learning 的朋友們, 請前往我製作的 Q learning 簡介 (知乎專欄). 我們會對比 Q learning, 來看看 Sarsa 是特殊在哪些方面. 和上次一樣, 我們還是使用寫作業和看電視這個例子. 沒寫完作業去看電視被打, 寫完了作業有糖吃.

Sarsa 決策

Sarsa 的決策部分和 Q-learning 一模一樣, 因為我們使用的是 Q 表的形式決策, 所以我們會在 Q 表中挑選值較大的動作值施加在環境中來換取獎懲. 但是不同的地方在於 Sarsa 的更新方式是不一樣的.

Sarsa 更新行為準則

同樣, 我們會經歷正在寫作業的狀態 s1, 然後再挑選一個帶來最大潛在獎勵的動作 a2, 這樣我們就到達了 繼續寫作業狀態 s2, 而在這一步, 如果你用的是 Q learning, 你會觀看一下在 s2 上選取哪一個動作會帶來最大的獎勵, 但是在真正要做決定時, 卻不一定會選取到那個帶來最大獎勵的動作, Q-learning 在這一步只是估計了一下接下來的動作值. 而 Sarsa 是實踐派, 他說到做到, 在 s2 這一步估算的動作也是接下來要做的動作. 所以 Q(s1, a2) 現實的計算值, 我們也會稍稍改動, 去掉maxQ, 取而代之的是在 s2 上我們實實在在選取的 a2 的 Q 值. 最後像 Q learning 一樣, 求出現實和估計的差距 並更新 Q 表裡的 Q(s1, a2).

對比 Sarsa 和 Q-learning 演算法

從演算法來看, 這就是他們兩最大的不同之處了. 因為 Sarsa 是說到做到型, 所以我們也叫他 on-policy, 在線學習, 學著自己在做的事情. 而 Q learning 是說到但並不一定做到, 所以它也叫作 Off-policy, 離線學習. 而因為有了 maxQ, Q-learning 也是一個特別勇敢的演算法.

為什麼說他勇敢呢, 因為 Q learning 機器人 永遠都會選擇最近的一條通往成功的道路, 不管這條路會有多危險. 而 Sarsa 則是相當保守, 他會選擇離危險遠遠的, 拿到寶藏是次要的, 保住自己的小命才是王道. 這就是使用 Sarsa 方法的不同之處.

如果你對以上內容感興趣, 也想實際動手做做看, 這還有更多使用 python 來編寫以上內容的教程: 莫煩 Python

推薦閱讀:

巡洋艦深度學習特訓營
說說為什麼svm中的某核能映射到無窮維
帶你讀機器學習經典(三): Python機器學習(Chapter 1&2)

TAG:强化学习ReinforcementLearning | 深度学习DeepLearning | 机器学习 |