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