第三章 方法設計
第三節 於模擬環境以強化學習訓練路由協定
3.3.4 數值逼近法
圖 10. 調整後的回放緩衝:此修改版本相較於圖 9 將原本紀錄 𝑎$)* 改為紀錄 𝐴$)* 。也就是下一時刻的 所有可能選擇的轉送車輛,都需要被記錄於回放緩衝內。
從數學式 (18) 以及數學式 (19) 中可以發現,SARSA 或是 Q-Learning 所需的變數皆已 記錄在回放緩衝之中,因此透過「模擬」、「經由SARSA 或者 Q-Learning 的學習演算 法更新行動價值函數」的不斷循環,路由策略將逐步最佳化乃至收斂。剩下的問題在於 第二節的最後所提到:如何儲存連續範圍且無限大的行動價值函數。
3.3.4 數值逼近法
儲存連續範圍且無限大的行動價值函數包含兩個層面的問題:1) 連續範圍的行動價值 函數意味著每個狀態可能僅只出現一次,兩個狀態可能很相似但幾乎不完全相同,這個 問題需要有某種映射函式將一群相似的狀態映射至某個標籤;2) 另一個層面則是攸關 於以何種資料夾夠儲存於記憶體當中。而這兩個層面都可以透過數值逼近 (Value Approximation) 的方式解決。
數值逼近可以採用分群 (Clustering) 或是回歸 (Regression) 等模型,這裡選擇的是 多層感知機 (Multi-Layer Perceptron, MLP),為一種類神經網路模型 (Neural Network),
透過將最後一層的輸出透過線性激發單元 (Linear Activator Unit) 輸出,使其在大多數 的回歸問題上有優秀的表現。圖 11 顯示多層感知機如何用於儲存行動價值函數 𝑄(𝑠$, 𝑎$) :輸入狀態 𝑠$ 以及動作 𝑎$ ,通過多層感知機的推導後,得到輸出的行動價值 函數 𝑄(𝑠$, 𝑎$) :
圖 11. 使用多層感知機作數值逼近:透過輸入狀態 𝑠$ 與動作 𝑎$ ,得到行動價值函數 𝑄(𝑠$, 𝑎$)
假設多層感知機的模型權重 (Weights) 為 𝑀 ,為了保持強化學習在同一次模擬中使用 一致的路由策略、以及多層感知機的訓練上可以收斂。因此使用另一組固定的權重 𝑀¢ , 獨立於更新中的權重 𝑀 ,在模擬中提供 vDRL 的路由策略使用。以多層感知機實作數 值逼近後,SARSA 學習演算法可以從數學式 (18) 改寫如下式 (20):
𝑄£(𝑠$, 𝑎$) ← 𝑄£¢(𝑠$, 𝑎$) + 𝛼(𝑟$)*+ 𝛾𝑄£¢(𝑠$)*, 𝑎$)*) − 𝑄£¢(𝑠$, 𝑎$)) (20) 相同的,Q-Learning 則可以從數學式 (19) 重新寫成 (21):
𝑄£(𝑠$, 𝑎$) ← 𝑄£¢(𝑠$, 𝑎$) + 𝛼(𝑟$)*+ 𝛾 max
|Ÿ-./𝑄£¢(𝑠$)*, 𝑎′$)*) − 𝑄£¢(𝑠$, 𝑎$)) (21) 權重 𝑀¢ 可以透過幾乎無成本的方式獲得而不需要分別儲存兩份權重,作法是路由策略 使用固定的權重 𝑀¢ 於模擬進行時,並一直使用直到模擬結束 SARSA 或 Q-Learning 介
入更新之後,將 𝑀¢ 與 𝑀 交換。換句話說, 𝑀 是 𝑀 ¤ 經過訓練更新後的版本,而每次模 擬開始時,我們使用最新的 𝑀 取代 𝑀¢ ,如此同時間只有一份權重需要儲存。
由於多層感知機屬於監督式學習 (Supervised Learning),訓練時必須提供輸入相對 應的輸出。這個輸出實際上為SARSA 或是 Q-Learning 的右項:
SARSA:
𝑄£(𝑠$, 𝑎$) ← 𝑄£¢(𝑠$, 𝑎$) + 𝛼(𝑟$)*+ 𝛾𝑄£¢(𝑠$)*, 𝑎$)*) − 𝑄£¢(𝑠$, 𝑎$)) (22) 以及 Q-Learning:
𝑄£(𝑠$, 𝑎$) ← 𝑄£¢(𝑠$, 𝑎$) + 𝛼(𝑟$)*+ 𝛾 max
|Ÿ-./𝑄£¢(𝑠$)*, 𝑎′$)*) − 𝑄£¢(𝑠$, 𝑎$)) (23) 這邊可以固定 α (學習率或步長)為 1,因為其可透過調整多層感知機訓練時所使用的 學習率達到相同效果。上面的數學式 (21) 以及 (22) 可以因此而簡化成如下面的數學式 (24) 和 (25):
𝑄£(𝑠$, 𝑎$) ← 𝑟$)*+ 𝛾𝑄£¢(𝑠$)*, 𝑎$)*) (24) 以及
𝑄£(𝑠$, 𝑎$) ← 𝑟$)*+ 𝛾 max
|Ÿ-./𝑄£¢(𝑠$)*, 𝑎′$)*) (25) 數學式 (24) 和 (25) 的右項,即我們所希望的多層感知機輸出。而輸出所需要的所有變 量也都已經被記錄在回放緩衝之中,因此整個多層感知機的訓練過程如圖 12:
圖 12. 多層感知機的訓練流程圖