強化學習總結(1)———Q Learning

本系列博客對莫煩視頻(https://morvanzhou.github.io/)的知識點進行總結。

強化學習基礎概念

強化學習的過程中會進行多次迭代,每次迭代都會進行上圖的操作。也就是Agent(智能體)根據現在的狀態做出一個自認爲最好的動作,然後環境根據這個動作給他返回一個獎賞和新的狀態。之後不斷循環這個過程直到智能體對環境充分熟悉,保證每次都能做出正確的動作,這就是強化學習的基本模型。

 

 

Q Learning

Q-Learning是強化學習算法中value_based的算法,該算法中,Q即爲Q(s,a),就是在某一時刻的 s 狀態下(s∈S),採取動作a (a∈A)動作能夠獲得收益的期望,環境會根據agent的動作反饋相應的回報reward,所以算法的主要思想就是將State與Action構建成一張Q表來存儲Q值,然後根據Q值來選取能夠獲得最大的收益的動作。Q表中一行代表一個狀態(state),一列代表一個動作(action),如下圖。

這個表所表示的環境中只有兩個狀態,就是s1和s2。Agent也只有兩個動作,a1和a2。

比如Agent當前狀態爲s1,他要選擇現在最好的動作,就是a2,就這麼簡單。

所以關鍵在於如何建立正確的Q表,Q Learming做的就是通過不斷的迭代更新優化這個Q表

下面是Q Learning如何更新Q表的過程。

Q(s,a)是Q表中s狀態下動作a的值,公式中的alpha代表的是學習效率,r是獎勵,gamma是衰減值,這些都是人爲設定的參數。首先整體來看每次更新Q(s,a)都是+=的形式,這也就是強化學習中”強化“的概念,也就是在學習的過程中不拋棄原有學到的東西,而是在此基礎上增加。現實減去估計再加上獎勵,就是這次學到的東西。

再看細節,代表的是當前做出動作以後,轉移到的下一個狀態中的最好動作的值,也就是現實值。而Q(s’,a')就是接下來要更新的值,這樣子不斷的迭代下去,每一層都會加上一個獎勵r,也就是說,這條路如果走下去是對的,那麼多次迭代的獎勵的累計值就會很大,那麼Q(s,a)更新後的值就會很大,代表着s狀態下,做出a動作就是很靠譜的。而這裏有個很重要的參數gamma,是一個0到1的值,它就代表着Agent高瞻遠矚的能力,如下圖。

如果gamma等於0,那麼Agent只能獲得當前的獎勵r2,只能看到眼前的利益,這是不聰明的,所以gamma值的設置很重要。

以上是目前我對Q Learning的學習總結。

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