吳恩達對於增強學習的形象論述(上)

版權聲明:本文智能單元首發,本人原創,禁止未授權轉載。

前言:吳恩達在2003年為完成博士學位要求做了專題論文:Shaping and policy search in Reinforcement learning,其第一、二章被伯克利CS294:深度增強學習課程作為推薦材料。本文基於筆者的理解,對第一章做有選擇的編譯與注釋。

第一章 簡介

在本章中,我們將對本論文中需要考慮的增強學習框架給出一個非正式的,不涉及數學形式的綜述。同時還將描述一些增強學習中的問題,這些問題是我們需要嘗試解決的。最後,給出整個專題論文的概要。

1.1 對增強學習的介紹

圖 1.1 伯克利大學的無人直升機

給一個像圖1.1中那樣的直升機,我們如何才能學習,或者說自動地設計一個控制器,使得直升機能夠正常飛行呢?

人工智慧和控制中的一個基礎問題就是在隨機系統中進行序列決策。飛行中的直升機就是隨機系統的一個很好例子,因為它展現出隨機和不可預測的行為,而大風和其他類似的干擾可能導致它的運動偏離預期。直升機的控制也是一個序列決策問題,控制直升機需要連續地決策向著哪個方向推操縱桿。比起那些只需要針對一個情況及時作出一個正確決策的問題,本問題展現出了所謂的「延遲後果(delayed consequences)」性質,解決問題的難度可謂是大為增加。所謂延遲後果,就是說直升機的自動控制器的水平好壞是根據它的長期表現來決定的,比如假設它現在做出了一個錯誤的操作,直升機並不會馬上墜毀,可能依然能夠飛行很多秒。導致直升機控制問題難度增大的另一個方面是它的局部可觀測性。具體來說,就是我們不能夠精確地觀測到直升機的位置/狀態;但是,即便是面對系統狀態的不確定性,我們仍然在每一秒都需要計算出正確的控制指令,使得直升機能夠在空中正常飛行。

譯者注:吳恩達擅長將一個問題通過比喻和舉例的方式講得通俗易懂,這是教學者的金鑰匙。無人機控制這個例子裡面包含了好幾個馬爾科夫決策過程和增強學習裡面的用數學公式表達起來比較抽象的性質,待看到公式的時候,回頭想這個例子,可以很好地幫助理解記憶。

我們將馬爾科夫決策過程(MDP)框架的公式表達推遲到第二章再講。簡單地來說,有的系統(就好比無人直升機)的控制是在每個時間點都會處於某種「狀態」,我們一般對於這種系統比較感興趣,而馬爾科夫決策過程就是對這種系統進行建模。例如直升機的狀態也許就可以用它的位置和方向來表示。我們的任務就是選擇動作,使得系統能夠傾向於保持在「好」的狀態中,比如保持懸停,並且能夠避免「壞」的狀態,比如墜機。數量巨大且不同的問題都可以用馬爾科夫決策過程形式來進行建模。比如規劃和機器人導航,庫存管理,機器維護,網路路由,電梯控制和搭建推薦系統。

增強學習針對解決MDP形式的問題給出了一系列的工具。雖然它獲得了巨大成功,但是在解決很多問題時仍面臨困難,還存在很多問題和挑戰。我們簡要地描述其中一些問題,這些問題會讓某些增強學習問題具有挑戰性:

  • 首先,存在高維度問題。具體說來,就是基於離散的簡單增強學習演算法,經常會遇到狀態變數的數量成指數增長的情況。這個問題就是所謂的「維度詛咒」,我們將在第二章中更詳細地討論。我們能夠設計出一個即能可證地有效運作,又能更好地擴展到搞維度問題的實用演算法嗎?

譯者注:現在高維度問題對深度增強學習已經基本上不是問題。

  • 同時,如何選擇「回饋函數(reward function)」也是一個問題。在增強學習中,設計者必須指明一個函數,該函數能夠告訴我們直升飛機什麼時候飛得好,什麼時候是飛得不好。我們在選擇這個函數的時候有很大的自由度,在第三章中還會看到,如果選擇得當,某些函數能夠成數量級地加速學習過程。當然同時也存在一些看起來不錯,但是實際上讓控制器的表現非常糟糕的函數。我們能夠合理地選擇回饋函數,既避免這種問題,又能讓增強學習演算法學習得又快又好嗎?

譯者注:在後續的學習實踐中會常常接觸,現在不明白不用擔心。

  • 局部可觀測性Partial Observability)是指被控制的系統的狀態不能被精確觀察的情況,比如直升機上的感測器只能是近似地測量直升機的位置。局部可觀測性讓問題的解決更加困難了,許多標準的增強學習演算法不能解決這種情況,有的即使能夠解決,也非常艱難。那麼,如果只能近似地觀察系統在做什麼,我們該如何選擇正確的控制呢?

在本論文中,我們提出了一些方法,嘗試解決前兩個問題。我們的最終演算法在局部可觀測的情況下也能很好地工作,演算法被運用到了圖1.1中的無人直升機控制中。在實踐的過程中,我們還涉及了經典控制理論中的一些專題,比如系統識別與驗證等。

譯者注:看這篇論文的目的是幫助我們熟悉增強學習和馬爾科夫決策過程,為CS294的學習做知識預習的,沒必要看完整個論文(150多頁)來搞明白當年吳恩達的演算法是啥情況。

1.2 與有監督學習的比較

譯者注:其實個人不太願意翻譯這段,因為對於學習深度增強學習,這個學術和理論味兒比較濃的小節沒有太大意義。類似的情況在增強學習的著作Reinforcement Learning: An Introduction中也有,作者花了很多篇幅去論證增強學習與有監督學習、無監督學習是不同的,應該與之並列什麼的。個人意見:雖然翻譯了,可略過

有監督學習是人工智慧領域中另一類標準問題。它可以看成是增強學習的某種特殊形式,在這種形式下,只需要對系統進行一次控制,因此我們只需要一次決策,而不是連續的序列決策。雖然看起來差別不是很大,但是實際上這讓有監督學習變成了一個非常簡單的問題。

舉個具體例子,考慮根據給出的病人的多種檢查數據或「特徵」(比如心率、體溫、多種醫學檢查結果),用有監督學習演算法來預測一個病人是否患有心臟病。這裡假設我們擁有一個訓練集,其中包含有一些病人特徵的樣本,以及指明其中哪些病人是否患有心臟病的信息。我們可以用有監督學習演算法來讓一些函數(線性映射或者神經網路)來對數據進行擬合。當一個新的病人來就診時,我們可以根據病人的特徵,使用這個擬合的函數來預測他是否患有心臟病。而當這個一眼的診斷出來後,我們的病人就要去面對他的命運了。如果我們預測出錯(比如我們決定趕緊對病人進行手術,而接下來的操作發現病人實際上沒有任何問題,手術完全沒有必要),那麼我們也能馬上觀察到結果,並從這個結果中繼續學習。

然而,在增強學習中,我們動作的結果通常是有延遲的,因此想要識別並從動作的長期效果中學習變得更加困難了。例如下棋,如果我們在第63手的時候輸了(或者贏了),可能非常重要的一點是需要認識到我們在第17手的時候下的一記妙手奠定了勝局。這個「可信度分配(credit assignment)」問題讓演算法從過去的失誤中吸取教訓或從過去的成功中學習經驗都更加困難了。

其次,在增強學習問題中的連續環境讓演算法重用(reuse)數據變得更加困難。在有監督學習中,如果我們預先收集並且存儲了一些病人的樣本數據集,並且想要測試一個新的神經網路在心臟病預測方面的性能,那麼我們可以很容易地在這些數據集上進行測試,並分析結果與真實情況之間的差異,從而得出新模型的性能好壞。然而在增強學習中,假設我們也預先測試了一個控制直升機翻轉飛行的控制器(或者舉個更自然的例子,控制直升機稍微向右傾斜的控制器),在測試期間收集的數據是可以讓我們知道直升機是如何翻轉飛行的,但是如何使用這些數據來評價一個控制直升機穩定平飛的新控制器呢?目前還不清楚。因此,如果,新控制器控制直升機飛行的方式與之前的不同,那麼對於每個新的控制器,我們都需要收集新的數據來進行測試。這個性質使得增強學習相較於有監督學習需要更多的數據。本論文的目標之一就是探索如何在增強學習中高效地重用數據,並且嘗試在實用的學習演算法中利用這些思想。

最後,增強學習一個常見主題是「不可知論學習(agnostic learning)」(在人工智慧領域中,這和界限最優化(bounded optimality)聯繫緊密)。這個主題是指限制可能的分類器集合的思想,這一思想通常被採用。以上文的心臟病舉例來說,相較於考慮所有的將病人的特徵映射到{患病,沒患病}的函數(這將會是一個巨大的函數空間),我們可以將注意力集中在更小一點的函數集中,比如所有的閾值線性函數,或者所有中等尺寸的神經網路。這樣就可以顯著地降低我們需要考慮的分類器的數量。如果分辨病人是否患病的「真實」的決策邊界極端複雜,以至於沒有神經網路能夠準確預測分類,那麼既然我們已經是將注意力限制在了用神經網路表達的函數上,這就說明我們沒法找到一個好的分類器。但是如果決策邊界不是那麼複雜,那麼我們限制的的分類器集合就允許一個分類器展示出只需要少量的訓練數據就能夠很好地擬合一個神經網路。具體來說,就是訓練數據量的需求是由神經網路中「自由參數(free parameter)」的數量決定的,而不是以輸入的病人和心臟病的發生的複雜度來決定的。基於在有監督學習中數據可以重用的事實,這些結果是可以證明的。在第四章中,我們將把這些結論一般化到增強學習中,觀察針對增強學習問題,通過將我們的注意力限制到一個較小的控制器集合中,我們依舊可以得到類似的結論,即想要演算法較好地學習,需要對樣本尺寸做出限制。

1.3 論文概要及貢獻

譯者註:意義不大,略過。感興趣的知友請自行閱讀。

第一章原文翻譯完畢。

小結

翻譯本章,主要面向對增強學習沒有概念的知友。在第一章中,吳恩達使用無人直升機的例子比較形象直觀地介紹了增強學習問題。讀者主要理解該例,其他部分適當了解即可

在下篇中,我將編譯論文的第二章,其內容主要是用數學公式嚴謹地對馬爾科夫決策過程和增強學習做出定義和講解。

讀者反饋

  • 持續有知友問如何獲取cs231n的資源,逐個回復太累,我在「智能單元」微信公眾號上做了自動回復,請有需求的知友對公眾號回復cs231n或者CS231n即可,也算是給公眾號漲點關注。
  • 歡迎想要學習CS294:深度增強學習的知友根據課程推薦材料學習的同時,進行翻譯或者編譯,本專欄接受投稿。
  • 一如既往地歡迎大家對內容進行批評指正,貢獻者我都會在文末更新感謝:)

推薦閱讀:

【腦洞故事集】二、EXE病毒
如何「科學的比較」機器學習模型表現?
如何評價清華大學第二十屆「搜狗杯」智能體大賽?
AI筆記 | 吳軍《智能時代》讀書筆記,這張思維導圖讓你五分鐘讀懂未來

TAG:强化学习ReinforcementLearning | 人工智能 | 深度学习DeepLearning |