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.人類行為軌跡分布是以最優策略為峰的隨機分布。

決策過程的概率圖模型

為了解釋人類的這種行為分布,如果再採用尋找最優的策略的思路就不太好了。為此我們引入概率圖模型,雖然我們在第一節的時候就引入過這個概率圖:

但是這次要引入另一種概率圖(最優模型,只用來模擬最優路徑),其含義更為抽象,需要講解一下:

其中

  1. 新節點mathcal{O_t}的含義比較抽象,引入它更多的是為數學上的解釋(能讓reward值以概率形式傳播,而非只是Q-值),粗糙的含義是在s_t,a_t條件下人想要努力去獲得當前獎勵,稱為optimality變數,只有0,1兩種取值,取1的概率(人想要達到最優)同比與當前獎勵p(mathcal{O_t}|s_t,a_t)varpropto exp(r(s_t,a_t))(獎勵值高時人想要努力,低時人就不太想要努力),而且這個變數是可以被觀測的。
  2. s_t不再是a_t的父節點了,也就是說這裡沒有顯式的策略pi(a|s),那s_t,a_t的關係就要看mathcal{O_t}的取值了,從mathcal{O_t}取最優值可以反推出s_t,a_t的關係。作為父節點,我們需要給出s_t,a_t的先驗分布p(	au)=p(s_{1:T},a_{1:T}),這個代表了在物理環境允許的情況下可以做出的動作分布(比如在室內做出飛行的動作概率很小)

現在可以考察一下如果人每一步都很想達到最優,那人的軌跡分布是:

最後的兩項:p(	au)代表這條路徑物理環境是否允許(即使很想要也總不能瞬間拿到橘子),exp(sum_tr(s_t,a_t))代表這條路徑的獎勵值,因此人很想達到最優時,那獎勵值越高的路徑概率就越高。這兩點都是十分合理的,而且最後得到的是一個路徑分布,而非最優路徑,因此這個分布能很好地解釋人類的行為。

既然這個模型能很好地解釋人類的行為,那我們是否能充分地利用它呢?對它利用有以下三點:

  1. 這個模型能模擬suboptimal的動作軌跡(也就是給出一個在最優動作附近波動的動作分布),那麼這種模型對inverse RL有很大意義,因為人類數據都可以說是suboptimal的,而inverse RL要據此找到optimal的。
  2. 能用概率圖的推斷演算法來解決控制和planning問題,聯繫了優化控制和強化學習
  3. 解釋了為什麼帶有隨機性的策略更好,這對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目標等價於當前策略pi(a|s)與最優策略frac{1}{Z}exp(Q(s,a))的KL散度:

那麼由此加入entropy項的Policy gradient與使用duel net的soft Q-learning有聯繫,對pi的更新與對Q的更新方式十分相似,由於篇幅有限,具體內容查看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 explorationpi(a|s)varpropto exp(Q(s,a))無法直接採樣,因為我們使用以下網路計算Q值,那麼對於每一點我們只知道其概率值,而這個概率分布可能是十分複雜的,多峰的:

一種採樣方法是利用SVGD,使用變分採樣的方法:我們再訓練一個採樣網路,使其輸出pi(a|s)varpropto exp(Q(s,a))

說白了,這個和GAN十分相似,採樣網路就是conditional GAN的generator,而原Q網路相當於一個discriminator。

使用soft optimality的好處

  1. 增加exploration,避免policy gradient坍縮成確定策略
  2. (在一般情況中訓練的soft optimality)更易於被finetune成更加specific的任務
  3. 打破瓶頸,避免suboptimal。
  4. 更好的robustness,因為允許最優策略以及最優路徑有一定的隨機性。訓練Policy gradient時,不同的超參數選取很容易會落到不同的suboptimal動作中。
  5. 能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並不知道,所以我們希望用一個參數為psi神經網路來表示r_{psi}(s_t,a_t),那麼按照假設optimality變數p(mathcal{O_t}|s_t,a_t)varpropto exp(r_{psi}(s_t,a_t)),應用之前的概率圖的結論可以得到概率圖模型下的最優路徑分布

現在我們希望能根據數據來訓練reward網路,方法就是最大化數據路徑的概率圖模型下的概率似然:

等式右邊前一項已經很清晰了,就是最大化數據的reward,但麻煩的部分是後面的歸一化項Z=int p(	au)exp(r_{psi}(	au))d	au,為此我們對其先求導:

可以看到經過求導,後一項可以化成期望形式,就簡單許多:

前一項是在增大數據分布的reward,後一項是在降低當前reward的最優模型給出的soft optimal策略。

因此從之前的概率圖模型知識可以知道最優模型給出的soft optimal路徑分布同比於後向信息eta_t與前向信息alpha_t相乘。

這樣一來Loss function導數中的兩項我們都可以求了,那麼就可以對reward網路進行更新:

The MaxEnt IRL algorithm

稱為Max Entropy演算法是因為(在線性情況)這等價於優化max_{psi}mathcal{H}(pi^{r_{psi}}),s.t.E_{pi^{r_{psi}}}(r_{psi})=E_{pi^*}(r_{psi}),即soft optimal策略與數據策略的平均reward相同時,熵最大的soft optimal模型。

sample-based MaxEnt IRL演算法

直接採用概率圖模型推導出的MaxEnt IRL有個問題:需要計算後向信息eta_t與前向信息alpha_t得到路徑分布,並且做積分得到期望值,這對於大狀態空間和連續空間是不可行的。因此一個想法是與其直接計算期望,不如用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也可以從數據中學習人類的行為,其直接對策略建模pi_{	heta}(a_t|s_t),最優化數據行為在策略模型中的概率似然,等價於求與數據行為分布KL散度最小的策略參數	heta

qquad L=-E_{(s,a)sim p_{data}}(log(pi_{	heta}(a|s)))

雖然behavior cloning和IRL都是目標為最大化數據行為的概率似然,然而它們建立的模型不同:BC直接對策略建模,而IRL利用soft optimal模型對reward進行建模,然後通過inference來得到策略。因此IRL的好處在於估計出了每步的reward,那麼導出的策略會儘力最大化整條路徑的reward和,能避免behavior cloning中的偏差問題p_{data}(o_t)=p_{pi_{	heta}}(o_t)

而將會看到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有如下參數化形式:

其中frac{1}{Z}exp(R_{psi})代表真實數據的概率分布,q(	au)為policy網路的分布。

將上式代入L_{discriminator}就得到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變數p(mathcal{O_t}|s_t,a_t)varpropto exp(r(s_t,a_t))攜帶了概率形式的reward信息。

之後採用了概率圖的inference方法來推導

其中發現後向信息等價於值函數:Q(s_t,a_t)=logeta_t(s_t,a_t),由於是soft optimal model,因此Q-value更新也是soft max的:V(s_t)=log E_{a_t}[exp(Q(s_t,a_t))]

第二點利用推斷演算法來計算策略pi(a|s),說明了inference=planning(在這個soft optimal model進行推斷就等價於找到soft optimal的策略),而且發現了soft Q-learning演算法,其策略為Boltzmann explorationexp(Q(s,a)-V(s))。以及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

已知當前情形和動作s_t,a_t,那之後都想要達到最優的概率eta_t(s_t,a_t)=p(mathcal{O_{t:T}}|s_t,a_t)

其中離散情形時,積分換成求和即可。最後一項中p(s_{t+1}|s_t,a_t)是環境轉移概率,p(mathcal{O_t}|s_t,a_t)varpropto exp(r(s_t,a_t))之前說了,現在要處理p(mathcal{O_{t+1:T}}|s_{t+1})這項,而且我們記它為eta_{t+1}(s_{t+1})

我們把p(a_{t+1}|s_{t+1})認為是先驗分布,常為均勻分布(對於不均勻分布情況,log p(a_t|s_t)可以被添加到r(s_t,a_t)中,因此均勻分布假設容易被推廣,不細講了)。

上述計算過程可以歸結為下述循環,循環結束後每步的eta_t(s_t,a_t)就都知道了:

由於這個循環過程從T-1到1,所以信息是向後傳播的。

後向信息與Q-learning的聯繫

(由於mathcal{O}發生概率與reward成正比,那麼想要之後的mathcal{O_{t:T}}發生概率大的話,那就需要之後的reward大,因此eta可以接受到後面的reward信息來對當前s_t,a_t進行衡量,這點就自然和Q-value聯繫起來)

代入循環的第二步:largeeta_t(s_t)=E_{a_tsim p(a_t|s_t)}[eta_t(s_t,a_t)],那麼

可以看到如果最大的Q(s_t,a_t)和其他的Q相比十分大時,那V(s_t)=max_{a_t}Q(s_t,a_t)(Q-learning的第二步),因此V(s_t)=log E_{a_t}[exp(Q(s_t,a_t))]是一種soft max(不要和softmax搞混了)。

與Q-learning比較:

也就是把第二步的max改為一種soft max,而將會看到這個改動對應於soft optimality的策略。

需要說明的是在循環的第一步中:

使用Q(s_t,a_t)=r(s_t,a_t)+log E_{s_{t+1}}[exp(V(s_{t+1}))]不好用,而用Q-learning對Q-Value更新更好,所以Q-learning第一步不需要改進。

因此後向信息其實可以理解為能量為值函數的能量函數,這點對應於p(mathcal{O_t}|s_t,a_t)是以當前reward為能量的能量函數。

Policy computation

我們最為關心的一點是根據這個模型導出的最優策略應該是怎樣的,即計算pi(a_t|s_t)=p(a_t|s_t,mathcal{O}_{1:T})

因此這個模型導出的最優策略與Q值的exp成正比,是一種隨機策略,而非Q-learning的greedy或epsilon-greedy策略。

更進一步我們可以加上discount項gamma,以及temperature參數alpha(加上這個參數,等價於把reward調小alpha倍,而alpha	o0時,那soft max退化為max,可以控制策略的exploration程度):

因此這個模型導出的最優策略與Q值的exp成正比,是一種隨機策略,而非Q-learning的greedy或epsilon-greedy策略。

更進一步我們可以加上discount項gamma,以及temperature參數alpha(加上這個參數,等價於把reward調小alpha倍,而alpha	o0時,那soft max退化為max,可以控制策略的exploration程度):

可以看出這個就是Boltzmann exploration

Forward messages

接下來想要知道p(s_t|mathcal{O}_{1:t-1}),即如果我每一步都是想要最優的,那麼我t時刻會在哪裡:

這個計算過程沒有什麼好講的地方。

而更重要的問題是p(s_t|mathcal{O}_{1:T})也就是說我從頭到尾每一步都要是最優的,那麼我的狀態分布應該是怎樣的

也就是前向信息與後向信息相乘,這個和概率圖的置信信息校準一樣,那麼得到的就是狀態的邊緣分布:

藍色分布代表前向信息p(s_t|mathcal{O}_{1:t-1}),黃色代表後向信息p(mathcal{O_{t:T}}|s_{t}),而綠色區域就代表每一步都要是最優的軌跡分布。


推薦閱讀:

一個 MXNet 實現的 Mask R-CNN.
域名關聯模型:讓惡意軟體自我暴露
新手學機器學習一個月後,一些第一手乾貨分享
李宏毅機器學習2016 第十五講 無監督學習 生成模型之 VAE
從Nesterov的角度看:我們為什麼要研究凸優化?

TAG:强化学习ReinforcementLearning | 机器学习 |