一、從監督學習到決策
首先來看一個標準的監督學習的例子,給定一張圖片,然後通過CNN對其進行分類。
但是,在強化學習的世界裏,重點是Agent對環境如何做出決策,即Agent看到老虎會採取什麼行動, 那麼我們將最後的分類標籤改爲一系列行爲, 如 {逃跑,模仿武松打虎}, 這就是對行爲(決策)的監督學習。
可以看到,對行爲的監督學習本質上也是一種分類任務,但是和傳統分類任務不同的是:前者具有序列屬性,也就是說,上一階段的輸出決定着下一階段的輸入(看到老虎選擇逃跑或者打虎,之後發生的事肯定是不一樣的). 在強化學習的世界裏,相關元素也有專業的術語。
- : 稱爲Agent對環境的觀測(observation), 對應着圖像分類任務中的輸入圖像。
- : 稱爲Agent關於目前環境狀態選擇的行動(action), 對應着圖像分類任務中的標籤。
- : 稱爲策略(policy), 對應着圖像分類任務中的分類模型。
除此以外,在強化學習中,我們仍然需要明白狀態(state)和觀測(observation) 的區別。簡單來說,前者表示了真實的客觀世界,而後者是前者的有/無信息損失的表示。舉兩個例子:
-
有損表示:
如上圖所示,在這個例子中,觀測即是該圖片本身,由一個二維的像素矩陣組成。而狀態則包含了豹的速度,獵物的速度等等物理信息。而從觀測中我們無法得到這些關於客觀世界的信息,因此這是一種有損的表示。 -
無損表示:
對棋盤的描述,觀測便可以作爲狀態的無損表示。
狀態、觀測 、行爲可以由如下的概率圖模型表示, 且一般我們假設其滿足馬爾科夫性:
二、模仿學習
由上述對行爲的監督學習,我們便可以得到強化學習中的模仿學習(Imitation Learning). 其本質便是Agent通過數據學習. 下圖是自動駕駛的一個示意圖:
但是,Agent真的能通過對有限數據的模仿從而在現實世界的任務中表現地好嗎?答案是否定的. 由於序列決策任務具有錯誤累積的性質,因此,往往最後的結果和給定的數據相比,有很大的偏差。如下圖所示:
如自動駕駛來說,如果小車在某一個位置做出了一點錯誤,那麼它看到的情形將和訓練集的圖像有一定偏差,那麼可能就會做出不好的行爲,而這不好的行爲又造成更大的偏差,從而累積錯誤。
基於此,Nvidia在它們的自動駕駛實驗中,對小車安放了三個攝像頭,分別觀測左前方,前方,右前方,並且對左前方的圖像給定一個稍右轉的標籤,右前方的圖像給定一個稍左轉的標籤。這樣便起到了一定的修正作用。
回到錯誤累積的問題,我們如何用數學語言描述這樣的錯誤呢?我們認爲真實的觀測數據滿足一個分佈. 而Agent做出的行爲滿足一個分佈. Agent犯錯,本質就是偏離了. 因此,我們可以通過讓兩個分佈相等從而提高Agent表現。由此,我們有著名的DAgger: Dataset Aggregation算法:
該算法思想簡單,也能夠收斂,但是,這期間需要人的參與,需要花費大量的人力。那麼如果我們沒有進一步的人力資源呢。我們只能夠通過構建更強大的模型,從而使得模型能夠很好模仿專家的行爲。
在模型模仿專家行爲過程中,通常有兩個難點問題。
- 非馬爾科夫性:
人類專家所作出的行爲並不是滿足馬爾科夫性質的。這樣就需要模型有着對序列建模的能力。通常,我們可以通過RNN結合CNN實現建模。
- 多峯行爲:
對上圖所示的情形,我們可以選擇左轉,也可以選擇右轉,因此如果我們採用離散分佈建模,最後的概率分佈很明顯如圖中的藍色所示。但是,如果我們採用連續概率分佈建模呢?在該種建模中,我們通常選擇高斯分佈,並且通過神經網絡學習其分佈的均值和方差,但是高斯分佈是單峯的,因此,針對這樣類似的多峯行爲,無論如何簡單的網絡都無法擬合真實情況。
針對多峯問題,我們有以下解決方案。
- 混合高斯分佈:我們採用多個高斯分佈去擬合真實的連續分佈。
- 隱變量模型:
待理解
- 自迴歸離散化
待理解
三、模仿學習的問題
- 第一,人類需要提供數據,而人能提供的數據通常是非常有限的,即便如頭戴攝像機這樣相對便宜的手段被開發出來,而深度神經網絡通常需要大量的數據才能把事情做好,此爲一大限制。
- 第二,人類不善於提供有些類型的行動指導,原因可能是多種多樣的。
- 第三,人類可以自主學習而機器則不能,自主學習的好處是我們可以通過自己的經驗獲得無限量的數據,看到錯誤可以自我修正,達到連續的自我提升。
四、獎勵/代價函數
既然提到了模仿學習的弊端,那麼,我們應該如何解決這個弊端呢?模仿學習是希望Agent模仿人的行爲,這樣的行爲似乎是無腦,無目的性的,然而決策都是帶有目的性的,因此,我們是否應該引入目的因素呢?而這,就引出了獎勵/代價函數,以此來刻畫目的。一般我們用表示獎勵函數,用表示代價函數。它們兩者是等價的。
回到最開始的問題,對於Agent見到老虎所採取的行動。我們可以設置如下的目的:
即採取的行動要使得自己被喫的概率最小。
而對於自動駕駛的這樣的模仿學習,我們可以認爲它們的目的就是純粹的模仿: 即最大化似然
總之,個人認爲,引入獎勵/代價函數相當於引入了目的,讓Agent不再是純粹的模仿,從而能夠自我提升。
在實際問題中,獎勵函數的形式也是很重要的:
如上圖所示,下方的獎勵函數都會比上方的獎勵函數更加魯棒。總體而言,獎勵函數應該更加平滑,應該儘量避免非黑即白。