强化学习笔记4:强化学习分类
1 model-free & model-based
- model-based(有模型)?RL agent,它通過學習環境的狀態轉移來采取動作。
- model-free(免模型)?RL agent,它沒有去直接估計環境狀態的轉移,也沒有得到環境的具體轉移變量。它通過學習價值函數和策略函數進行決策。Model-free 的模型里面沒有一個環境轉移的模型。
1.1 有模型強化學習
????????我們可以用馬爾可夫決策過程來定義強化學習任務,并表示為四元組 <S,A,P,R>,即狀態集合、動作集合、狀態轉移函數和獎勵函數。
????????如果這四元組中所有元素均已知,且狀態集合和動作集合在有限步數內是有限集,則機器可以對真實環境進行建模,通過學習狀態轉移函數來構建一個虛擬環境,以模擬真實環境的狀態和交互反應。
????????具體來說,當智能體知道狀態轉移函數?和獎勵函數后,它就能知道在某一狀態下執行某一動作后能帶來的獎勵和環境的下一狀態,這樣智能體就不需要在真實環境中采取動作,直接在虛擬環境中學習和規劃策略即可。這種學習方法稱為有模型學習。
1.2 無模型強化學習?
????????然而在實際應用中,智能體并不是那么容易就能知曉馬爾可夫決策過程中的所有元素的。
????????通常情況下,狀態轉移函數和獎勵函數很難估計,甚至連環境中的狀態都可能是未知的,這時就需要采用免模型學習。
????????免模型學習沒有對真實環境進行建模,智能體只能在真實環境中通過一定的策略來執行動作,等待獎勵和狀態遷移,然后根據這些反饋信息來更新行為策略,這樣反復迭代直到學習到最優策略。【讓 agent 跟環境進行交互,采集到很多的軌跡數據】
1.3 有模型強化學習和無模型強化學習的區別
????????總的來說,有模型強化學習相比于無模型強化學習僅僅多出一個步驟,即對真實環境進行建模。(計算?狀態轉換概率等environment的狀態)?
????????因此,一些有模型的強化學習方法,也可以在免模型的強化學習方法中使用。
????????在實際應用中,如果不清楚該用有模型強化學習還是無模型強化學習,可以先思考一下,在智能體執行動作前,是否能對下一步的狀態和獎勵進行預測,如果可以,就能夠對環境進行建模,從而采用有模型學習。
? ? ? ? 無模型強化學習通常屬于數據驅動型方法,需要大量的采樣來估計狀態、動作及獎勵函數,從而優化動作策略。例如,在 Atari 平臺上的 Space Invader 游戲中,無模型的深度強化學習需要大約 2 億幀游戲畫面才能學到比較理想的效果。
????????相比之下,有模型強化學習可以在一定程度上緩解訓練數據匱乏的問題,因為智能體可以在虛擬環境中進行訓練。(虛擬環境中知道狀態轉移函數)
? ? ? ? ?無模型學習的泛化性要優于有模型學習,原因是有模型學習算需要對真實環境進行建模,并且虛擬世界與真實環境之間可能還有差異,這限制了有模型學習算法的泛化性。
????????有模型的強化學習方法可以對環境建模,使得該類方法具有獨特魅力,即“想象能力”。
????????在無模型學習中,智能體只能根據數據一步一步地采取策略,等待真實環境的反饋;而有模型學習可以在虛擬世界中預測出所有將要發生的事,并采取對自己最有利的策略。(因為有模型學習知道狀態轉移函數,就知道之后的狀態)
?
2 基于概率(策略)和基于價值
?
????????基于概率(策略)是強化學習中最直接的一種, 他能通過分析所處的環境, 直接輸出下一步要采取的各種動作的概率, 然后根據概率采取行動, 所以每種動作都有可能被選中, 只是可能性不同.
- 這一類 agent 直接去學習 policy,就是說你直接給它一個狀態,它就會輸出這個動作的概率。
- 在基于策略的 agent 里面并沒有去學習它的價值函數。
????????在基于策略迭代的強化學習方法中,智能體會制定一套動作策略(確定在給定狀態下需要采取何種動作),并根據這個策略進行操作。
????????強化學習算法直接對策略進行優化,使制定的策略能夠獲得最大的獎勵。
????????基于價值的方法【agent(value-based agent)】輸出則是所有動作的價值, 我們會根據最高價值來選擇動作。
- 這一類 agent 顯式地學習的是價值函數,
- 隱式地學習了它的策略。策略是從我們學到的價值函數里面推算出來的。
????????在基于價值迭代的強化學習方法中,智能體不需要制定顯式的策略,它維護一個價值表格或價值函數,并通過這個價值表格或價值函數來選取價值最大的動作。
????????基于價值迭代的方法只能應用在不連續的、離散的環境下(如圍棋或某些游戲領域),對于行為集合規模龐大、動作連續的場景(如機器人控制領域),其很難學習到較好的結果(此時基于策略迭代的方法能夠根據設定的策略來選擇連續的動作)。
????????相比基于概率的方法, 基于價值的決策部分更為鐵定, 毫不留情, 就選價值最高的, 而基于概率的, 即使某個動作的概率最高, 但是還是不一定會選到他.
????????我們現在說的動作都是一個一個不連續的動作,。而對于選取連續的動作, 基于價值的方法是無能為力的。我們可以能用一個概率分布在連續動作中選取特定動作, 這也是基于概率的方法的優點之一.?
????????把 value-based 和 policy-based 結合起來就有了?Actor-Critic agent。這一類 agent 把它的策略函數和價值函數都學習了,然后通過兩者的交互得到一個最佳的行為。(智能體會根據策略做出動作,而價值函數會對做出的動作給出價值,這樣可以在原有的策略梯度算法的基礎上加速學習過程,取得更好的效果。)
3 回合更新 和 單步更新
????????強化學習還能用另外一種方式分類, 回合更新和單步更新。
????????想象強化學習就是在玩游戲, 游戲回合有開始和結束.。回合更新指的是游戲開始后, 我們要等待游戲這一回合結束, 然后再總結這一回合中的所有轉折點, 再更新我們的行為準則。
????????而單步更新則是在游戲進行中每一步都在更新, 不用等待游戲的結束, 這樣我們就能邊玩邊學習了。
4?在線學習 和 離線學習
????????在線學習, 就是指我必須本人在場, 并且一定是本人邊玩邊學習。
????????離線學習是你可以選擇自己玩, 也可以選擇看著別人玩, 通過看別人玩來學習別人的行為準則。
????????離線學習同樣是從過往的經驗中學習, 但是這些過往的經歷沒必要是自己的經歷, 任何人的經歷都能被學習。(比如參數不同的network,類似于DQN的fixed network和回歸訓練的network)
比如
強化學習筆記:PPO 【近端策略優化(Proximal Policy Optimization)】_UQI-LIUWJ的博客-CSDN博客
中,policy gradient就是on-policy,我從θ中采樣τ,然后 梯度上升更新θ;PPO博客中3.4是off-policy,我在θ‘中采樣,然后 梯度上升更新θ。
參考資料:強化學習方法匯總 - 強化學習 (Reinforcement Learning) | 莫煩Python (mofanpy.com)
總結
以上是生活随笔為你收集整理的强化学习笔记4:强化学习分类的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: pyecharts 应用6 三维曲面图
- 下一篇: 强化学习笔记1:强化学习概述