9. 強化學習強化學習(Reinforcement learning)潛力無窮,能解決許多開發應用上面臨的艱難決策問題,包括產業自動化、自主駕駛、電玩競技遊戲以及機器人等,因此備受矚目。強化學習是機器學習(Machine learning)的一種,指的是電腦透過與一個動態(dynamic)環境不斷重複地互動,來學習正確地執行一項任務。這種嘗試錯誤(trial-and-error)的學習方法,使電腦在沒有人類干預、沒有被寫入明確的執行任務程式下,就能夠做出一系列的決策。最著名的強化學習案例就是AlphaGo,它是第一支打敗人類圍棋比賽世界冠軍的電腦程式。強化學習的運作主要是仰賴動態環境中的資料—也就是會隨著外部條件變化而改變的資料,像是天氣或交通流量。強化學習演算法的目標,即是於找出能夠產生最佳結果的策略。強化學習之所以能達成目標,是藉著軟體當中被稱為主體 (agent)的部分在環境中進行探索、互動和學習的方法。 自動駕駛範例
自助停車(self-parking)是自動駕駛功能中極為重要的一環,目標是要讓車輛中的電腦(主體,agent)能準確地尋找位置並將車輛停入正確的停車格。在以下的範例中,環境(environment)指的是主體之外的所有事物—比如車輛本身的動態、附近的車輛、天候條件等等。訓練過程中,主體使用從各種感測器如攝影機、GPS、光學雷達(LiDAR)以及其他感測器讀取的資料來產生駕駛、煞車、與加速指令(動作,action)。為了學習如何從觀察去產生正確的動作(也就是策略調整,policy tuning),主體會不斷反覆地嘗試錯誤來試著停車,而正確的動作會得到一個獎賞(reward)(強化,reinforced)以數值訊號表示(圖1)。 以此範例來說,訓練是透過一個訓練演算法(training algorithm)來監督。這個訓練演算法(即主體的大腦)負責根據從感測器收集而來的資料、動作、與獎賞來調整主體的策略。經過訓練之後,車輛上的電腦應該只要使用調整過的策略和感測器資料便能進行自主停車。 用於強化學習的演算法
到目前為止,已經有許多強化學習訓練演算法被開發出來,其中某些最熱門的演算法是以深度類神經網路來建構。類神經網路最大的優勢,是可以將複雜的行為編譯為代碼,讓強化學習可以處理許多對傳統演算法來說可能是非常具有挑戰性的任務。 舉例來說,在自動駕駛任務上,類神經網路可以取代駕駛者,透過攝影機的畫面、和光學雷達的量測值等多種感測器的輸入資料進行解讀,並決定如何轉動方向盤(圖2)。若沒有類神經網路,這種問題會被分解為更細微的部分:首先,一個能分析攝影機輸入資料並找出有用特徵的模組、另一個能過濾光學雷達量測值的模組、可能還需要一個將感測器的輸出資料進行融合並將車輛周邊環境繪製出來的元件、也就是一個”駕駛”模組等等。
|