精簡(jiǎn)強(qiáng)化學(xué)習(xí)總結(jié)

強(qiáng)化學(xué)習(xí)

元素:actor(我們可以控制,決策我們的行為),Env,Reward(我們不能控制環(huán)境
主要方法:model-baed(對(duì)Env建模,actor可以理解環(huán)境), model-free(policy-based,value-based);on-policy(學(xué)習(xí)與互動(dòng)的actor為一同一個(gè)),off-policy(學(xué)習(xí)與互動(dòng)actor不同);MC(eposidic),TD

本文主要介紹了Policy Gradient,Q-learning,Actor-Critic,Sparse Reward,Imitation Learning及其變體(PPO,PPO2,TRPO,A2C,A3C,DPGP)和一些tips(Double DQN, Dueling DQN,Distributional Q-function,ICM等)等相關(guān)內(nèi)容,最后對(duì)比了RL與GAN等價(jià)結(jié)構(gòu)。

Policy Gradient

考慮一個(gè)actor π與環(huán)境互動(dòng),收集(s,a,r,s'),其中π(a|s)為我們可以控制的policy,Env在收到actor 動(dòng)作后給出下一個(gè)s'和r,這是無法控制的!且r一般為隨機(jī)變量,我們考慮一個(gè)trajectory完成時(shí)的total reward,也就是所有r的和R(必然一個(gè)問題是R的方差極大)。由于R為隨機(jī)變量,我們考慮最大化R的均值,也就是sample一些π的trajectory,然后求均值R'。

image.png
,其中P(s)是Env給的,我們無法控制,我們可以調(diào)節(jié)的policy為P(a|s)。
使用gradient ascend來最大化R',這里參數(shù)θ只與π(a|s)有關(guān),最后得到可sample的式子。其中每筆trajectory的數(shù)據(jù)只能用一次,actor更新之后就不能用了實(shí)際操作時(shí)可以看為加權(quán)的分類問題S->A,選擇cross-entropy,權(quán)重為R,R可以不可導(dǎo)。
image.png

tip1 : add a baseline, 可能R都是正的,導(dǎo)致不論什么a都增加其幾率,當(dāng)sample夠大這不是問題,但sample小的話會(huì)潛在降低沒有sample出a的幾率。b一般與s有關(guān)。比如可以使用R的均值等。
tip2:assign suitable credit,一個(gè)trajectory中所有a的r都一樣是不合理的,只考慮t之后的r,可以考慮discount rate。當(dāng)sample足夠大,也不是問題,數(shù)據(jù)可以區(qū)分不同a的作用。其中R' - b為advantage function,衡量用θ這個(gè)模型,在s中采取a相對(duì)于其他action的好壞(Critic)
最終:
image.png

PPO (TRPO,PPO2)

原因:policy gradient為on-policy,sample一次更新完actor之后,actor就變了,不能使用原來的數(shù)據(jù)了,必須重新與Env互動(dòng)收集新數(shù)據(jù),這導(dǎo)致訓(xùn)練需要大量互動(dòng),降低效率。

Important sampling使用其他分布q獲得數(shù)據(jù),來估計(jì)基于分布p的函數(shù)期望,用戶不能直接從p中采樣的情況。需要注意的是p與q不能差太多,因?yàn)楹瘮?shù)期望雖然無偏,但是方差可能很大,當(dāng)然如果sample數(shù)據(jù)足夠多也沒這個(gè)問題。

目標(biāo)使用θ'采樣的數(shù)據(jù),訓(xùn)練θ這個(gè)actor,過程中θ'是fixed的所以可以重復(fù)使用用θ'的數(shù)據(jù)訓(xùn)練θ許多次,增加數(shù)據(jù)利用率,提高訓(xùn)練速度,為openAI的default方法。顯然,此方法轉(zhuǎn)為了off-policy。

注意:因?yàn)棣? 是與環(huán)境交互的actor,所以advantage function 的估計(jì)需要使用θ'的數(shù)據(jù)。

image.png

此為跟新需要的gradient,其中假設(shè)在不同actor中看到的s概率一樣,則可以簡(jiǎn)化。通過gradient可以反推出目標(biāo)函數(shù)。


image.png

約束:由于θ'與θ不能差別太大,所以需要有個(gè)約束,比如在目標(biāo)函數(shù)后加-βKL(θ,θ')作為約束(PPO);或者外面引入KL(θ,θ') < δ.(TRPO,PPO前身,用constraint計(jì)算上不好處理)

說明:因?yàn)榭赡軈?shù)小的變化,行為變化很大,衡量無意義。所以。KL(θ,θ')不是參數(shù)上的距離,而是行為上的距離!π(a|s)的分布接近!

tip:adaptive KL Penalty,權(quán)衡β。定義KLmin和KLmax,當(dāng)KL > KLmax,說明penalty作用沒發(fā)揮,則增加β的值,反之亦然。

PPO2:不用計(jì)算KL,同樣可以控制θ與θ'之間差距。

image.png

image.png

說明:當(dāng)A>0,也就是a是好的,我們希望增加Pθ的概率,但是,Pθ不能弄得太大,太大也就會(huì)使與Pθ'差距大,導(dǎo)致效果不好。反之亦然。

Q-Learning

value-based,學(xué)習(xí)Critic,評(píng)價(jià)現(xiàn)在的行為的相對(duì)好壞。

state value fucntion Vπ(s).: 期望累計(jì)獎(jiǎng)勵(lì),給定π,s,衡量a的好壞。主要他必須與π相關(guān),衡量這個(gè)actor,而不是單純的s。
估計(jì):

  1. MC(episodic),需要π經(jīng)歷一次整個(gè)過程后,進(jìn)行統(tǒng)計(jì)估計(jì),由于r為隨機(jī)變量,所以此方法方差大,但是無偏的
  2. TD, 根據(jù)Vπ(st)=Vπ(st+1)+rt估計(jì),不需要每次經(jīng)歷完整過程。由于Vπ值都為估計(jì)值,可能存在估計(jì)不準(zhǔn),其中只涉及r,方差小

state-action value function(Q function) Qπ(s,a).:衡量π在s下,采取a的好壞。其中π不一定采取a,這里只是衡量如果在這采取a的情況。
形式:

  1. 輸入s,a,輸出Q
    image.png
  2. 輸入s,輸出每個(gè)a的Q,只能用于離散a
    image.png

目標(biāo):給定Q,找到一個(gè)比π更好的π',這里"更好"是說,對(duì)所有s,有Vπ'(s) >= Vπ(s)
決策:π'=argmax_aQπ(s,a),這里沒有policy,依據(jù)Q來決定的,這個(gè)形式對(duì)連續(xù)a不好求解。
附:證明Vπ'(s) >= Vπ(s)

image.png

必用tips

  1. target network
    學(xué)習(xí)中數(shù)據(jù)為...(st,at,rt,st+1)...,訓(xùn)練目標(biāo)為

    image.png
    由于目標(biāo)函數(shù)在更新后是變化的,訓(xùn)練十分不穩(wěn)定。
    我們采用兩個(gè)network,一個(gè)用來訓(xùn)練,一個(gè)用來計(jì)算目標(biāo)target(右邊的),訓(xùn)練時(shí)target固定住。當(dāng)訓(xùn)練一定數(shù)目后再更新target network的參數(shù)(用訓(xùn)練network替換)。

  2. exploration
    Q-learning的policy是依賴于Q,每次選擇最大Q的a,這樣不利于收集數(shù)據(jù),如果一開始沒有采樣到a,Q比較小,之后不會(huì)再采取這個(gè)a,無法準(zhǔn)確估計(jì)Q(s,a)。
    方法: ε-greedy :以ε概率隨機(jī)選擇a,通常 ε隨著學(xué)習(xí)進(jìn)行變?。?br> Boltzmann Exploration:基于Q值概率化,通過概率采樣選擇a,

    image.png

  3. Replay Buffer
    把a(bǔ)ctor的每筆experience (st,at,rt,st+1)放到一個(gè)buffer里面,其中buffer里面的exp可能來自不同的actor,當(dāng)buffer滿了再替換舊的exp。訓(xùn)練過程時(shí)每次從buffer里面sample一個(gè)batch出來訓(xùn)練。
    結(jié)果:變成了off-policy方法(可能來自于其他actor)
    好處:RL訓(xùn)練過程中交互很耗時(shí)間,這樣充分利用數(shù)據(jù)(可以反復(fù)利用數(shù)據(jù)),減少很Env互動(dòng)次數(shù);降低batch內(nèi)相關(guān)性,訓(xùn)練效果更穩(wěn)定(diverse),因?yàn)槲覀冎挥靡粋€(gè)exp訓(xùn)練,并不是trajectory,所以off-policy也沒關(guān)系。

高級(jí)Tips

  1. Double DQN
    解決Q值高估的問題。Q值一般都是被高估的,假設(shè)某個(gè)a被高估了,則target會(huì)選擇被高估的a,則target總是會(huì)很大。
    我們采取使用兩個(gè)function Q和Q',其中Q選擇a(訓(xùn)練用Q),Q'來估計(jì)q值(target Q'),當(dāng)一個(gè)高估q的Q選擇了高估的a,但是另一個(gè)可能會(huì)準(zhǔn)確估計(jì)其q值;當(dāng)Q'高估q,只有Q不選擇a就ok,這樣雙重決策會(huì)緩解高估問題。采用target network和main network可以有效減少參數(shù)量。

    image.png

  2. Dueling DQN
    改架構(gòu),使Q(s,a) = A(s,a) + V(s),有時(shí)候Q的值可能與a無關(guān),而只與s有關(guān),比如一個(gè)不好的s導(dǎo)致什么a都不好。當(dāng)action不影響s時(shí),沒必要去衡量每個(gè)a的q值(只有在關(guān)鍵時(shí)刻a才重要!)

    image.png

好處:當(dāng)沒有sample到a時(shí),同樣可以更新a,比較有效率地使用數(shù)據(jù),加速訓(xùn)練。
說明:為了防止模型不訓(xùn)練V,可以給A(s,a)加約束。比如A(s,a)限制和為0等等。實(shí)際操作可以在A(s,a)最后一層加normalization op.

  1. Prioritized Replay
    改變sample data的分布,增加那些難訓(xùn)練的數(shù)據(jù)被采樣的概率,TD error大的數(shù)據(jù);同時(shí)可以改變訓(xùn)練過程。

  2. Multi-step
    權(quán)衡MC與TD,結(jié)合MC與TD的好處與壞處,MC準(zhǔn)確方差大,TD方差小,估計(jì)不準(zhǔn)??梢酝ㄟ^調(diào)節(jié)N來權(quán)衡。replay buffer中存N步的exp,則target變成:

    image.png

  3. Noisy Net (State-dependent Exploration)
    原本的exploration(ε-greedy)時(shí)對(duì)action加noise,現(xiàn)實(shí)中是不合理的(給同樣s,采取的a不同,真是π不是這樣的)。這里采用在每個(gè)參數(shù)上加gaussian noise,注意每次在sample net時(shí)是在每個(gè)episode開始使sample net,之后固定住net開始訓(xùn)練。這樣在類似的s給出是類似的a,更合理,系統(tǒng)地探索環(huán)境(Explore in a consistent way)。

  4. Distributional Q-function
    Q function為累計(jì)期望獎(jiǎng)勵(lì),它為期望值,實(shí)際上在s采取a時(shí),最終所有得到的reward為一個(gè)分布reward distribution,但是不同的分布可能期望是一樣的。只用期望來代表reward會(huì)損失一些信息。
    原來Q function為輸出每個(gè)a的Q,Q為期望,現(xiàn)在輸出每個(gè)a的Q的分布!實(shí)際上操作,假定reward distribution在一個(gè)范圍內(nèi),拆成一些區(qū)間,輸出在s采取a的reward落在某個(gè)區(qū)間的概率。在test時(shí)可以選擇某個(gè)a期望最大的action執(zhí)行,也可以考慮分布的方差,減低a的風(fēng)險(xiǎn)。此方法不會(huì)產(chǎn)生高估q值問題,因?yàn)橐婚_始把q限制在一個(gè)范圍內(nèi)了(可能低估q)。

    image.png

  5. Rainbow
    把以上方法全部結(jié)合起來!。。。

Q-learning總結(jié):比較穩(wěn);只需要Q function就可以找到較好的π;容易操作。不易處理連續(xù)action情況。

何用Q-learning處理連續(xù)a的情況
1. sampling action: sample N a, choose maxQ(a,s)
2. gradient ascent solve the optimization problem, 存在local minimum,選擇a時(shí)先要訓(xùn)練一個(gè)net..
3. 設(shè)計(jì)網(wǎng)絡(luò)使優(yōu)化目標(biāo)好解,比如

image.png

Actor Critic (A2C, A3C, DPGP)

原始policy-based方法中梯度為

image.png
其中
image.png
累計(jì)獎(jiǎng)勵(lì)Gt是π在s采取a經(jīng)歷到最后得到的,為隨機(jī)變量的和,所以方差可能很大,我們通過sample估計(jì)可能不準(zhǔn)確。

目標(biāo):直接估計(jì)累計(jì)reward的期望值代替sample的估計(jì),使估計(jì)穩(wěn)定。其中估計(jì)reward的期望值為value-based method。

根據(jù)Q function的定義:E[Gt]=Q(st,at), 所以可以用Q-learning學(xué)G。
baseline:與s有關(guān),可以用Vπ(s)等表示,需要注意EQ(s,a)=V(s),所以Q-V有正有負(fù)!

最終:G-b = Q(s,a) - V(s),此時(shí)需要兩個(gè)network分別預(yù)測(cè)Q和V,這會(huì)承擔(dān)2倍風(fēng)險(xiǎn)預(yù)測(cè)不準(zhǔn)確

因?yàn)?/p>

image.png
假設(shè)可以忽略期望,因?yàn)閞時(shí)隨機(jī)變量,但是r的方差肯定小于G,所以這種假設(shè)是可行的。最終可以利用V計(jì)算Q。不需要估計(jì)Q,但是略微引入了一點(diǎn)方差。

最終:
image.png

為advantage function.

A2C

π先互動(dòng),收集exp,先估計(jì)V(s) (TD, MC),再估計(jì)π
image.png

tips

  1. shared shallow layer:需要學(xué)習(xí)的兩個(gè)network可以共享參數(shù)

    image.png

  2. output entropy as regularization for π(s),使action分布交均勻,實(shí)現(xiàn)exploration

A3C

A2C訓(xùn)練較慢,使用多個(gè)worker學(xué)習(xí)參數(shù)跟新梯度,一起更新Global Network的參數(shù)。每個(gè)worker從global network中拿參數(shù),自己與環(huán)境互動(dòng),計(jì)算梯度,更新global network參數(shù)。注意,每個(gè)worker可能不是原始參數(shù)。

image.png

PDPG

不同視角來看,原來Critc只評(píng)價(jià)a,現(xiàn)在可以引導(dǎo)π,告訴哪個(gè)a好;一種使用Q-learning解連續(xù)動(dòng)作的方法,原來Q-learning不好解連續(xù)a的argmax的問題,現(xiàn)在用一個(gè)actor來解。
先訓(xùn)練Q,然后固定Q,訓(xùn)練actor使得Q最大,架構(gòu)與GAN一樣!generator為actor,discriminator為Q,為一個(gè)conditional GAN.
Q-learning中的技術(shù)都可以使用。
整個(gè)算法:

image.png

進(jìn)而,GAN中的優(yōu)化方法可以引入這里:
image.png

高級(jí)技法

Sparse Reward

agent可能大多時(shí)間沒有reward,導(dǎo)致訓(xùn)練時(shí)不論采取什么a都一樣好。
Reward Shaping:Env有自己固定的reward,我們引導(dǎo)actor刻意設(shè)計(jì)一些reward,學(xué)到期望的行為。可能有些actor在預(yù)測(cè)未來reward很難,則discount很大。設(shè)計(jì)reward不一定是Env真的reward,只是我們希望的行為,一般需要domain knowledge。
Curiosity:Intrinsic Curiosity module (ICM)

image.png

鼓勵(lì)actor冒險(xiǎn),越難預(yù)測(cè)的s,則風(fēng)險(xiǎn)越大,增加exploration。但是不一定越難預(yù)測(cè)這個(gè)s就是好的,可能環(huán)境中的隨機(jī)無關(guān)變量。進(jìn)而引入feature extractor,把沒有意義的無關(guān)變量過濾掉。則ICM可以為:

image.png
這樣設(shè)計(jì)的feature是與a有關(guān)的。

Curriculum Learning為機(jī)器的學(xué)習(xí)做規(guī)劃,有順序地訓(xùn)練,從簡(jiǎn)單東西到難的東西(不只用于RL)。比如識(shí)別數(shù)字,先學(xué)習(xí)分辨0,1,然后學(xué)習(xí)分辨0-9。需要老師設(shè)計(jì)課程。

Reverse Curriculum Generation:給定一個(gè)goal state->根據(jù)goal state采樣離goal state接近的state s1->從這個(gè)s1互動(dòng),看能否達(dá)到goal state,得到reward->刪除reward 極端的state(reward太大,說明太簡(jiǎn)單,已經(jīng)學(xué)會(huì),反之亦然)->基于適中的reward的s1繼續(xù)sample s2。

Hierachical RL有許多不同等級(jí)的agent,高層的負(fù)責(zé)定目標(biāo),分配給底層的agent負(fù)責(zé)執(zhí)行完成。大任務(wù)分解為小任務(wù)逐次實(shí)現(xiàn)。
注意:如果低級(jí)的agent不能實(shí)現(xiàn)目標(biāo),則高級(jí)的agent受懲罰,防止高層的agent提出太難的目標(biāo);如果agent最終實(shí)現(xiàn)了一個(gè)錯(cuò)誤的goal,則假設(shè)正確的goal為這個(gè)錯(cuò)的!(三觀不一)

Initation Learning

Appewnticeship Learning: learning by demonstration,整個(gè)任務(wù)沒有reward!通過專家演示如何解決問題。

  1. 機(jī)器可以與環(huán)境互動(dòng),但是不會(huì)獲得顯示的獎(jiǎng)勵(lì)
  2. 有些任務(wù)很難定義reward(比如駕駛車無法判斷撞男人和女人各有多少reward)
  3. 有些人工定義的reward可能導(dǎo)致無法控制的結(jié)果

方法:Behavior Cloning;Inverse Reinforcement Learning (inverse optimal control)

Behavior Cloning:監(jiān)督學(xué)習(xí),收集專家的(s,a)進(jìn)行學(xué)習(xí)。
可能存在的問題:

  1. 專家只能提供有限的樣本(專家很專業(yè),不會(huì)經(jīng)歷一些極端情況,機(jī)器遇到無法決策)。
    Dataset Aggregation:這種情況可以讓專家在機(jī)器決策時(shí)處于機(jī)器的環(huán)境(收集專家在極端情況下的行為),但是機(jī)器還是做自己,專家給予指導(dǎo),可能導(dǎo)致每次嘗試損失一個(gè)專家。
  2. 機(jī)器可能只是單純復(fù)制專家的行為,不論行為是是否相關(guān)(比如學(xué)到個(gè)人無關(guān)的壞行為),因?yàn)?strong>機(jī)器的capacity是有限的,可能只學(xué)到了壞行為(監(jiān)督學(xué)習(xí)同等對(duì)待所有error
  3. 訓(xùn)練數(shù)據(jù)與測(cè)試數(shù)據(jù)mismatch
    supervised learning中我們希望訓(xùn)練集和測(cè)試集具有相同的分布。
    但是在BC中,訓(xùn)練數(shù)據(jù)為(s,a)~π^(expert),其中專家的action會(huì)影響s的分布( RL特點(diǎn));測(cè)試數(shù)據(jù)為(s',a')~π(actor clone expert)。當(dāng)π^=π時(shí),數(shù)據(jù)具有相同的分布;當(dāng)不相等時(shí),s與s'可能差異很大。

Inverse Reinforcement Learning:有Env,actor,Expert demonstration,但是沒有reward function。利用expert行為反推reward function;接下來可利用RL找到optimal actor。
好處:可能reward function比較簡(jiǎn)單,也能導(dǎo)致expert的復(fù)雜行為。

image.png

方法:

  1. 有一個(gè)expert與環(huán)境互動(dòng)得到一些專家數(shù)據(jù)
    image.png
  2. 有一個(gè)actor π與環(huán)境互動(dòng)得到數(shù)據(jù)
    image.png
  3. 反推一個(gè)reward function,原則為expert得到的分?jǐn)?shù)比actor高。

  4. 利用這個(gè)reward fucntion使用RL方法學(xué)習(xí)actor,得到新數(shù)據(jù)。

  5. 基于新的actor與expert數(shù)據(jù),更新reward function,遵循同樣的原則,反復(fù)迭代,最終學(xué)到reward function使得actor與expert得到同樣高分。
    reward function:如果是線性的reward,保證收斂。或者可以使用NN,輸入為trajectory,輸出一個(gè)R;或者輸入(s,a),輸出r,最后匯總得到R。

    image.png

說明:如果actor是generator,reward function是discriminator,則整個(gè)框架就是GAN!

image.png

優(yōu)點(diǎn):不需要太多的training data
應(yīng)用:學(xué)習(xí)不同expert開車,且能學(xué)習(xí)每個(gè)expert開車不同風(fēng)格;人示范訓(xùn)練機(jī)器人(手把手,機(jī)器處于s的第一視角);Chat-bot(使用maximum likelihood相當(dāng)于behavior cloning,這是不夠的??;SeqGAN方式相對(duì)于IRL
Third Person IL:使用domain adversial training (抽取有用的信息)+ IL,機(jī)器看人的行為學(xué)習(xí)(機(jī)器學(xué)習(xí)視角為第三視角)。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 一. 增強(qiáng)學(xué)習(xí)簡(jiǎn)介 1.1 什么是增強(qiáng)學(xué)習(xí)? 機(jī)器學(xué)習(xí)的算法可以分為三類:監(jiān)督學(xué)習(xí),非監(jiān)督學(xué)習(xí)和增強(qiáng)學(xué)習(xí)。 增強(qiáng)學(xué)...
    阿阿阿阿毛閱讀 31,701評(píng)論 0 25
  • 環(huán)境 Environment,個(gè)體 Agent,狀態(tài) State,獎(jiǎng)勵(lì) Reward 在強(qiáng)化學(xué)習(xí)中最重要的兩個(gè)概念...
    拓季閱讀 2,451評(píng)論 0 2
  • 前言在人生的某個(gè)階段,您一定會(huì)尋找一個(gè)人,然后和這個(gè)人一起走完后半生!您是希望隨便找一個(gè),不行再換?還是用心尋覓,...
    西辰姑娘閱讀 541評(píng)論 0 1
  • 最近在飯團(tuán)里看見很多小伙伴在討論“囤課”的煩惱,我也就不那么焦慮了哈哈哈! 我目前也囤了很多課程,所以這段時(shí)間在做...
    宇楓Sai閱讀 734評(píng)論 5 1
  • 我看過的第一篇長(zhǎng)篇小說是一個(gè)很血腥的故事。 一頭年輕的狼因?yàn)樘魬?zhàn)狼王失敗而被趕出了狼群,傷痕累累的他在流浪中結(jié)識(shí)了...
    9ea80b401870閱讀 508評(píng)論 0 0

友情鏈接更多精彩內(nèi)容