• 沒有找到結果。

第五章 自組織增強式學習模型

5.2 SRLM 演算法

37

𝑄(𝑠𝑡, 𝑎𝑡) ← 𝑄(𝑠𝑡, 𝑎𝑡) + 𝛼 ∗ 𝜂(𝑡) ∗ [𝑟𝑡+ 𝛾 𝑚𝑎𝑥

𝑎 𝑄(𝑠𝑡+1, 𝑎) − 𝑄(𝑠𝑡, 𝑎𝑡)]

在上面的式子中,𝛼 是學習速率因子,𝑟𝑡 是在步驟 𝑡 下所得到的獎懲值;𝛾 是折扣率(discount factor)。 𝜂(𝑡) 所代表的即是兩個 SOM 的相鄰函式乘積,

我們稱它為 Q-neighborhood,同樣也是一個隨著時間遞減的函式。我們將此 修改後的 Q-learning 稱為 Neighborhood Q-learning。

38

7. 從環境中取得新狀態向量 𝐼

8. 以向量 𝐼 更新輸入層 SOM(以一般的 SOM 方法):

𝑤𝑚1 ← 𝑤𝑚1+ 𝜆𝑆∗ 𝜓𝑆(𝑗, 𝑚, 𝑁𝑆)(𝐼1− 𝑤𝑚1) 𝑤𝑚2 ← 𝑤𝑚2+ 𝜆𝑆∗ 𝜓𝑆(𝑗, 𝑚, 𝑁𝑆)(𝐼2− 𝑤𝑚2) For all state units, 𝑚.

9. 將新狀態向量 𝐼 放入輸入層 SOM 取得 𝑠𝑗。 10. 挑選下一個新狀態的預期動作:

𝑎𝑘 = {One with best Q-value for state, 𝑠𝑗 with probability 1 − 𝑝 Random action with probability 𝑝

11. 如果 𝑟 + 𝛾𝑄(𝑠𝑗, 𝑎𝑘) > 𝑄(𝑠𝑗, 𝑎𝑘) 就表示擾動動作優於建議動作,所 以可以朝著擾動動作向量來更新行動層:

𝑢𝑛1← 𝑢𝑛1+ 𝜆𝐴∗ 𝜓𝐴(𝑘, 𝑛, 𝑁𝐴)(𝑢𝑘1 − 𝑢𝑛1) 𝑢𝑛2← 𝑢𝑛2+ 𝜆𝐴∗ 𝜓𝐴(𝑘, 𝑛, 𝑁𝐴)(𝑢𝑘2 − 𝑢𝑛2) For all action units, 𝑚.

12. 更新所有的 Q-value,採用 SARA Q-learning 方式,使用 Neighborhood Q-learning 方法:

𝑄(𝑠𝑚, 𝑎𝑛) ← 𝑄(𝑠𝑚, 𝑎𝑛) + 𝛼 ∗ 𝜓𝑆(𝑗, 𝑚, 𝑁𝑆) ∗ 𝜓𝐴(𝑘, 𝑛, 𝑁𝐴)

∗ [𝑟 + 𝛾𝑄(𝑠𝑗, 𝑎𝑘) − 𝑄(𝑠𝑚, 𝑎𝑛)]

For all states units 𝑚, and actions units 𝑛.

39

13. 將 𝑠𝑗 與 𝑎𝑘 做為下一步訓練要用的 𝑠𝑗 與 𝑎𝑘 ,回到步驟 3。

在上面的演算法裡面,𝑢𝑘𝑖 指的是行動層 SOM 裡第 𝑘 個單元的第 𝑖 個 權重,同樣地,𝑤𝑚𝑖 則是輸入層 SOM 的權重。𝑟𝑎𝑛𝑑𝑜𝑚(−1,1) 從 [-1,1] 的 範圍間產生擾動動作的隨機雜訊(也可以使用 Gaussian noise),𝜀 則作為探 索行動空間的控制量。𝑠𝑗 是接著 𝑠𝑗 之後會出現的狀態,𝑎𝑘 是在 𝑠𝑗 下挑選 的一個預期的行動,每一次的輸入向量訓練後所產生的新狀態 𝑠𝑗 與預期行 動 𝑎𝑘 都會變成下一步訓練要用的 𝑠𝑗 與 𝑎𝑘

採用 SARSA 方式,依照下一步會選擇的行動,求出下一步可能會預期 到的 Q-value 值 𝑄(𝑠𝑗, 𝑎𝑘) 來對整個一連串的行動過程優化,如果學習過程 已經到了末期,沒有再進行探索的必要,那麼就會使用最大化函式來取得該 值(即一般正常的 Q-learning 方法):

𝑄(𝑠𝑗, 𝑎𝑘) ← 𝑚𝑎𝑥

𝑎 𝑄(𝑠𝑗, 𝑎)

𝜆A 是行動層的學習速率,𝜆𝑆 則是輸入層的學習速率,𝛼 是 Q-learning 的 學 習 速 率 。𝜓𝑆(𝑗, 𝑚, 𝑁𝑆) 是輸入層的勝出神經元 𝑗 在符合相近範圍

(neighborhood size) 𝑁𝑆 裡的相近單元 𝑚 所具有的 neighborhood value,𝜓𝐴 則是屬於行動層的 neighborhood value。

一種簡單的線性相鄰函式可以像:

𝜓𝑆 (𝑗, 𝑚, 𝑁𝑆 ) = max (0, 1 − [𝑑/(𝑁𝑆+ 1)])

40

在上式中,𝑑 是指神經元 𝑗 與 𝑚 之間的拓撲距離。一般 𝑁𝑆 會是一個 整數,例如 3;而 𝑑 則常見的是使用如上一章節所說的方盒距離來測量拓撲 距離,所以此例如果 𝑑 = 5,那麼表示該神經元並不是勝出神經元的相近單 元,所以其 neighborhood value 就會是 0,而不會對神經元進行更新。

學習速率 𝛼、𝜆A、𝜆S 與相近範圍 𝑁𝑆、𝑁𝐴 的設定會關係到系統的適應 能力,而 𝑝 與 𝜀 則控制系統的探索能力,在 𝑝 的機率下會採取隨機的行 動,𝜀 控制行動層最大的探索距離。這些參數值都必須靠經驗和經過學習的 鍛練來取得。

在圖 14 中,將環境裡的動態狀態表示為輸入層 SOM 裡的神經元,行動 層 SOM 的神經元表示可作用在學習中的動態行動。輸入層接收到原始狀態 訊息後將狀態轉為離散的 Q-table 狀態索引值,然後挑選動作。行動層將動作 加入雜訊後輸出,取得獎懲值。依照擾動動作的獎懲來決定行動層 SOM 是 否要進行學習,其它輸入層 SOM 與 Q-table 則依照一般的方式更新。另外要 注意訓練過程是連續步驟的,而不是分別先對 SOM 或 Q-table 做個別的訓 練。

41

圖 14:自組織增強式學習模型演算法流程 Outputs

Input SOM

Action SOM

Q-table Q-value

Add Noise Reward

Learn?

Inputs

42