【基於模型的強化學習】論文閱讀


強化學習傳說:第五章 基於模型的強化學習

無模型的方法是通過agent不斷探索環境,不斷試錯,不斷學習,因此導致了無模型的方法數據效率不高。而基於模型的方法則相反,它能夠充分利用已有的模型,高效地利用數據。

簡單的思路:
先訓練得到環境模型,再利用規划求解。但是本來專家算法就是這么做的。
但是可以考慮基於模型的方法,縮少訓練時間,因為環境可以快速給出結果,但是積分本身應該也挺快的。

  1. 通過某種策略\(\pi (a_t|s_t)\)例如隨機策略來獲取大量數據\(D=((s_t,a_t)s_{t+1})\)
  2. 學習一個模型\(f(s_t,a_t)\)來最小化誤差\(\sum \left \| f(s_t,a_t)-s_{t+1} \right \|^2\)
  3. 運用模型\(f(s_t,a_t)\)來進行計划
  4. 執行計划獲得新數據,並將新數據加入到D中回到步驟2

注意這個方法和DAgger的不同:這里我們的目標是學習模型,而DAgger是學習策略。

Model Predictive Control

每次我們只執行計划中的第一步來獲取新的數據。

基於模型的強化學習(一)

model based RL主要可以分為四種方法:

  • Dyna-style methods
    • Dyna類的方法的特點是可以將Model free的方法和world model結合,world model可以提供大量的模擬數據給model free的算法進行對policy的學習,屬於一種顯式的策略訓練方法;
  • Analytical gradient
    • Analytical類的方法的特點是利用了模型產生數據的可微性(differentiability),直接對trajectory的return進行優化來對策略進行訓練;
  • Planning
    • Planning類的方法是不顯式的對策略進行訓練,而是基於world model用簡單的規划方法得到一系列動作,能夠快速的遷移到相似的任務場景上;
  • Model-based value expansion
    • 通過對動作價值或者狀態價值更好的估計來減小world model和真實環境中的誤差,能夠控制模型的使用來平衡偏差和方差。
Dyna-style Methods

使用world model在各個狀態基於預測想象,來得到智能體與環境的交互數據,盡管由於模型和真實環境有一定偏差,但是這個交互數據依然有相當的可信度能夠用來充當強化學習算法的訓練數據。

這種方式能很好的補充model free方法中策略訓練所需要的數據,減少與真實環境的交互和成本,提高sample efficiency。

MBPO(Model Based Policy Optimization)

根據對模型error的估計和,通過控制模型rollout的長度來有限度的使用環境model,最大化的利用學到的環境model。
作者實驗發現single-step model rollouts的效果是最好的。

AMPO(Adaptation Augmented Model-based Policy Optimization)

針對環境模型的model error帶來的distribution mismatch,有較多工作來解決:
第一類是從環境模型的訓練學習(Model Learning)本身提升,比如不同的網絡架構或者損失函數來緩解overfitting或者提升multi step prediction來讓環境模型與真實環境更加相似;
第二類是從環境模型的使用(Model Usage)着手,根據環境模型離真實分布的偏離程度,來控制對環境模型的使用程度。

提出unsupervised model adaptation來找到真實數據和虛擬想象數據中的不變量表征,鼓勵學到兩種數據中更加一致的特征,產生虛擬數據時能預測的更准確,緩解model bias,從而提升了性能表現。

基於模型的強化學習(二):Model-based Value Estimation

Model-based value estimation(MVE)

通過僅將利用 model 的 imagination 保持在fixed length來控制 model 的不確定性。使用 learned model 來估計 short-term horizon,用傳統的 Q-learning 估計 long-term horizon。並將二者結合起來,實現 data-efficient。

Stochastic Ensemble Value Expansion (STEVE)

STEVE提出的改進就是在不同長度的 H 使用動態插值的辦法,使用emsemble替換模型和Q函數,用emsemble樣本的方差估計不確定性。(用多個模型來計算軌跡的經驗均值和方差)。

Dynamic-horizon Model-based Value Estimation(DMVE)

作者想改進的點就在於,根據不同的 \(s_t\)來挑選不同的H。

作者引入多一個超參數 K ,來選取top K個值估計更准確的后續狀態 \(s_{t+h}\) ,求均值來作為最終value estimation對當前狀態 \(s_t\) 的值估計,只能說刪除了一些rollout過程中明顯不准確的后續state,在有限H步的rollout length中進一步篩到較准確的K個后續狀態來代表當前狀態。

基於模型的強化學習方法學習得到的模型有哪些,具體形式是什么?

包括CEM和MCTS在內的這種采樣路徑然后通過選擇動作或者說策略來得到最優路徑的方法在控制領域稱為打靶法(shooting method)。

一種避免模型預測誤差的方式是不明確使用模型預測,而是使用模型的梯度。

  • SVG(Stochastic Value Gradients, 2015)。狀態價值的時間差分估計與下一狀態價值相關,而下一狀態價值可用模型和策略表示,於是在模型對狀態和動作可微時,狀態價值的梯度可以表示為模型梯度和策略梯度的函數。
  • MVE(Model Value Expansion, 2018)。模型的預測能夠提供更遙遠的狀態動作價值(Q值)估計,於是基於單步預測更新的Q值能夠使用多步的預測,從而帶來更准確的估計。
  • STEVE(Stochastic Ensemble Value Expansion, 2019)。在MVE基礎上加入了模型集成,用於估計模型的不確定性。

另一種避免直接使用模型預測的方式是使用模型在各狀態基於預測想象得到智能體與環境的交互數據,用於充當無模型強化學習算法額外的訓練數據(Dyna-style)。

  • Dyna:將用模型生成想象的數據用於無模型算法訓練的算法稱為Dyna系算法。還有個名字很像的算法叫DAgger,基於模仿學習中對每次策略采樣數據進行人工重標記的思想。
  • ME-TRPO(Model Ensemble Trust-Region Policy Optimization, 2018)。使用模型集成來得到模型的不確定性,這樣模型生成的數據就有了重要與不重要之分,從而降低模型預測誤差的影響。
  • MBPO(Model-Based Policy Optimization, 2019)。同樣使用模型集成估計不確定性,建模輸出高斯分布,模型基於真實采樣數據中的狀態進行有限步長的預測,然后使用這些一定步長的預測數據作為想象數據與真實交互數據共同訓練無模型RL算法。
  • AMPO(Adaptation augmented Model-based Policy Optimization, 2020)。這篇是給模型學習過程加入了一項正則約束,鼓勵模型去學習那些想象數據和真實數據更一致的特征,也就是說鼓勵模型去學習模型更容易想象出來的場景,減少了模型不分主次學習場景的負擔。

在RL中,學習模型的最終目的還是為了求策略。所以涉及到怎么用模型的問題。一般就是利用模型來做規划。當然也可以把模型嵌入到策略中來直接求策略。

2021:Model-based Reinforcement Learning: A Survey.

規划(planning)方法之間的一個重要區別是它們是否需要模型的可微性:

類型:

  • 離散任務規划
  • 可微規划:
    • 如果轉移模型和獎勵模型是可微的,並且我們指定了可微的策略,那么我們可以直接取累積獎勵目標相對於策略參數的梯度。因此,基於模型的RL可以突然利用微分規划方法,利用所學模型的可微性。注意,可微模型也可以從物理規則中獲得,例如在可微物理引擎中。
    • 使用差分規划的基於模型的 RL 的成功示例是 PILCO,它通過高斯過程動力學模型進行微分,以及 Dreamer 和時間段模型,它通過(潛在)神經網絡動力學模型進行微分。
    • Dreamer就是把在模型中學到的樣本加入buffer中。

規划的方向:前向模擬、反向(s′ → s, a),其中規划算法遵循估值變化最大的方向。最近,用神經網絡近似的方法研究了高維問題中的逆向模型。

廣度和深度:對於無模型 RL 方法,寬度並不是真正需要考慮的因素,因為我們只能在一個狀態下嘗試單個動作(寬度為一個)。然而,根據定義,模型是可逆的,我們現在可以自由選擇並自適應地平衡計划的廣度和深度。

廣度:

  • Breadth = 1:Dyna,采樣的額外一步數據用於無模型Q-learning
  • Breadth = adaptive:許多規划方法自適應地衡量規划的廣度。 當然,問題是我們不能進行全廣度和全深度的搜索,因為窮舉搜索在計算上是不可行的。一種自適應擴大搜索廣度的方法是,例如蒙特卡羅樹搜索(Browne et al., 2012),通過置信上限公式。
  • Breadth = full:最后,在考慮更深層次的搜索之前,我們當然可以全面探索行動空間。很少采用。

深度:

  • Depth = 1:Dyna
  • Depth = intermediate(適當的):當然,我們應該注意,更深的軌跡不會偏離模型准確的區域。
  • Depth = adaptive:MCTS tree,深度與寬度相結合
  • Depth = full:這種方法對模型中的軌跡進行采樣,直到一個episode終止,或者直到一個大范圍。

但是,本次調查的重點是規划和學習的結合,而不是實際的規划方法本身。
從基於模型的 RL 的角度來看,關鍵的實現是,與無模型 RL 相比,我們可以突然使用大於 1 的寬度。然而,許多基於模型的RL方法仍然選擇在其模型樣本中堅持1的寬度,可能是因為這提供了與無模型更新的無縫集成。

處理不確定性:

  • Data-close planning:第一種方法是確保規划迭代接近於我們實際觀察到數據的區域。例如,Dyna 在之前訪問過的狀態的位置對開始狀態進行采樣,並且只對一步轉換進行采樣,這樣可以確保我們不會偏離狀態空間的已知區域。其他方法,如Guided Policy Search (Levine和Abbeel, 2014),明確地限制新計划與當前策略接近。
  • Uncertainty propagation:我們也可以明確地估計模型的不確定性,這允許我們在長期的范圍內進行穩健的計划。
    • Parametric:這種傳播方法在每個時間步長的不確定性上都符合一個參數分布。然而,解析參數傳播對於更復雜的模型是不可能的,例如神經網絡。PILCO
    • Sample-based:Deep PILCO(2016)、PETS

我們也可以使用不確定性來確定價值估算的深度。隨機集合值擴展(STEVE) (Buckman et al., 2018)根據不同深度的值目標的相關不確定性重新加權,該不確定性來自於值函數和過渡動力學的不確定性。因此,我們將我們的價值評估建立在那些具有最高可信度的預測之上。

How to integrate planning in the learning and acting loop?

Planning input from learned functions

  • Value priors:The most common way to incorporate value information is through
    bootstrapping.
  • Policy priors:
    引導策略搜索 (GPS) (Levine and Koltun, 2013) 會懲罰新規划的軌跡,因為它與當前策略網絡生成的軌跡偏離太多。
    最后一個例子是,Guo等人(2014)讓當前的政策網絡決定在哪個位置執行下一個搜索,即政策網絡影響作為規划起點的狀態分布。

Planning update for policy or value update:
基於模型的RL方法最終尋求最優值或策略函數的全局逼近。規划結果可用於更新這種全局近似。
Value update:
Policy update:

Planning output for action selection in the real environment:
有些方法只將規划用於行動選擇,而不是用於價值/策略更新。

Implicit Model-based Reinforcement Learning(隱式基於模型的強化學習)

關於上述過程的一個有趣觀察是,盡管我們可以手工設計基於模型的RL算法的各個方面,但我們最終只關心一件事:確定(最優)值或策略。換句話說,整個基於模型的RL過程(模型學習、計划,以及可能的值/策略逼近的整合)可以從外部被視為一個無模型的RL問題。最終,我們希望我們的整個系統能夠預測一個(最優)操作或值。

這種直覺將我們引向基於隱式模型的RL領域。所有這些方法的共同思想是采用基於模型的RL過程的一個或多個方面,並為最終目標優化這些方面,即(最優)值或策略計算。

特別地,我們將關注使用基於梯度的優化的方法。在這種情況下,我們將基於模型的RL流程(部分)嵌入到計算圖中,最終輸出一個值或操作建議。

我們可以使用隱式基於模型的RL來替換顯式基於模型的RL的每一個(或兩個)

  • 步驟:1)學習隱式轉換模型,即價值等效模型(第6.1節)
  • 步驟2)隱式學習如何計划(第6.2節)
  • 我們將首先單獨討論每個類別,然后討論如何將它們合並(第6.3節)。
Value equivalent models:

標准的模型學習方法,如第4節所討論的,學習一個預測環境下一個狀態的前向模型。預測環境的下一個狀態。然而,這種模型可能會預測與價值無關的狀態的幾個方面。

在某些領域,前向動態學起來可能很復雜,但與價值預測相關的動態方面可能更平滑,也更容易學。值等效模型在計算圖中展開,以預測未來的值,而不是未來的狀態。它們也可以與任何其他類型的損失函數相結合,比如預測未來獎勵的能力。

價值預測網絡(VPN) (Value prediction network.)采用了非常類似的方法,但在模型上指定了b-best、depth-d搜索(其中b和d是超參數)。

另一個方法它只接收一個狀態作為輸入(而不是一個行動序列),並在內部展開其模型來預測該狀態的值。當我們想選擇一個最佳行動(計划)時,我們可以 為一個狀態中的每個可用行動展開Predictron。

Implicit planning

我們稱這個想法為,將整個規划循環嵌入到計算圖中,稱為隱式規划。當圖中的規划操作是可微的,我們仍然可以使用端到端微分。

隱式規划圖應該輸出1)最優行動或策略2)最優值。因此,我們可以對他們進行兩種類型的損失訓練。

在第一種情況下,我們可以使用具有真實最優動作的模仿學習損失。 其基本思想是在一系列我們已經知道最佳解決方案的任務上進行訓練,然后將獲得的解決方案應用於新問題。

其次,當我們沒有可用的專家演示時,我們可以讓我們的規划圖輸出最優值,並在標准的無模型 RL 目標(RL 損失)上進行訓練。標准的無模型 RL 目標將逐漸開始估計最優值,這將為我們的規划圖生成訓練信號。

Value equivalent models from an implicit planning graph

Value iteration networks.
Universal planning networks.

Learning to plan

我們也可以利用隱式規划思想對規划操作本身進行優化。
到目前為止,我們遇到了兩種學習可能進入基於模型的 RL 的方式:
i)學習動態模型(第 4 節),
ii)學習價值或策略函數(從規划輸出)(第 5 節)。
我們現在遇到了學習可能進入基於模型的 RL 的第三個層次:學習計划。
這個想法是在一系列任務上優化我們的規划器,最終獲得更好的規划算法,這是元學習的一種形式。

我們將討論三個學習計划的例子:MCTSNets, 想象增強agent (I2A) 和基於想象的計划者(IBP)。

Combined learning of models and planning

如果我們指定一個參數化可微模型和一個參數化可微規划過程,那么我們就可以為模型和規划操作聯合優化得到的計算圖。這當然會產生一個更難的優化問題,因為計划者的梯度取決於模型的質量,反之亦然。
TreeQN

Model-based Reinforcement Learning--A survey

如果模型已知,那么只需要考慮如何根據模型進行決策,如果模型未知,那么首先要學習模型,進而進行決策。而決策的方法,既有直接planning的方法,亦有根據決策網絡直接輸出action的方法。

狀態空間的表征
首先要確保預測的下一步隱變量 \(z_{t+1}\)和當前的隱變量 \(z_t\)在同一個embedding space。常用的方法是加入一個額外的損失函數以保證 \(z_{t+1}=f^{enc}_\phi (s_{t+1})\),這里的 \(s_{t+1}\)指真實值而不是預測值。

策略的學習
如果模型是可微分的,那么可以之間根據optimal control等方法得到最優策略的解析解,即可以直接通過planning輸出策略;如果模型過於復雜,也可以通過訓練一個策略函數和價值函數,直接用策略函數輸出動作。而在這過程中,策略函數/價值函數和planning的方法可以進行互補,因此產生了多樣的方法。

1.Planning input from learned functions
如何從學習到的策略函數/價值函數來優化planning?主要有兩種方法:

  • 價值函數的先驗:最常見的方法是把價值函數融入於planning中,通過bootstrapping就可以將未來多幀的累積獎勵通過當前獎勵與價值函數之和表示,從而實現planning的高效搜索。
  • 策略函數的先驗:學習的策略函數可以作為一種先驗指導planning的樹的構建,比如AlphaGo Zero中用策略函數輸出的分布作為蒙特卡洛樹搜索的upper confidence bound. Guided Policy search中懲罰planning得到的路徑與策略函數得到的路徑的過大差別。

2.Planning update for policy or value update
那如何通過planning的結果來指導策略函數或價值函數的迭代呢?

  • 價值函數的迭代:常見的選擇是將planning搜索到的最優累積獎勵作為價值函數的目標值(ground truth),從而用regression的方法更新價值函數。
  • 策略函數的迭代:AlphaGo Zero中首先用蒙特卡洛樹搜索的planning得到target action,再通過計算訪問次數得到策略的分布函數,然后用cross entropy loss將策略函數與這一分布函數相一致來學習。Guided Policy Search中直接通過減小策略函數和planning得到的軌跡分布的KL離散度進行訓練。

3.Planning output for action selection in the real environment
直接根據模型用planning的方法輸出策略,最常見的是Model Predictive Control,即最優化預測的后n幀下的一系列最優動作,然后選擇執行第一個最優動作,每次都如此迭代計算。

Value Prediction Network (NIPS 2017)

面對上述這個問題,這篇文章的假設就是,planning真正需要的,只是預測rewards和state values的能力。

對比於observation-prediction model,rewards和state values都依賴於predict出的observations,而如果能直接對rewards和state values進行預測,就能在復雜和隨機任務中可能更learnable一點,這種model稱為value-prediction model

區別於observation-prediction model,VPN是value-prediction model,其architecture也是要繞開對observation,而直接對rewards和state values進行prediction。

如果是單一agent的場景下,state和observation並沒有區別
如果是多agent的場景下,則每個agent的observation與全局的state是不一樣的

a. Encoding modules:對原始observation變換到abstract state(paper中的說法)
b. value module:對state values 進行prediction
c. transition module:在abstract state space 對option-conidtional的k-step transition的prediction
d. outcome module:predict option 的k-step累計收益,以及discount,對於option的k-step execution而言,discount即是execution step的一種等價表現

\(f^{core}_\theta :s,o\rightarrow r,\gamma V_\theta ({s}'),{s}'\)

如何用VPN的models來induce a policy和計算value function擬合時的target value?

文中給出了一種planning 的方法:用VPN rollout 一定planning depth,並且aggregate all immediate value estimates,來計算Q values from n-step planning,從而能夠根據Q values來得到policy(e.g., epsilon greedy)

在d-step planning 計算中,越近的search得到的value estimates對Q value contribution越大,越近的越依賴value function的prediction。

Expansion即用core module進行rollout,每個step只對b-best option進行rollout,以約減搜索空間,rollout至最大depth d;backup即按照上述Equation 1,進行d-step planning Q value的計算.

VPN 則是首先將真實環境中獲得的 state/observation 通過一個 encoding network 轉化到 abstract state space 中的一個 absract state,而 dynamics model 是一直在 abstract state space 進行未來若干步的 transition 與 reward 的預測,value prediction network 也是對 abstract state 進行 value 的預測。

Encoding network 的訓練目標並不是顯式地使輸出的 abstract state 與真實環境中的 state 盡量接近或一一對應,而是使在 abstract state space 中訓練的 dynamics model 及 value prediction network 在給定初始 abstract state (將真實環境中獲得的初始 state/observation 輸入 encoding network 得到的) 及未來 k 步的 action 序列后,對未來 k 步的 reward 與 value 的預測與真實環境中獲得的 reward 及 value 盡量接近。這樣做的道理是我們學一個 dynamics model 的目的是用它來做 planning,我們實際上並不關心這個 dynamic model 是否准確地還原了真實環境中的 state transition,只要這個 dynamics model 給出的未來每一步的 reward 接近真實環境中的值,那么就能作為 planning 中的模擬器來使用。

如何評價DeepMind新提出的MuZero算法?



免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM