CS 294: Deep Reinforcement Learning:IRL
Berkeley深度強化學習的中文筆記(專題補充):逆強化學習Inverse Reinforcement Learning
在CS294的秋季課程中加入了一些新的內容,其中把逆強化學習課程內容完全翻新了,更為清晰,完整,連貫,因此值得系統學習一下。這一專題分成兩個部分,分別對應兩堂課的內容:1.Connections Between Inference and Control 2.Inverse Reinforcement Learning,前者用概率圖的觀點建立了優化控制與強化學習(Q-learning,policy gradient)之間聯繫,也可以解釋人類動作,而它的推斷過程又能引出第二部分逆強化學習。
Connections Between Inference and Control
問題的出發點是:我們用優化控制或強化學習得到的策略能用來解釋人類的行為嗎:
我們之前使用優化控制或強化學習來解決上式,可以得到最優的策略。然而問題是人類或動物的動作並不是最優的,而是具有一些偏差的:比如讓一個人去拿桌子上的一個橘子,那手的軌跡一定不是一條從起點到目標的直線,而是有一些彎曲的軌跡,也就是帶有偏差的較優行為,但是這種偏差其實並不重要,只要最後拿到橘子就行了,也就是說1.有過程中一些偏差是不重要的,但另一些偏差就比較重要了(如最後沒拿到)。而且每次拿橘子的動作也是不一樣的,因此2.人的動作帶有一定的隨機性。由此我們可以認為3.人類行為軌跡分布是以最優策略為峰的隨機分布。
決策過程的概率圖模型
為了解釋人類的這種行為分布,如果再採用尋找最優的策略的思路就不太好了。為此我們引入概率圖模型,雖然我們在第一節的時候就引入過這個概率圖:
但是這次要引入另一種概率圖(最優模型,只用來模擬最優路徑),其含義更為抽象,需要講解一下:
其中
- 新節點的含義比較抽象,引入它更多的是為數學上的解釋(能讓reward值以概率形式傳播,而非只是Q-值),粗糙的含義是在條件下人想要努力去獲得當前獎勵,稱為optimality變數,只有兩種取值,取1的概率(人想要達到最優)同比與當前獎勵(獎勵值高時人想要努力,低時人就不太想要努力),而且這個變數是可以被觀測的。
- 不再是的父節點了,也就是說這裡沒有顯式的策略,那的關係就要看的取值了,從取最優值可以反推出的關係。作為父節點,我們需要給出的先驗分布,這個代表了在物理環境允許的情況下可以做出的動作分布(比如在室內做出飛行的動作概率很小)
現在可以考察一下如果人每一步都很想達到最優,那人的軌跡分布是:
最後的兩項:代表這條路徑物理環境是否允許(即使很想要也總不能瞬間拿到橘子),代表這條路徑的獎勵值,因此人很想達到最優時,那獎勵值越高的路徑概率就越高。這兩點都是十分合理的,而且最後得到的是一個路徑分布,而非最優路徑,因此這個分布能很好地解釋人類的行為。
既然這個模型能很好地解釋人類的行為,那我們是否能充分地利用它呢?對它利用有以下三點:
- 這個模型能模擬suboptimal的動作軌跡(也就是給出一個在最優動作附近波動的動作分布),那麼這種模型對inverse RL有很大意義,因為人類數據都可以說是suboptimal的,而inverse RL要據此找到optimal的。
- 能用概率圖的推斷演算法來解決控制和planning問題,聯繫了優化控制和強化學習
- 解釋了為什麼帶有隨機性的策略更好,這對exploration和transfer問題很重要。
概率圖Inference = 值迭代
對於這個模型的利用採用概率圖的推斷演算法,而有三種推斷情形:
其推導過程有些複雜,需要一些概率圖知識,為了避免捨本逐末,減輕閱讀壓力,把這三種推斷情形的詳細解釋放到附錄中。
推導的結論是:
後向信息等價於值函數:
後向信息傳播過程等價於值迭代過程。由後向信息傳播導出的是soft max的值迭代:
推斷演算法得出的policy等價於Boltzmann exploration:
總結一下可以得到:
Q-learning with soft optimality
只是改成Boltzmann exploration的策略,對應的Q-值更新使用soft max,而且這個更新也是off-policy的。
Policy gradient with soft optimality
上面推導出的Boltzmann exploration的策略,與Policy gradient也有緊密聯繫:
這是因為加入entropy項的Policy gradient目標等價於當前策略與最優策略的KL散度:
那麼由此加入entropy項的Policy gradient與使用duel net的soft Q-learning有聯繫,對的更新與對的更新方式十分相似,由於篇幅有限,具體內容查看paper《Equivalence between policy gradients and soft Q- learning》和《 Bridging the gap between value and policy based reinforcement learning》
Soft Q-learning
使用Q-learning with soft optimality時,在連續情況中有個小問題:Boltzmann exploration無法直接採樣,因為我們使用以下網路計算Q值,那麼對於每一點我們只知道其概率值,而這個概率分布可能是十分複雜的,多峰的:
一種採樣方法是利用SVGD,使用變分採樣的方法:我們再訓練一個採樣網路,使其輸出
說白了,這個和GAN十分相似,採樣網路就是conditional GAN的generator,而原Q網路相當於一個discriminator。
使用soft optimality的好處
- 增加exploration,避免policy gradient坍縮成確定策略
- (在一般情況中訓練的soft optimality)更易於被finetune成更加specific的任務
- 打破瓶頸,避免suboptimal。
- 更好的robustness,因為允許最優策略以及最優路徑有一定的隨機性。訓練Policy gradient時,不同的超參數選取很容易會落到不同的suboptimal動作中。
- 能model人的動作(接下來的inverse RL)
逆強化學習Inverse RL
之前我們的環境情形都是環境有一個客觀的reward反應,或者可以根據人類的目的來設計一個reward函數,然而在很多的應用情形下這種客觀的reward不存在,而且人類設計的reward也很難表示人類的目的,比如說想要機器學會倒水,甚至學會自然語言。但是我們有的是很多人類的數據,可以視為從一個最優策略分布中採樣出的數據,那麼我們是否可以根據這些數據來還原出reward函數,即知道人類的目的,然後使用這個reward來訓練策略呢。
這個就是Inverse RL的思路,先根據數據得到reward函數,但是難點在於這些數據都是一個最優策略分布中採樣出的,因此就像上一節所說的,這些樣本是suboptimal,有隨機性的。而且得到的reward函數也很難進行衡量。
傳統上有對Inverse RL進行研究,但是由於傳統研究方向和方法與當前的有很大的不同,所以將省略傳統上對Inverse RL的研究。
既然上一節的概率圖模型能很好地解釋人類行為,那麼是否這個模型能用來解決Inverse RL問題呢。
MaxEnt IRL演算法
由於環境的reward並不知道,所以我們希望用一個參數為神經網路來表示,那麼按照假設optimality變數,應用之前的概率圖的結論可以得到概率圖模型下的最優路徑分布:
現在我們希望能根據數據來訓練reward網路,方法就是最大化數據路徑的概率圖模型下的概率似然:
等式右邊前一項已經很清晰了,就是最大化數據的reward,但麻煩的部分是後面的歸一化項,為此我們對其先求導:
可以看到經過求導,後一項可以化成期望形式,就簡單許多:
前一項是在增大數據分布的reward,後一項是在降低當前reward的最優模型給出的soft optimal策略。
因此從之前的概率圖模型知識可以知道最優模型給出的soft optimal路徑分布同比於後向信息與前向信息相乘。
這樣一來Loss function導數中的兩項我們都可以求了,那麼就可以對reward網路進行更新:
The MaxEnt IRL algorithm:
稱為Max Entropy演算法是因為(在線性情況)這等價於優化,即soft optimal策略與數據策略的平均reward相同時,熵最大的soft optimal模型。
sample-based MaxEnt IRL演算法
直接採用概率圖模型推導出的MaxEnt IRL有個問題:需要計算後向信息與前向信息得到路徑分布,並且做積分得到期望值,這對於大狀態空間和連續空間是不可行的。因此一個想法是與其直接計算期望,不如用sample來估計。
因此改進方法為使用任一max-ent RL演算法(如soft Q-learning,soft policy gradient)與環境互動,來得到當前reward下的路徑樣本,用這些路徑來估計Loss function的後一項:
但這個方法也有一個顯著問題:每一次更新reward網路,就要訓練一遍max-ent RL演算法,而RL演算法訓練常常需要成千上萬步。因此與其每次reward更新時都訓練一遍RL,不如每次reward更新時只改進一點原來的RL策略(由於reward每次更新很小,所以這個改進是合理的)。剩下的問題是有改進的RL路徑樣本對期望的估計成biased了,簡單的方法是每次都用一個改進的RL路徑樣本batch來更新reward,但更data-efficient的方法是採用importance sampling(off-policy方法,在data-efficient專題再細講)。
與behavior cloning差異:
Imitation learning中的behavior cloning也可以從數據中學習人類的行為,其直接對策略建模,最優化數據行為在策略模型中的概率似然,等價於求與數據行為分布KL散度最小的策略參數:
雖然behavior cloning和IRL都是目標為最大化數據行為的概率似然,然而它們建立的模型不同:BC直接對策略建模,而IRL利用soft optimal模型對reward進行建模,然後通過inference來得到策略。因此IRL的好處在於估計出了每步的reward,那麼導出的策略會儘力最大化整條路徑的reward和,能避免behavior cloning中的偏差問題。
而將會看到behavior cloning和IRL區別其實可以認為是普通auto-encoder和GAN的區別,GAN的D構建了能有複雜表示的目標(因此實驗結果GAN優於其他方法),IRL的reward起到了一樣的作用。
與GAN的聯繫
對於接觸過GAN的,上面過程十分像對抗學習過程,reward與policy的對抗:
reward網路就是discriminator,而policy網路就是generator。
《Guided Cost Learning》 ICML 2016
對於(標準GAN)discriminator的更新公式為:
因為最優分類器為:
那麼在IRL中我們假設D有如下參數化形式:
其中代表真實數據的概率分布,為policy網路的分布。
將上式代入就得到IRL中的reward更新公式。
接下來看generator/policy網路的更新過程:
上一等式是generator網路的更新目標,而使用IRL的參數化形式後可以得到下一等式,就是policy網路目標。
Generative Adversarial Imitation Learning Ho & Ermon, NIPS 2016
但是在這篇paper中直接採用了更直接的GAN(而非之前較複雜的參數化形式)來訓練IRL:discriminator就是使用標準GAN的D,即是個classifier對真實或生成樣本輸出(其是真實的)概率值,然後把D的log值作為reward值來訓練policy:
而這種更簡單的形式在許多任務中取得了不錯的結果:(然而原paper的論證過程絕不"簡單",我也還沒完全讀懂)
總結:
soft optimal model
第一部分我們從解釋人類的行為出發,人類行為suboptimal,有隨機性,因此不能用之前的最優策略目標來解釋。為此我們引入了一種特殊的概率圖,稱為soft optimal model,其中包含optimality變數攜帶了概率形式的reward信息。
之後採用了概率圖的inference方法來推導
其中發現後向信息等價於值函數:,由於是soft optimal model,因此Q-value更新也是soft max的:。
第二點利用推斷演算法來計算策略,說明了inference=planning(在這個soft optimal model進行推斷就等價於找到soft optimal的策略),而且發現了soft Q-learning演算法,其策略為Boltzmann exploration。以及soft policy gradient演算法,即目標函數加入entropy項。
這種soft optimal的演算法有多種好處
1.增加exploration 2. 更易於被finetune成更加specific的任務 3.打破瓶頸,避免suboptimal。4.更好的robustness 5.能model人的動作
Inverse RL
當只有人類的數據(suboptimal,有隨機性)時,我們思路是用soft optimal model來學習出reward函數,那麼根據soft optimal model來以最大數據的概率似然為目標,
由此直接推導出MaxEnt演算法,但是為了應用到大狀態空間中,將第二項用任一max-ent RL在當前reward下學到的策略樣本路徑來估計。
最後討論了IRL與GAN的相似性:
GAN的D可以被reward值參數化,來建立完全一致的聯繫。但是也可以更簡單的,作為標準GAN來應用到IRL中,只是reward用log D替代。
附錄:
對於這個模型的利用採用概率圖的推斷演算法,而有三種推斷情形:
接下來將仔細解釋這三種推斷情形。
後向信息Backward messages
已知當前情形和動作,那之後都想要達到最優的概率
其中離散情形時,積分換成求和即可。最後一項中是環境轉移概率,之前說了,現在要處理這項,而且我們記它為:
我們把認為是先驗分布,常為均勻分布(對於不均勻分布情況,可以被添加到中,因此均勻分布假設容易被推廣,不細講了)。
上述計算過程可以歸結為下述循環,循環結束後每步的就都知道了:
由於這個循環過程從到1,所以信息是向後傳播的。
後向信息與Q-learning的聯繫
(由於發生概率與reward成正比,那麼想要之後的發生概率大的話,那就需要之後的reward大,因此可以接受到後面的reward信息來對當前進行衡量,這點就自然和Q-value聯繫起來)
代入循環的第二步:,那麼
可以看到如果最大的和其他的Q相比十分大時,那(Q-learning的第二步),因此是一種soft max(不要和softmax搞混了)。
與Q-learning比較:
也就是把第二步的max改為一種soft max,而將會看到這個改動對應於soft optimality的策略。
需要說明的是在循環的第一步中:
使用不好用,而用Q-learning對Q-Value更新更好,所以Q-learning第一步不需要改進。
因此後向信息其實可以理解為能量為值函數的能量函數,這點對應於是以當前reward為能量的能量函數。
Policy computation
我們最為關心的一點是根據這個模型導出的最優策略應該是怎樣的,即計算:
因此這個模型導出的最優策略與Q值的exp成正比,是一種隨機策略,而非Q-learning的greedy或-greedy策略。
更進一步我們可以加上discount項,以及temperature參數(加上這個參數,等價於把reward調小倍,而時,那soft max退化為max,可以控制策略的exploration程度):
因此這個模型導出的最優策略與Q值的exp成正比,是一種隨機策略,而非Q-learning的greedy或-greedy策略。
更進一步我們可以加上discount項,以及temperature參數(加上這個參數,等價於把reward調小倍,而時,那soft max退化為max,可以控制策略的exploration程度):
可以看出這個就是Boltzmann exploration。
Forward messages
接下來想要知道,即如果我每一步都是想要最優的,那麼我t時刻會在哪裡:
這個計算過程沒有什麼好講的地方。
而更重要的問題是也就是說我從頭到尾每一步都要是最優的,那麼我的狀態分布應該是怎樣的
也就是前向信息與後向信息相乘,這個和概率圖的置信信息校準一樣,那麼得到的就是狀態的邊緣分布:
藍色分布代表前向信息,黃色代表後向信息,而綠色區域就代表每一步都要是最優的軌跡分布。
推薦閱讀:
※一個 MXNet 實現的 Mask R-CNN.
※域名關聯模型:讓惡意軟體自我暴露
※新手學機器學習一個月後,一些第一手乾貨分享
※李宏毅機器學習2016 第十五講 無監督學習 生成模型之 VAE
※從Nesterov的角度看:我們為什麼要研究凸優化?
TAG:强化学习ReinforcementLearning | 机器学习 |