最“全”面的算法介紹:尋根究底探討策略梯度

本文旨在為強化學習——策略梯度中最重要的一類控制算法提供簡明而全面的介紹。作者將逐步討論這些算法,從基礎得出眾所周知的結果。本文針對的是希望學習強化學習中任何主題的讀者。

最“全”面的算法介紹:尋根究底探討策略梯度

介紹

強化學習(RL)指的是學習問題和機器學習的子領域,近來由於很多原因,這一領域備受大家關注。(比如說,基於RL的系統打敗了Go的世界冠軍、RL掌握了各種各樣的Atari遊戲等等。)科研人員更是直言它富有極大的發展潛力。現在讓我們更進一步的走進它。

強化學習是對學習問題的最一般的描述,其目的是使長期目標最大化。系統描述由一個代理組成,該代理通過其在離散時間步驟中的操作與環境交互獲得獎勵。

典型代理——環境反饋迴路如下圖所示。

最“全”面的算法介紹:尋根究底探討策略梯度

強化學習的特徵與人類如何有效地行動驚人地相似:體驗世界、積累知識並利用所學來處理新情況。像許多人一樣,這一吸引人的"天性"(儘管是一個更加棘手的表述)讓作者興奮,希望你也是如此。

背景和定義

RL背後的大量理論存在於"獎勵假設"的假設之下,該假設概括地指出,代理人的所有目標都可以用一個叫做獎勵的單一標量來解釋。這點的確存在爭議,但目前還很難反駁。更正式地說,獎勵假設如下:

獎勵假設即所有我們所說的目標和目的都可以被認為是所接收標量信號(稱為獎勵)的累積和的期望值的最大化。

作為一名RL從業者和研究人員,一個人的工作就是為一個給定的問題尋找一套正確的獎勵,這個問題稱為獎勵塑造。

代理人必須通過一個稱為馬爾可夫決策過程的理論框架來進行正式工作,該過程由在每個狀態下要做出的決策(要採取何種行動?)組成。這就產生了一系列的狀態。這其中,行動和獎勵被稱為軌跡,

最“全”面的算法介紹:尋根究底探討策略梯度

目標是使這套獎勵最大化。更正式地說,我們看看馬爾可夫決策過程框架:

馬爾可夫決策過程:(折扣)馬爾可夫決策過程(MDP)是一個元組(S,A,R,p,γ),例如

最“全”面的算法介紹:尋根究底探討策略梯度

其中S_t,S_(t + 1)∈S(狀態空間)、A_(t + 1)∈A(動作空間)、R_(t + 1)、R_t∈R(獎勵空間)流程、G_t是折扣收益。

簡而言之,MDP定義了轉換到新狀態的概率,在給定當前狀態和執行操作的情況下獲得一些獎勵。這個框架在數學上是令人滿意的,因為它是一階馬爾可夫。這是一種奇特的說法,即接下來發生的任何事情都只依賴於現在而不是過去。這個框架的另一個重要部分是折扣因子γ。它總結隨著時間的推移而獲得的獎勵,對未來的獎勵具有不同程度的重要性,得出折扣獎勵的概念。正如人們所預期的那樣,更高的γ會導致未來獎勵的更高敏感度。然而,在γ= 0的極端情況下不考慮未來的獎勵。

環境p的動態不在代理人的控制之下。為了內化這一點,可以想象站在一個有風的環境中的場地,並每秒都在四個方向中的一個方向邁出一步。風太大了,你很難朝著與北、東、西、南完全一致的方向移動。風場的動力學p給出了下一秒進入到新狀態的概率。這當然不在你的(代理人)控制之下。

但是,如果你以某種方式瞭解了環境的動態,並朝著除北、東、西或南以外的方向移動呢?馬爾可夫策略是代理人控制的。當代理人遵循策略π時,它會產生稱為軌跡的狀態、行為和獎勵順序。

策略:策略被定義為給定狀態的行為的概率分佈

最“全”面的算法介紹:尋根究底探討策略梯度

考慮到所有這些定義,讓我們看看RL問題是如何形式化的。

策略梯度

強化學習代理的目標是在遵循策略π時最大化"預期"獎勵。像任何機器學習設置一樣,我們定義一組參數θ(例如複數多項式的係數或者神經網絡中單位的權重和偏差)。用參數表示這個策略π_θ(為簡潔起見也寫成π)。如果我們將給定軌跡τ的總獎勵表示為r(τ),我們可以得出以下定義。

強化學習目標:根據參數化策略最大化"預期"的獎勵

最“全”面的算法介紹:尋根究底探討策略梯度

所有有限的MDP至少有一個最優策略(可以給出最大的獎勵),在所有的最優策略中至少有一個是固定的和具有確定性的。

像任何其他機器學習問題一樣,如果我們可以找到最大化J的參數θ,我們就能解決這個問題。在機器學習文獻中解決這個最大化問題的標準方法是使用梯度上升(或下降)。在梯度上升中,我們使用以下規則繼續瀏覽參數

最“全”面的算法介紹:尋根究底探討策略梯度

挑戰來了,我們如何找到包含期望的目標梯度?積分在計算環境中總是很糟糕。我們需要找到解決方法。第一步是從預期的擴展開始重新開始梯度(略有濫用符號)。

最“全”面的算法介紹:尋根究底探討策略梯度

策略梯度定理:期望獎勵的導數是策略π_θ對數的獎勵和梯度乘積的期望值

最“全”面的算法介紹:尋根究底探討策略梯度

現在,讓我們擴展π_θ(τ)的定義。

最“全”面的算法介紹:尋根究底探討策略梯度

為了理解這個計算,讓我們分解它 P代表在某些狀態s_0中開始的遍歷分佈。從那時起,我們應用概率乘積法則,因為每個新的行動概率都與前一個概率無關。在每個步驟中,我們使用策略π_θ和環境動力學採取一些行動決定要轉換過渡到新狀態。乘以T用步長表示軌跡的長度。等同地,取log:

最“全”面的算法介紹:尋根究底探討策略梯度

這個結果本身很美,因為這告訴我們,我們並不需要知道狀態P的遍歷分佈和環境動力學p。這是至關重要的,因為對於大多數實際目的來說,很難對這兩個變量進行建模。因此,所有使用此結果的算法都被稱為"無模型算法",因為我們不會"模擬"環境。

"期望"(或者相當於一個積分項)仍然存在。一個簡單而有效的方法是對大量軌跡進行採樣並將其平均。這是一個近似值,但也是一個沒有偏差的值,類似於近似在連續空間上的一個積分,其中有一組離散的點。這種技術在形式上被稱為馬爾可夫鏈蒙特卡羅(MCMC),廣泛用於概率圖形模型和貝葉斯網絡來近似參數概率分佈。

我們以上處理中未觸及的一個術語是對軌跡r(τ)的獎勵。即使參數化策略的梯度不依賴於獎勵,該術語也會在MCMC採樣中增加很多方差。實際上,每個R_t都有T個方差來源。然而,我們可以使用獎勵G_t,因為從優化RL目標的角度來看,過去的獎勵沒有任何貢獻。因此,如果用折現獎勵G_t代替r(τ),我們得到稱為REINFORCE的經典算法策略梯度算法。隨著我們進一步討論,這並不能完全解決這個問題。

最“全”面的算法介紹:尋根究底探討策略梯度

增強(基線)

重申一下,REINFORCE算法計算策略梯度為

增強梯度

最“全”面的算法介紹:尋根究底探討策略梯度

我們仍然沒有解決採樣軌跡中的方差問題。解決此問題的一種方法是重新設計上面定義的RL目標,即最大似然估計(Maximum Likelihood Estimate)。在MLE設置中,簡單地說,無論初始估計多麼糟糕,在數據極限內,模型都會收斂到真實參數。然而,在數據樣本具有高方差的情況下,穩定模型參數可能是非常困難的。在我們的情況下,任何不穩定的軌跡都可能導致策略分配出現次優變化。獎勵的規模加劇了這個問題。

因此,我們試著通過引入另一個稱為基線b的變量來優化獎勵的差異。為了保持梯度估計無偏差,基線獨立於策略參數。

基線增強

最“全”面的算法介紹:尋根究底探討策略梯度

我們必須證明梯度與附加術語(輕微濫用符號)保持不變。

最“全”面的算法介紹:尋根究底探討策略梯度

在理論和實踐中使用基線可以減少方差,同時保持梯度仍然無偏差。基線可以使用狀態值的當前狀態。

狀態值:狀態值被定義為在策略π_θ之後給定狀態的預期獎勵。

最“全”面的算法介紹:尋根究底探討策略梯度

Actor—Critic方法

找到一個好的基線本身就是一個挑戰,而計算它又是另一個挑戰。相反,讓我們使用參數ω近似得到V ^ω_(s)。 所有使用可學習的V ^ω_(s)來引導梯度的算法被稱為Actor-Critic算法,因為這個值函數估計像"演員"(代理人的策略)的"批評者"(好的v / s壞值)。 然而這一次,我們必須計算演員和批評者的梯度。

一步引導獎勵:單步引導獎勵獲取即時獎勵,並通過使用軌跡中下一狀態的引導值估計來估計獎勵。

最“全”面的算法介紹:尋根究底探討策略梯度

Actor—Critic策略梯度

最“全”面的算法介紹:尋根究底探討策略梯度

不言而喻,我們還需要更新評論者的參數ω。這裡的目標通常被認為是均方損失(或較不嚴重的Huber損失)並且使用隨機梯度下降來更新參數。

批評者的目標

最“全”面的算法介紹:尋根究底探討策略梯度

確定性策略梯度

通常,在機器人技術中,可控制策略是可用的,但這些操作不是隨機的。在這樣的環境下,很難像前面看到的那樣建立隨機策略。一種方法是將噪聲注入控制器中。更重要的是,隨著控制器維數的增加,先前看到的算法開始變得不適用。由於這種情況,我們不應該直接學習大量的概率分佈,而是直接瞭解給定狀態的確定性行為。因此,以最簡單的形式,得到最大化目標就是我們所需要的。

確定性行為

最“全”面的算法介紹:尋根究底探討策略梯度

然而,對於大多數實際目的而言,這種最大化操作在計算上是不可行的。相反,我們希望做的是構建一個函數近似器來近似這個argmax,因此稱其為確定性策略梯度(DPG)。

我們用下面的等式來總結這一點。

DPG目標

最“全”面的算法介紹:尋根究底探討策略梯度

確定性策略梯度

最“全”面的算法介紹:尋根究底探討策略梯度

這個數值變成了我們可以用MCMC抽樣再次估計的另一個期望值。

通用強化學習框架

現在我們可以得出一個通用的算法,以查看我們學到的所有東西是如何結合在一起的。所有新算法通常都是下面給出的算法的變體

最“全”面的算法介紹:尋根究底探討策略梯度

代碼

對於熟悉Python的讀者來說,這些代碼片段旨在成為上述理論思想的更具體的表示。這些已經都是從實際代碼的學習循環中取出來的。

策略梯度(同步Actor—Critic)

最“全”面的算法介紹:尋根究底探討策略梯度

深層確定性策略梯度

最“全”面的算法介紹:尋根究底探討策略梯度

完整的實現

可以在atactivatedgeek / torchrl上查看完整管道的完整模塊化實施。


分享到:


相關文章: