• 沒有找到結果。

第二章 相關文獻探討

第二節 強化學習背景

強化學習 (Reinforcement Learning, RL) [7][9][8] 不同於非監督式學習 (Unsupervised Learning)探 索 資 料 其 本 身 之 組 成 架 構 或 是 監 督 式 學 習 (Supervised Learning) 目的在於找出輸入與輸出之間的關係,強化學習適合 用來推算出長期的最佳策略,其可以透過過程中每一次的資料來做判斷與 修正,雖然在當下可能不是最好的方式,但對於整體而言會幫助達到更好 的結果,正是因為有能夠隨著每次變動而變更反應的機制,用於交通規劃 這種即時且有關聯性的資料會有不錯的效益。此小節會先介紹強化學習的 專有名詞,再介紹強化學習的相關方法。

2.2.1 強化學習常用名詞解釋

強 化 學 習 當 中 有 幾 個 主 要 的 名 詞 , 分 別 為 : 代 理 人(Agent)、 環 境 (Environment)、狀態(State)、動作(Action)以及獎勵(Reward),以下會依照 順序個別介紹:

圖1. 強化學習組織架構流程示意圖。

⚫ 代理人(Agent):

在強化學習中扮演做決策的角色,會依照環境中各個時間點的狀態,

來決定要執行的動作。

⚫ 環境(Environment):

代理人所在的環境,也可以說是欲解決的事件情境,例如5個小時 內的高速公路車流、一個迷宮地圖等,代理人可以對於環境一無所 知 (Model-free Reinforcement Learning),也可以對於環境有一定的 了解 (Model-based Reinforcement Learning),環境主要會依據代理人 的決策,來給予獎勵及狀態更新的訊息。

⚫ 狀態 (State 𝑠𝑡 at time t):

狀態為一會隨時間而變化的變數,代表著在該時間當下,環境中的 變量。以車輛為例:狀態可以是該車輛的行駛方向、車速、油量等 等,主要是依據系統來決定狀態的定義為何。

⚫ 動作 (Action 𝑎𝑡 at time t):

動作也是一會隨時間便變化的變數,主要是代表著代理人在該時間 點所做出的決策。同樣以車輛為例:動作可以是是否要轉彎、向左 向右轉,加減速等等。

⚫ 獎勵 (Reward 𝑟𝑡 at time t):

獎勵會根據時間、動作還有狀態來計算出來,代表在該時間點進行 的動作與狀態的回饋,強化學習中最重要的就是希望可以得出一穩 定並可以極大化獲得獎勵的決策模型。

圖1表示了基本的強化學習組織架構與其流程,從其中可以了解到整體 的 架 構 是 依 代 理 人 (Agent) 為 主 體 , 系 統 透 過 不 斷 的 嘗 試 與 環 境 (Environment) 互動,慢慢得出穩定決策系統。在任意一時間點 t 時,代理 人會了解現在的狀態 𝑠𝑡,並且依照此狀態來決定執行一動作 𝑎𝑡,環境接受 到動作 𝑎𝑡 後會在下一時刻 t + 1 給予新的狀態 𝑠𝑡+1 與獎勵 𝑟𝑡+1,而最終的 目的就是在於訓練出一個能夠最大化獎勵總和的決策模型。

2.2.2 馬可夫決策過程

馬可夫決策過程(Markov Decision Processes, MDP) [17][19] 主要提供了 一框架,主要用於在結果為部分隨機且部分受到決策者控制的情況下的一 決策模型。馬可夫決策過程很常被拿來應用於需要透過動態規劃或是強化 學習解決的優化問題。馬可夫決策過程與強化學習許多相似之處,兩者都 有狀態(State, S)、動作 (Action, A) 以及獎勵 (Reward, R)。

圖2. 簡易馬可夫決策過程示意圖

馬可夫決策過程中,會有許多的狀態,狀態彼此之間可能都會有一些 關聯性,圖2 展示了一簡單的馬可夫決策過程的例子,其中可將狀態定義 為 𝑆 = [Brovo, Charlie, Delta, Echo, Golf] ,而這其中的動作即狀態的轉移可 以被定義為 𝐴 = [Brovo → Charlie, Brovo → Delta ⋯ ],一開始在時間點 t 時 可能在任意其中一個狀態 𝑠𝑡,而做了某個動作 𝑎𝑡 之後,就會從該狀態 𝑠𝑡 移動至另一狀態 𝑠𝑡+1,其中的移動機率為 𝑃𝑠𝑡𝑠𝑡+1,等移動過後就會得到一 獎勵 𝑟𝑡+1

在馬可夫決策過程中,其狀態的移動機率都假設為每個狀態只與前一 數」(Value-function, 𝑣):

𝑣(𝑠) = 𝐸[𝑟𝑡+1+ 𝛾𝑝(s, s′)𝑣(𝑠′)|𝑠𝑡 = 𝑠, 𝑠𝑡+1 = 𝑠, 𝑎𝑡 = 𝑎] (4)

其中γ 為折扣率(Discount),介於0~1之間,代表著受過去經驗所影響的 比例。為了能夠讓每個狀態之間的移動機率比較明確,可以定義一個移動

機率矩陣 T 來存放所有的機率變數,如此一來根據貝爾曼方程式 (Bellman-Equation) [7] 就可以在每次做完決策取得獎勵之後更新狀態的價值函數:

𝑣(𝑠) = 𝑟 + 𝛾𝑇𝑣(𝑠′) (5)

取得每個狀態的價值函數之後,可以變成規劃問題,透過動態規劃 (Dynamic Programming)與價值函數的結合,來找出系統中的最佳決策並最 大化獲得的獎勵。

假設今天無法直接取得上述的移動機率矩陣時,則只好透過不斷的嘗 試與觀測來慢慢取得,此問題被稱之為「可部分觀測的馬可夫決策過程」

(Partial Obserable Markov Decision Processes, POMDP)[18]。 由 於 無 法 觀 測 到所有狀態之間的關聯,貝爾曼方程式就無法求出正確的價值函數,只能 經過不斷的嘗試,並記錄其中各個狀態之間的移動順序,來估算整體的移 動機率,最後才能來估計價值函數。

而上述的計算方式可以分為兩種,一種為一次完整模擬為基礎計算,

第二種為以單一時間點做計算,前者會使用蒙地卡羅演算法 (Monte-Carlo) [20],後者通常使用時間差分演算法 (Temporal-Difference) [21],接下來會 分別簡單介紹。

2.2.3 蒙地卡羅演算法

蒙地卡羅演算法主要都是以一次完整的模擬為基礎下去更新每個狀態 的價值函數,而其中又細分了兩種計算方式,分別是「初次探訪評估」

(First-visit evaluation)跟「每次探訪評估」(Every-visit evaluation),兩者間主 要差在計算的次數,後者會依照探訪次數再額外給予一變數計算整體的價 值函數。

雖然蒙地卡羅能夠計算出每一狀態的價值函數,但是其必須在每一次 的模擬結束後才能夠更新所有的價值函數,其更新公式為:

𝑣(𝑠) = 𝑣(𝑠) + 𝛼(𝐺𝑡 − 𝑣(𝑠)) (6)

其中 𝛼 為學習率 (Learning rate) ,介於 0~1 之間,代表每次更新的效率。

在這樣的情況下,蒙地卡羅演算法能夠計算出整體系統的最佳解,但若某 一問題需要耗時非常久才能夠模擬完成,或是其沒有明確指示模擬終止點,

就會造成蒙地卡羅的更新效率很差,另一方面則是因為需要完整模擬結束 才更新價值函數,很容易忽略掉狀態之間的關聯性,而時間差分演算法較 能夠解決這方面的問題。

2.2.4 時間差分演算法

時間差分演算法與蒙地卡羅演算法最主要的差別就是更新的頻率,時 間差分法可以在每次的動作結束後,在獎勵取得後就馬上更新價值函數,

不需要將所有的獎勵做完計算後在更新,其可以單靠前後時間點的狀態 (𝑠𝑡, 𝑠𝑡+1) 來做狀態價值函數的更新,其更新公式為:

𝑣(𝑠) = 𝑣(𝑠) + 𝛼(𝑟 + 𝛾𝑣(𝑠′) − 𝑣(𝑠)) (7)

其透過每次取得獎勵 𝑟 後立即更新價值函數,如此一來就能夠更加得 了解狀態間轉移的關係,但其因為是每次取得後更新,所以整體下來不一 定會得到如蒙地卡羅的最佳解,但因為有些系統沒有那麼在意最佳解,只 需要能夠快速的產出相對好的解,這時候時間差分演算法就很能給予幫助。

除了狀態價值函數之外,動作價值函數(Action-value function)也很常被 學習(Q Learning) [7][21][22]。

2.2.5 Q 學習 (Q Learning)

相關文件