當前位置:
首頁 > 最新 > 強化學習的入門之旅

強化學習的入門之旅

GIF

編譯:T.R

來源:argmin.net

深度強化學習可以用於在圍棋中實現超人的表現,在atari遊戲中成為高手,同時也可以控制複雜的機器人系統,自動調節深度學習系統、管理網路堆棧中的隊列問題,此外還能改善數據中心的能耗效率…這幾乎就是一個神通廣大的技術啊!但是我們需要對這種鋪天蓋地的媒體宣傳保持足夠清醒的頭腦。作者希望在這篇文章中為讀者呈現出強化學習的真實面貌,讓我們明白什麼是強化學習能做的而且能出色完成的,而哪些又僅僅是停留在紙面上的假設而已。同時作者還認為機器學習中的一些重要問題將可以通過強化學習的角度予以解決。

強化學習令人不解的原因主要在於它需要我們利用一種在通常機器學習中不常用的核心概念去思考。首先你需要考慮時變的統計學模型並理解數據中的依賴只是暫時的相關而已;第二、你應該理解統計學習問題中的反饋效應,每一次行為後對於結果的觀測分布,強化學習系統必須適應這些分布。這兩個方面都理解起來都十分困難,在這篇文章里作者將強化學習歸結成了一種預測分析的模式,而在隨後的文章里則是以優化控制的形式展開的。每一種都和我們熟知的機器學習問題有很大的不同。

強化學習與預測分析

人們一般認為機器學習擁有三根重要的柱石:非監督學習、監督學習、強化學習,這三個部分基本上包含了機器學習研究與應用的方方面面。

那他們之間有什麼不同呢?每一種方法的輸入都是一列索引和對應的特徵,但對應的輸出卻各不相同。在非監督學習中,演算法的目標是對數據進行有效的歸納總結,我們可以把這一過程視為模型將輸入的x數據轉換為了可以歸納表示輸入信息的低維度輸出z。常見的非監督學習包括聚類或者將樣本映射到其他的維度上,下圖分別表示了常見的聚類、詞雲和流形學習等典型的方法。

而對於監督學習來說、我們需要通過輸入數據x預測出輸出數據的某一特徵y,這是我們最為熟悉的機器學習方法了,主要包括回歸和分類兩大分支。

而對於強化學習來說,對於特定的輸入x對應著兩個輸出分別是action和reward。強化學習的目標就是在給定輸入的情況下儘可能地選擇出能使r(獎勵)最大的a(行為)。有很多問題可以用強化學習來解決,從遊戲中的在線決策到網路世界中的最大化收益都可以通過這樣的方式來獲取較好的解決方案。

對於更為廣闊的領域來說,下面這張圖道出了各種方法和應用所處的階段和特點。

描述性分析指的是通過歸納數據使其具有更好的可解釋性,非監督學習就是一種很好的描述性分析方法,而預測分析的目標則是基於現在的數據估計未來的結果,而最終的規範性分析(prescriptive analytics)則旨在指導行動以保證結果。強化學習恰恰就屬於最後一個範疇。

上圖描繪的結果可能與傳統的機器學習智慧大相徑庭,而本文想呈現的是一個不同的觀點。根據Gartner的觀點,非監督學習是這三類機器學習中最容易的一種,因為它的風險會很低。如果你所需要的僅僅只是歸納總結的話它幾乎不會給出錯誤答案。就像GAN對你的卧室顏色進行了正確或者錯誤的渲染對於結果沒有影響。描述性模型和非監督學習主要著眼於美學方面而不是具體的目標;預測分析和監督學習則充滿了更多的挑戰,我們還需要分析它的精度以及在新數據中的行為和表現。

而最大的挑戰則來自於規範性分析。這一類模型的目標十分清晰:強化學習和規範性分析需要分析輸入並決定要採取的行動和明確對應的獎勵。規範性分析所面對的新數據來源於不確定的環境中,隨後需要作出決策並利用這些決策影響環境。這樣的系統會在好的決策下獲得豐厚的獎勵,而在糟糕的決策後則面臨著災難性的結果。但由於反饋來源於複雜的相互聯繫中使其在理論上難以研究。對於真實的計算系統來說,無論是自動駕駛系統還是龐大社交網站,與真實世界的活躍交互遠遠超過了你我的想像!

這就是我們需要詳細理解強化學習的原因,它為我們提供了一種可以進行交互的機器學習框架。作者認為強化學習將會在機器學習領域有著更多的應用。對於每一個人來說,理解一些強化學習有助於我們更安全的構建和利用機器學習系統。在下一部分中作者將要從優化控制的角度更為詳細的闡釋強化學習。

強化學習最為迷人的地方在於將機器學習和控制有機地結合到了一起,但人們對於智能體與環境的交互還知之甚少。機器學習和控制在各自的領域的應用有很大的差別,控制是在一個具體的環境中設計出精密複雜行為的理論,而機器學習卻是在沒有預先模型的情況下從數據中進行複雜的預測任務。控制理論的核心在於連接輸入和輸出的動力學系統。這一系統的初始狀態在輸入和環境條件的作用下不斷轉換,而輸出則是輸入和對應狀態的函數。如果在沒有輸入的情況下,我們要預測未來的輸出只需要知道系統所處的狀態即可。

我們利用牛頓定律來作為例子理解控制的過程。如果我們希望將四旋翼懸浮在空中並從一米上升到2m的位置,那麼我們首先需要增加螺旋槳的轉速以獲取更大的升力。這時候螺旋槳轉速是輸入1,它需要與輸入2重力進行相互作用。那麼四旋翼無人機的動力學就要滿足牛頓定律:加速度的大小與受外力成正比,而這裡的外力則是升力與重力之差。同時加速度的大小還與四旋翼飛行器的質量成反比。同時速度等於初速度加上加速與加速的時間,最終的位置則需要滿足初始位置加上速度與運動時間的乘積。通過這些公式我們就可以計算出運動到目標位置所需的升力和轉速以及作用的時間了。這時候系統的狀態就可以表示為位置和速度這一對參量。

這時候可以將這一動力學系統表示為一個差分方程:

其中f表示狀態轉移方程,主要受到當前狀態、當前輸入和誤差的影。et可以是隨機雜訊也可以視為模型的系統誤差。

優化控制的目的是儘可能的最小化或者最大化控制目標。我們假設每一時刻我們都能從當前的輸入和狀態中獲取到目前一些獎勵,而我們需要的是最大化這些獎勵。我們可以將這一過程表現為下面的形式:

上式表示我們需要特定的控制序列ut來最大化0~N時間內的獎勵,而這取決於動力學系統的狀態轉移規則f。假設我們是控制工程師,那麼我們現在需要做的就是為這一優化控制問題建立模型,並尋找最優解,然後問題就迎刃而解了!有很多的控制問題可以按照這樣的方式解決,其中最早的求解演算法便是反向傳播演算法。

另一個重要的例子是馬爾科夫決策過程(MDP),這時候xt變成了離散的輸入值,u(t)則是離散的控制,x(t+1)的概率分布則由x(t)和u(t)共同決定。在馬爾可夫過程中,可以將上述變數表示為概率分布,同時可以利用動態編程的方法求解這一問題。

講了這麼多,現在是我們把學習引入到控制過程中的時候了。如果我們對於f一無所知那麼我們將如何建模如何解決問題呢?這就是機器學習可以大顯身手的地方了!

我們可能不知道螺旋槳在給定電壓下的推力,我們該如何建模呢?首先我們應該利用實驗去觀察在不同的輸入下一個動力學模型是否適合這個系統,隨後將這一模型轉換為一個優化問題。

對於更為複雜的系統,我們不可能寫出一個緊湊的參數化模型。一種可能的方法就是不去管模型而是嘗試在x(t)的不同測量來不斷增加獎勵,這就引入了」規範分析「領域的強化學習。這樣的規範分析不僅利用從頭開始創建控制系統,同時也適用時變模型的建模和分析。需要強調的是,這是一種純粹依賴於反饋的控制方法,而不依賴於傳統的控制理論。

其中關鍵的不同在於我們對於一個動力學系統的了解程度有多麼的深刻,從而才能建立優化的控制過程?使系統達到高水平控制性能的優化過程是什麼(重複與監測)?

這兩個問題構成了強化學習的對於經典控制問題的核心。

強化學習入門之旅下一站:

-The End-


喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 將門創投 的精彩文章:

在玩轉圖像分類器後,他總結了這八個深度學習最佳實踐……
在實現了檢查病、開藥方後,AI還將告訴你該如何吃藥—解讀最佳藥物組合和給葯計量

TAG:將門創投 |