Berkeley CS294-112 深度增強學習 筆記 (11) 概率圖模型與軟化增強學習

前言:我個人向大家推薦伯克利大學的這門深度增強學習課程。這門課程的內容非常精彩,乾貨滿滿。事實上這門課程的完整版已經開設兩個學期,廣受關注,知乎內外已不乏點評,也有不錯的學習筆記。本筆記試圖較詳細地談談我自己的學習過程和理解,形成補充。課程內容的版權由伯克利大學所有,中文解釋說明的版權由我保留。由於該課程比較傾向於機器人學的應用,本人非工科專業,水平有限,有疏漏錯誤之處還請各路高手不吝賜教。如果能對大家有點滴用途,自當欣喜不已。

上一篇:謝天:Berkeley CS294-112 深度增強學習 筆記 (10) 基於模型的增強學習的策略訓練


概率圖模型上的推斷

在前面的筆記中,我們已經學習了如何使用一些常用演算法來做出正確決策以優化收益函數。現在,我們轉過頭來關注如何對人類(專家)行為進行建模:這種模型之後的逆增強學習中可以用來使用觀測推斷收益函數是什麼。在這裡,我們關注一些概率模型來對觀察到的行為進行建模,建立起概率推斷和最優控制、強化學習之間的關係,並從中得出一些新的(稍微不同的)新的增強學習演算法。

讓我們考慮人類在各種層面上的行為,如運動、在房間里行動,或者更高層面上的如開車的路徑規劃。一個合理的假設是,人類想要實現某種目標,都是去定義一些收益函數,並基於人類所能做出的行動mathbf{a}和人類對世界和物理的理解(也就是一個人類自以為的f(mathbf{s},mathbf{a})),做一些諸如最優控制的規划行動以實現目的。這個想法非常類似於我們之前的優化形式,mathbf{a}_1,ldots,mathbf{a}_T=argmax_{mathbf{a}_1,ldots,mathbf{a}_T}sum_{t=1}^Tr(mathbf{s}_t,mathbf{a}_t)~	ext{s.t.}~mathbf{s}_{t+1}=f(mathbf{s}_t,mathbf{a}_t),根據不同對象建立起不同的模型(如人的跑步是基於對人身體構造和物理環境的理解,汽車路徑規劃是對交通情況的理解),根據不同目標制定出不同的收益函數。對於一些隨機情況,可能我們需要得到一個最佳策略諸如pi=argmax_pimathbf{E}_{mathbf{s}_{t+1}sim p(mathbf{s}_{t+1}|mathbf{s}_t,mathbf{a}_t),mathbf{a}_tsimpi(mathbf{a}_t|mathbf{s}_t)}left[sum_tr(mathbf{s}_t,mathbf{a}_t)
ight]來最大化期望收益的期望,然後從中挑選出行動mathbf{a}_tsimpi(mathbf{a}_t,mathbf{s}_t)。這是基於人的理性決策的假設,因此要研究一個人如何做出決策,如果我們能得到對應的收益函數,那麼從某種意義上說就可以用最優控制或者增強學習的框架來解釋或預測在各種場合下這個人的決策。

比如說有一項實驗,使用果子獎勵刺激猴子把場景里一個物體移動到某個指定位置。我們知道最優的移動軌跡必然是兩點連線的直線段,但是猴子可能不會走這樣的直線,總會多多少少有一些彎曲,但同樣能完成任務。這是因為,猴子的決策基本總不是完美的,反正目標能完成就能拿到獎勵,所以在某些領域有一些誤差其實影響並不大(走了一條較長的路線差了幾秒鐘猴子可能覺得無所謂,而如果沒有把物體移動到指定位置那麼就沒果子吃了,差別很大)。對於猴子來說,行為是隨機的,但是「好的行為」總是有一定相似度的。現在的問題是,如何使用數學的方法來表達,次優的路徑也是可以的但是不達目標的路徑是不行的這個界限,以及如何刻畫這個隨機行為。

我們考慮使用概率圖模型來表達這個「近似最優的」行為:與之前我們只採取最優策略不同,我們也需要讓一些次優行動有非零概率存在。在之前,我們知道了狀態mathbf{s}和行動mathbf{a}通過系統動態p(mathbf{s}|mathbf{s},mathbf{a})共同決定了下一個狀態mathbf{s}。對於這樣的一串	au=(mathbf{s}_{1:T},mathbf{a}_{1:T}),我們應有出現概率p(	au),但是只有真實物理場景對猴子進行限制(如猴子不能飛),但沒有對猴子試圖做的最優行為或者意圖進行假設。為了對猴子的意圖進行建模,我們加入了mathcal{O}元素來代表最優性,也就是說,代表猴子嘗試使用一些最優手段來完成(階段性)目標。簡單起見,我們假設mathcal{O}元素是一個0-1變數,如果猴子沒在完成意圖就是0,反之是1,也可以理解成一個事件。接下來我們要做的事情就是來描述p(	au|mathcal{O}_{1:T})。在這裡一個重要假設是p(mathcal{O}_t|mathbf{s}_t,mathbf{a}_t)proptoexp(r(mathbf{s}_t,mathbf{a}_t)),那麼條件概率p(	au|mathcal{O}_{1:T})=frac{p(	au,mathcal{O}_{1:T})}{p(mathcal{O}_{1:T})}propto p(	au)prod_texp(r(mathbf{s}_t,mathbf{a}_t))=p(	au)expleft(sum_tr(mathbf{s}_t,mathbf{a}_t)
ight),也就是正比於該軌跡實際的發生的概率乘上軌跡總收益的自然指數。因此,收益最大的(可行)軌跡就變得可能性最大;如果有一條軌跡收益也一樣大,物理可能性相同,那麼它同樣也很可能發生:如有多條它們將平分可能性。注意在這裡,p(	au)只是用於評判給定了所有狀態和行動後,這樣一個序列的可能性,並不去決策。

這個模型表達了有些軌跡雖然不是最好的,但是也還不錯的這樣一個特徵:猴子的例子告訴我們,在終點有一個巨大的收益,但是在路途中間並沒有什麼收益,因此可能有非常非常多的較優路徑存在,但它們最後都指向了同一個終點。在這個模型中,收益最高的行為是最有可能的,當收益下降的時候它的可能性指數下降。有些軌跡雖然可能發生,但是可能性非常低,因此智能體可能不願意承擔這個風險:因為想去最大化期望收益,智能體可能寧願選擇收益較低的但是可能性較高的軌跡。這個模型有一些好處。第一點,它可以對次優行為進行建模,這個在逆增強學習中非常有意義,用於觀察他人的行為來揣測他的真實目標。第二點,可以使用一些推斷演算法來求解控制規劃問題。此外,它可以對為什麼會偏好隨機行為(相較於確定性行為)給出解釋

我們的推斷 (inference) 問題是,如果執行最優策略,那麼在當前狀態下做出某個行動的概率是多少。為了解決這樣的問題,我們需要回答三類問題:第一類是如何計算後向信息 (backward messages) eta_t(mathbf{s}_t,mathbf{a}_t)=p(mathcal{O}_{t:T}|mathbf{s}_t,mathbf{a}_t);第二類是如何計算策略 (policy) pi(mathbf{a}_t|mathbf{s}_t)=p(mathbf{a}_t|mathbf{s}_t,mathcal{O}_{1:T});第三類是如何計算前向信息 (forward messages) alpha_t(mathbf{s}_t)=p(mathbf{s}_t|mathcal{O}_{1:t-1})


首先我們來看後向信息eta_t(mathbf{s}_t,mathbf{a}_t)=p(mathcal{O}_{t:T}|mathbf{s}_t,mathbf{a}_t),給定某個時間點的狀態和行動,得出未來最優性變數的觀測概率(它不關心過去)。之所以說是後向信息,是它的計算方式類似於LQR中的倒推。在遞推邊界t=T時,根據定義有eta_T(mathbf{s}_T,mathbf{a}_T)=p(mathcal{O}_T|mathbf{s}_T,mathbf{a}_T)proptoexp(r(mathbf{s}_T,mathbf{a}_T)),只需要做歸一化;在中間,我們使用全概率公式進行積分,並使用Markov性進行概率拆分,得到 p(mathcal{O}_{t:T}|mathbf{s}_t,mathbf{a}_t)=int p(mathcal{O}_{t:T},mathbf{s}_{t+1}|mathbf{s}_t,mathbf{a}_t)mathrm{d}mathbf{s}_{t+1}=int p(mathcal{O}_{t+1:T}|mathbf{s}_{t+1})p(mathbf{s}_{t+1}|mathbf{s}_t,mathbf{a}_t)p(mathcal{O}_t|mathbf{s}_t,mathbf{a}_t)mathrm{d}mathbf{s}_{t+1}。其中我們已知p(mathcal{O}_t|mathbf{s}_t,mathbf{a}_t)proptoexp(r(mathbf{s}_t,mathbf{a}_t))p(mathbf{s}_{t+1}|mathbf{s}_t,mathbf{a}_t),而剩餘一塊根據全概率公式有p(mathcal{O}_{t+1:T}|mathbf{s}_{t+1})=int p(mathcal{O}_{t+1:T}|mathbf{s}_{t+1},mathbf{a}_{t+1})p(mathbf{a}_{t+1}|mathbf{s}_{t+1})mathrm{d}mathbf{a}_{t+1},其中p(mathcal{O}_{t+1:T}|mathbf{s}_{t+1},mathbf{a}_{t+1})=eta_{t+1}(mathbf{s}_{t+1},mathbf{a}_{t+1})p(mathbf{a}_{t+1}|mathbf{s}_{t+1})比較奇怪,它並不是一個策略函數,而只是一個給定狀態做出什麼決策的先驗概率,在這裡我們可以先認為是均勻分布的,概率密度是一個常數。我們進一步令eta_t(mathbf{s}_t)=p(mathcal{O}_{t:T}|mathbf{s}_t),則所有的概率可以由以下倒推過程完成:

for t=T-1 to 1:

eta_t(mathbf{s}_t,mathbf{a}_t)=p(mathcal{O}_t|mathbf{s}_t,mathbf{a}_t)mathbf{E}_{mathbf{s}_{t+1}sim p(mathbf{s}_{t+1}|mathbf{s}_t,mathbf{a}_t)}[eta_{t+1}(mathbf{s}_{t+1})] eta_t(mathbf{s}_t)=mathbf{E}_{mathbf{a}_tsim p(mathbf{a}_t|mathbf{s}_t)}[eta_t(mathbf{s}_t,mathbf{a}_t)]

回顧我們的值函數迭代 (value iteration) 演算法,和這個演算法不謀而合。因為這裡所有的操作都是乘法形式,我們將其取對數變成加法形式。令V_t(mathbf{s}_t)=log eta_t(mathbf{s}_t)Q_t(mathbf{s}_t,mathbf{a}_t)=log eta_t(mathbf{s}_t,mathbf{a}_t)。根據第二條關係有V_t(mathbf{s}_t)=logintexp(Q_t(mathbf{s}_t,mathbf{a}_t))mathrm{d}mathbf{a}_t。從極限的角度看,隨著Q的值變大,顯然會有V_t(mathbf{s}_t)
ightarrowmax_{mathbf{a}_t}Q_t(mathbf{s}_t,mathbf{a}_t),因此前者的這種操作也被稱為softmax,是max函數的一個軟化。根據第一條關係,有Q_t(mathbf{s}_t,mathbf{a}_t)=r(mathbf{s}_t,mathbf{a}_t)+logmathbf{E}[exp(V_{t+1}(mathbf{s}_{t+1}))]。這個形式看起來很奇怪:如果狀態轉移是確定的,那麼期望就可以拿掉了,對數和指數就抵消了,有Q_t(mathbf{s}_t,mathbf{a}_t)=r(mathbf{s}_t,mathbf{a}_t)+V_{t+1}(mathbf{s}_{t+1}),和值函數迭代形式一致;如果狀態轉移是隨機的,那麼logmathbf{E}[exp(V_{t+1}(mathbf{s}_{t+1}))]就是一個softmax,最樂觀的轉移。然而,樂觀也不是個好事情,Ziebart et al. (2010) "Modeling Interaction via the Principle of Maximum Causal Entropy" 一文提供了一個基於最大因果熵 (maximal causal entropy) 原則的方法,此時Q_t(mathbf{s}_t,mathbf{a}_t)=r(mathbf{s}_t,mathbf{a}_t)+mathbf{E}[V_{t+1}(mathbf{s}_{t+1})]

在之前,我們還剩餘了一個對p(mathbf{a}_{t+1}|mathbf{s}_{t+1})的均勻分布的假設。如果這個先驗分布不是均勻分布,值函數將會變成V_t(mathbf{s}_t)=logintexp(Q_t(mathbf{s}_t,mathbf{a}_t)+log p(mathbf{a}_t|mathbf{s}_t))mathrm{d}mathbf{a}_t,並保持Q_t(mathbf{s}_t,mathbf{a}_t)=r(mathbf{s}_t,mathbf{a}_t)+mathbf{E}[V_{t+1}(mathbf{s}_{t+1})]不變。如果我們定義一個新的Q函數,	ilde{Q}_t(mathbf{s}_t,mathbf{a}_t)=r(mathbf{s}_t,mathbf{a}_t)+log p(mathbf{a}_t|mathbf{s}_t)+mathbf{E}[V_{t+1}(mathbf{s}_{t+1})],那麼值函數又變成V_t(mathbf{s}_t)=logintexp(	ilde Q_t(mathbf{s}_t,mathbf{a}_t))mathrm{d}mathbf{a}_t了:這說明我們的log p(mathbf{a}_t|mathbf{s}_t)項總能和r(mathbf{s}_t,mathbf{a}_t)項合併到一起去,因此我們在實際求解的時候可以不失一般性地假設這一項不對演算法產生任何困難:如果有一個非均勻分布的先驗,就把它放到收益函數裡面去就行了。


第二個是策略pi(mathbf{a}_t|mathbf{s}_t)=p(mathbf{a}_t|mathbf{s}_t,mathcal{O}_{1:T}),也就是給定當前狀態和所有最優性變數,得出行動的概率。首先根據Markov性,有pi(mathbf{a}_t|mathbf{s}_t)=p(mathbf{a}_t|mathbf{s}_t,mathcal{O}_{t:T})。將條件概率進行一步變形,前者就等於frac{p(mathbf{a}_t,mathbf{s}_t|mathcal{O}_{t:T})}{p(mathbf{s}_t|mathcal{O}_{t:T})}。根據貝葉斯公式,又可以變形為frac{p(mathcal{O}_{t:T}|mathbf{a}_t,mathbf{s}_t)p(mathbf{a}_t,mathbf{s}_t)/p(mathcal{O}_{t:T})}{p(mathcal{O}_{t:T}|mathbf{s}_t)p(mathbf{s}_t)/p(mathcal{O}_{t:T})}=frac{p(mathcal{O}_{t:T}|mathbf{a}_t,mathbf{s}_t)}{p(mathcal{O}_{t:T}|mathbf{s}_t)}frac{p(mathbf{a}_t,mathbf{s}_t)}{p(mathbf{s}_t)}。兩個分式相乘,前者為後向信息之比frac{eta_t(mathbf{s}_t,mathbf{a}_t)}{eta_t(mathbf{s}_t)},後者為先驗p(mathbf{a}_t|mathbf{s}_t),如果我們假設先驗是均勻分布的話那麼後者是常數,因此可以去掉。從而,我們有pi(mathbf{a}_t|mathbf{s}_t)=frac{eta_t(mathbf{s}_t,mathbf{a}_t)}{eta_t(mathbf{s}_t)}。在我們之前的倒推過程中,如果換成Q函數和V函數的話,就是:

for t=T-1 to 1:

Q_t(mathbf{s}_t,mathbf{a}_t)=r(mathbf{s}_t,mathbf{a}_t)+mathbf{E}[V_{t+1}(mathbf{s}_{t+1})] V_t(mathbf{s}_t)=logintexp(Q_t(mathbf{s}_t,mathbf{a}_t))mathrm{d}mathbf{a}_t

pi(mathbf{a}_t|mathbf{s}_t)=frac{eta_t(mathbf{s}_t,mathbf{a}_t)}{eta_t(mathbf{s}_t)}=exp(Q_t(mathbf{s}_t,mathbf{a}_t)-V_t(mathbf{s}_t))=exp(A_t(mathbf{s}_t,mathbf{a}_t)),正好是一個優勢函數的指數的概念,也比較符合邏輯。這些函數還有一些變種,如對Q函數貼現Q_t(mathbf{s}_t,mathbf{a}_t)=r(mathbf{s}_t,mathbf{a}_t)+gammamathbf{E}[V_{t+1}(mathbf{s}_{t+1})]就變成了貼現隨機最優控制 (discounted SOC);顯式加入一個溫度(熱力學概念)V_t(mathbf{s}_t)=alphalogintexp(Q_t(mathbf{s}_t,mathbf{a}_t)/alpha)mathrm{d}mathbf{a}_t,我們的Q和V都對溫度非常敏感,當alpha
ightarrow0時softmax就退化成max,且有溫度時pi(mathbf{a}_t|mathbf{s}_t)=exp(A_t(mathbf{s}_t,mathbf{a}_t)/alpha)

這樣的策略的一個直接的解釋是,使得「更好的」行動更可能發生。如果有多個性質一樣好的行動,它們的可能性一致,只是一個概率分布的策略只需隨機挑選一個。它和Boltzmann探索(見第六篇)有很強的相似性。隨著溫度下降,它逐漸逼近與一個貪心的策略。


最後一個推斷問題是前向信息 (forward messages) alpha_t(mathbf{s}_t)=p(mathbf{s}_t|mathcal{O}_{1:t-1}),給定之前的所有最優性變數,得出在當前時點到達某狀態的概率。這個對策略來說並不重要,但是在逆增強學習中非常重要。前向信息的邊界alpha_1(mathbf{s}_1)=p(mathbf{s}_1),通常認為初始分布是已知的。將該概率進行展開,變成一個二重積分p(mathbf{s}_t|mathcal{O}_{1:t-1})=int p(mathbf{s}_t|mathbf{s}_{t-1},mathbf{a}_{t-1})p(mathbf{a}_{t-1}|mathbf{s}_{t-1},mathcal{O}_{t-1})p(mathbf{s}_{t-1}|mathcal{O}_{1:t-2})mathrm{d}mathbf{s}_{t-1}mathrm{d}mathbf{a}_{t-1}。其中第一項p(mathbf{s}_t|mathbf{s}_{t-1},mathbf{a}_{t-1})我們假設是已知的系統狀態轉移,第三項p(mathbf{s}_{t-1}|mathcal{O}_{1:t-2})=alpha_{t-1}(mathbf{s}_{t-1})。第二項略微複雜,使用貝葉斯定理得到p(mathbf{a}_{t-1}|mathbf{s}_{t-1},mathcal{O}_{t-1})=frac{p(mathcal{O}_{t-1}|mathbf{s}_{t-1},mathbf{a}_{t-1})p(mathbf{a}_{t-1}|mathbf{s}_{t-1})}{p(mathcal{O}_{t-1}|mathbf{s}_{t-1})},其中p(mathcal{O}_{t-1}|mathbf{s}_{t-1},mathbf{a}_{t-1})proptoexp(r(mathbf{s}_{t-1},mathbf{a}_{t-1})),我們假設p(mathbf{a}_{t-1}|mathbf{s}_{t-1})是均勻分布,分母也是一個歸一化常數,因此p(mathbf{a}_{t-1}|mathbf{s}_{t-1},mathcal{O}_{t-1})proptoexp(r(mathbf{s}_{t-1},mathbf{a}_{t-1}))。於是就得到一個正向的遞推關係了。

有了前向消息和後向信息之後,給定所有最優性變數,求某時刻的某狀態的發生概率就比較容易了。p(mathbf{s}_t|mathcal{O}_{1:T})=frac{p(mathbf{s}_t,mathcal{O}_{1:T})}{p(mathcal{O}_{1:T})}=frac{p(mathcal{O}_{t:T}|mathbf{s}_t)p(mathbf{s}_t|mathcal{O}_{1:t-1})p(mathcal{O}_{1:t-1})}{p(mathcal{O}_{1:T})},其中p(mathcal{O}_{t:T}|mathbf{s}_t)=eta_t(mathbf{s}_t)p(mathbf{s}_t|mathcal{O}_{1:t-1})=alpha_t(mathbf{s}_t),其他可以看作歸一化常數,因此p(mathbf{s}_t|mathcal{O}_{1:T})proptoeta_t(mathbf{s}_t)alpha_t(mathbf{s}_t),這整個理論和HMM很像。注意到這個概率是前向消息和後項消息的乘積,可以說是一個交匯。考慮上圖左邊圓點是起點,右邊叉叉是終點的路徑。黃色錐區域是能夠有高概率到達終點的狀態,藍色錐區域是有高概率從初始狀態以高收益到達的狀態,然後基本上就是兩者的交(概率上相乘)。Li and Todorov (2006) 做了人和猴子類似從一個點到另一個點的實驗,記錄空間位置變化,基本上也是中間部分方差最大。

總結來說,我們這邊用概率圖模型來描述最優控制,而且這個最優控制可以用概率推斷來實現(類似於HMM和EKF),而且與動態規劃、值函數迭代關係非常強(它這裡面max是軟化的,可以通過降低溫度來使得變成硬性max)。

軟化的增強學習演算法

使用之前提到的軟化max函數,可以得到很多增強學習演算法,例如我們在這裡對Q學習進行軟化。對於標準的Q學習,參數的迭代格式為phileftarrowphi+alpha
abla_phi Q_phi(mathbf{s},mathbf{a})(r(mathbf{s},mathbf{a})+gamma V(mathbf{s})-Q_phi(mathbf{s},mathbf{a})),目標值函數為V(mathbf{s})=max_{mathbf{a}}Q_phi(mathbf{s},mathbf{a})。而對於軟化Q學習來說,梯度步還是一樣的,但是目標值函數變成了軟化max函數V(mathbf{s})=	ext{soft}max_{mathbf{a}}Q_phi(mathbf{s},mathbf{a})=logintexp(Q_phi(mathbf{s},mathbf{a}))mathrm{d}mathbf{a}。同樣,策略函數也變成了類似Boltzmann探索的pi(mathbf{a}|mathbf{s})=exp(Q_phi(mathbf{s},mathbf{a})-V(mathbf{s}))=exp(A(mathbf{s},mathbf{a}))。因此,只需要將DQN的第三步中「使用目標網路Q_{phi}計算出目標值y_j=r_j+gammamax_{mathbf{a}_j}Q_{phi}(mathbf{s}_j,mathbf{a}_j)」改成 y_j=r_j+gamma	ext{ soft}max_{mathbf{a}_j}Q_{phi}(mathbf{s}_j,mathbf{a}_j) 就可以了。第一步的「在環境中執行某個操作mathbf{a}_i,觀察到(mathbf{s}_i,mathbf{a}_i,r_i,mathbf{s}_i)」的操作,如果想在線執行(如SARSA),也需要用軟化max來抽取。

策略梯度法也可以進行軟化。Ziebart et al. (2010) "Modeling Interaction via the Principle of Maximum Causal Entropy" 一文的一個結論是pi(mathbf{a}|mathbf{s})=exp(Q_phi(mathbf{s},mathbf{a})-V(mathbf{s}))最大化sum_tmathbf{E}_{pi(mathbf{s}_t,mathbf{a}_t)}[r(mathbf{s}_t,mathbf{a}_t)]+mathbf{E}_{pi(mathbf{s}_t)}[mathcal{H}(pi(mathbf{a}_t|mathbf{s}_t))]。關於該結論的一個比較直觀的理解是,當pi最小化D_{	ext{KL}}left(pi(mathbf{a}|mathbf{s})middleVertfrac{1}{Z}exp(Q(mathbf{s},mathbf{a}))
ight)時(Z為歸一化因子),pi(mathbf{a}|mathbf{s})proptoexp(Q_phi(mathbf{s},mathbf{a}))。而如果我們展開KL距離表達式,D_{	ext{KL}}left(pi(mathbf{a}|mathbf{s})middleVertfrac{1}{Z}exp(Q(mathbf{s},mathbf{a}))
ight)=mathbf{E}_{pi(mathbf{a}|mathbf{s})}[Q(mathbf{s},mathbf{a})]-mathcal{H}(pi),這是因為取完對數正好是這樣。因此,如果要對策略梯度法進行軟化,我們也只需要在目標函數內,在期望收益之後加上策略函數的熵就可以了:這個熵給策略一定壓力,使得它不會退化成一個確定性策略。這種方法通常被稱為熵正則化 (entropy regularized) 策略梯度法,通常用於防止策略過早地熵崩塌 (premature entropy collapse)。這在行動空間是連續的時候尤為重要,如我們之前在策略梯度法的第二個問題中提到,高斯策略下,策略梯度法通常希望減少策略的方差,因為減少方差通常可以導致局部的收益增大,但這同時也會使得策略梯度卡住,改進停止,加入熵也是一個方法。

同時,這個方法和軟化的Q學習也非常有關,詳見Haarnoja et al. (2017) 的"Reinforcement Learning with Deep Energy-Based Policies" 和Schulman et al. (2017) 的"Equivalence Between Policy Gradients and Soft Q-Learning"。這裡給出一個比較簡單的介紹。由於mathcal{H}(pi(mathbf{a}_t|mathbf{s}_t))=mathbf{E}_{pi(mathbf{a}_t|mathbf{s}_t)}[-logpi(mathbf{a}_t|mathbf{s}_t)],軟化的策略梯度法的目標函數就等於J(	heta)=sum_tmathbf{E}_{pi(mathbf{s}_t,mathbf{a}_t)}[r(mathbf{s}_t,mathbf{a}_t)-logpi(mathbf{a}_t|mathbf{s}_t)]。將其關於策略參數取梯度, 
abla_	heta J(	heta)approxfrac{1}{N}sum_isum_t
abla_	hetalogpi_	heta(mathbf{a}_t|mathbf{s}_t)left(r(mathbf{s}_t,mathbf{a}_t)+left(sum_{t=t+1}^Tr(mathbf{s}_{t},mathbf{a}_{t})-logpi(mathbf{a}_{t}|mathbf{s}_{t})
ight)-logpi(mathbf{a}_t|mathbf{s}_t)-1
ight) ,最後的那個1可以通過基線 (baseline) 拿掉,而中間的left(sum_{t=t+1}^Tr(mathbf{s}_{t},mathbf{a}_{t})-logpi(mathbf{a}_{t}|mathbf{s}_{t})
ight)approx Q(mathbf{s}_{t+1},mathbf{a}_{t+1})。注意到,軟化的Q學習中,logpi(mathbf{a}_t|mathbf{s}_t)=Q(mathbf{s}_t,mathbf{a}_t)-V(mathbf{s}_t),因此代入進去得到
abla_	heta J(	heta)approxfrac{1}{N}sum_isum_t(
abla_	heta Q(mathbf{a}_t|mathbf{s}_t)-
abla_	heta V(mathbf{s}_t))left(r(mathbf{s}_t,mathbf{a}_t)+Q(mathbf{s}_{t+1},mathbf{a}_{t+1})-Q(mathbf{s}_t,mathbf{a}_t)+V(mathbf{s}_t)
ight),同樣V(mathbf{s}_t) 可以拿掉。對於軟化的Q學習,它的梯度為-frac{1}{N}sum_isum_t
abla_	heta Q(mathbf{a}_t|mathbf{s}_t)left(r(mathbf{s}_t,mathbf{a}_t)+	ext{soft}max_{mathbf{a}_{t+1}}Q(mathbf{s}_{t+1},mathbf{a}_{t+1})-Q(mathbf{s}_t,mathbf{a}_t)
ight),看起來是非常相似的。符號不同是因為Q學習是梯度下降,而策略梯度法是梯度上升。

總體來說,軟化方法的好處主要是有以下幾點。首先毫無疑問地,它增加了探索(類似Boltzmann探索)且防止了熵的坍塌。軟化方法對狀態的覆蓋面更廣魯棒性增強,也更容易對特定的任務進行調參(預訓練)。對於並列最優的情況,軟化max得到的是一個分布,幾個選項將等概率選擇,通過調整溫度參數和收益尺度可以使得軟化max變成硬max。在之後我們也將體現這個模型更適合對人類行為建模

Haarnoja et al. (2017) 的"Reinforcement Learning with Deep Energy-Based Policies" 使用軟化的Q學習方法來進行成功的實踐。用策略梯度法來學習MuJoCo小人跑步的任務,超參數稍微進行調整,可能雖然得分都很高但是跑步形態完全不同,這是因為增強學習演算法一旦發現一塊比較好的區域,就會去加強這塊區域的利用率,很容易達到局部最優。如上圖中,機器人想到達這個藍塊,代價函數為到這個藍塊的距離。機器人可以選擇黃色或綠色路線,初始看起來可能效果差不多,但是黃色路線實際上是走不通的:軟化的方法可以讓兩條線路有更均衡的被選擇概率,防止某一塊被過度增強,不錯失可能性。這個方法被稱為隨機的基於能量的策略 (stochastic energy-based policy)。要保證所有假設都被驗證,就是用之前介紹過的軟化Q學習演算法,問題是如何實現從分布中採樣。為了實現這個目標,它們訓練一個隨機網路來根據狀態和某高斯隨機噪音來得到行動(類似模仿學習中提到過的隱性密度模型),使用均攤的SVGD (Stein Variational Gradient Descent) (Wang and Liu, 2017) 來訓練以符合pi(mathbf{a}|mathbf{s})proptoexp(Q(mathbf{s},mathbf{a})),和GAN的想法非常接近。

四足動物在一個槽里移動的訓練,在預訓練時,軟化的Q學習相比DDPG(加上epsilon-貪心)來說探索覆蓋面更廣(一開始就顯示出了非常強的探索性)。事實上,有預訓練比沒有預訓練效果好很多,而且軟化Q學習的預訓練效果比DDPG預訓練要好。


推薦閱讀:

TAG:強化學習ReinforcementLearning | 深度學習DeepLearning | 人工智慧 |