Q-Learning演算法:學習動作值函式(Action Value Function)

學習動作值函式(也稱Q函式)有兩個輸入值,分別為“state”和“action”。它將返回在該狀態下(state)執行該動作(action)後的預期未來獎勵。

透過 Q-learning 深入理解強化學習(下)

我們可以認為,Q函式即是一個在Q-table上滾動的讀取器,我們可以用它來尋找與當前狀態(state)關聯的行,以及與我們的動作(action)相關聯的列。它會從相匹配的單元格中返回Q值,該值便是“預期未來獎勵”。

透過 Q-learning 深入理解強化學習(下)

在我們探索這個環境(environment)之前,Q-table會給出同一個任意固定值(多數為0)。隨著我們對環境的探索,Q-table將會利用貝爾曼方程迭代更新Q(s,a)以給出一個更好的近似值(見下文!)。

Q-Learning演算法流程

透過 Q-learning 深入理解強化學習(下)

Step 1:初始化Q值

建立一個Q-table,橫軸為m(動作值),縱軸為n(狀態值)。初始值為0。

透過 Q-learning 深入理解強化學習(下)

Step 2: 終身學習

重複步驟3-5,直到達到episode的最大值(由使用者指定),或者手動停止訓練。

Step 3:選擇一個動作(action)

基於當前Q值估計得出的狀態s下選擇一個動作a。

但是……如果每個Q值都等於0,那麼我們一開始應該選擇什麼動作呢?

在這裡,我們就可以瞭解年前那篇文章裡所提及的exploration/exploitation tradeoff的重要性了。

思路就是,在一開始,我們就採取epsilon貪婪策略。

1)指定探索速率epsilon,從1設定起,作為我們隨機採取的步長。一開始,這個速率應該處於最大值,因為我們並不知道Q-table中的任何一個值。這也就意味著,我們要透過隨機選擇動作做出更多的exploration(探索)。

2)生成隨機數。如果該數大於epsilon值,那麼我們就開始“exploitation”(這也就意味著,我們利用的已知資訊來選擇每一步的最佳動作)。否則,我們就開始“exploration”。

透過 Q-learning 深入理解強化學習(下)

Step-4-5: 評估(Evaluate)

實施動作a,觀察結果狀態s’和獎勵r。現在,更新函式Q(s,a)。

實施步驟3中選擇的動作a,得到一個新的狀態 s’和獎勵r(正如我們在強化學習流程中看到的)。

然後,利用貝爾曼方程式更新Q(s,a),

透過 Q-learning 深入理解強化學習(下)

如下方程式碼所示,更新 Q(state,action)

透過 Q-learning 深入理解強化學習(下)

舉個例子:

透過 Q-learning 深入理解強化學習(下)

一個芝士=+1

兩個芝士=+2

大堆芝士=+10(本輪結束)

老鼠藥=-10(本輪結束)

Step 1:啟動Q-table

透過 Q-learning 深入理解強化學習(下)

初始化Q-table

Step 2: 選擇一個動作(action)

在起點時,你可以選擇向右或是向上。因為epsilon速率比較大(即使我們對環境並不瞭解),所以選擇隨機。比如說……向右走。

透過 Q-learning 深入理解強化學習(下)

透過 Q-learning 深入理解強化學習(下)

隨機移動(比如說,向右)

我們發現了一塊芝士(+1),那麼現在我們可以更新最初的Q值並且向右移動。如何實現這一行徑呢?貝爾曼方程式可以做到。

Step 4-5:更新Q函式

透過 Q-learning 深入理解強化學習(下)

透過 Q-learning 深入理解強化學習(下)

1)首先,計算Q值ΔQ的變化(開始,向右)

2)然後,將初始化Q值與ΔQ(開始,向右)和學習率的積相加。

透過學習率,我們可以知道,網路在生成新值時,是有多麼快地遺棄舊值。如果學習率是1,那麼新的預估值就是新的Q值。

透過 Q-learning 深入理解強化學習(下)

更新後的Q-table

至此,我們已經完成更新了初始Q值,現在,我們需要反覆操作,直到停止學習

實施Q-Learning演算法

詳見影片:

透過 Q-learning 深入理解強化學習(下)

https://www。zhihu。com/video/1079019492809629696

影片來源:

https://

youtu。be/q2ZOEFAaaI0

大家好,我是AI搬運工

致力於將國外的AI好文,翻譯成大家都懂的中國話!

本文屬於AI搬運工自行翻譯,如有錯誤,歡迎指正!

原文來源:Diving Deeper into Reinforcement Learning with Q-learning

喜歡就點個贊哦~

我會持續更新噠

近期文章回顧:

透過 Q-learning 深入理解強化學習(下)

用有趣的文字,教你強化學習入門知識(下)

用有趣的文字,教你強化學習入門知識(上)

如何辨別哪些是人工智慧生成的虛假影象?

機器學習之透過開發集和評價指標加速迭代

機器學習之最佳化指標和滿意度指標