精簡強化學習總結

強化學習

元素:actor(我們可以控制,決策我們的行為)破停,Env珍德,Reward(我們不能控制環(huán)境
主要方法:model-baed(對Env建模泣矛,actor可以理解環(huán)境), model-free(policy-based,value-based);on-policy(學習與互動的actor為一同一個)药薯,off-policy(學習與互動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等)等相關內容,最后對比了RL與GAN等價結構羞秤。

Policy Gradient

考慮一個actor π與環(huán)境互動缸托,收集(s,a,r,s'),其中π(a|s)為我們可以控制的policy瘾蛋,Env在收到actor 動作后給出下一個s'和r俐镐,這是無法控制的!且r一般為隨機變量瘦黑,我們考慮一個trajectory完成時的total reward京革,也就是所有r的和R(必然一個問題是R的方差極大)奇唤。由于R為隨機變量幸斥,我們考慮最大化R的均值,也就是sample一些π的trajectory咬扇,然后求均值R'甲葬。

image.png
,其中P(s)是Env給的懈贺,我們無法控制经窖,我們可以調節(jié)的policy為P(a|s)
使用gradient ascend來最大化R'梭灿,這里參數θ只與π(a|s)有關画侣,最后得到可sample的式子。其中每筆trajectory的數據只能用一次堡妒,actor更新之后就不能用了配乱。實際操作時可以看為加權的分類問題S->A,選擇cross-entropy,權重為R搬泥,R可以不可導桑寨。
image.png

tip1 : add a baseline, 可能R都是正的,導致不論什么a都增加其幾率忿檩,當sample夠大這不是問題尉尾,但sample小的話會潛在降低沒有sample出a的幾率。b一般與s有關燥透。比如可以使用R的均值等沙咏。
tip2:assign suitable credit,一個trajectory中所有a的r都一樣是不合理的兽掰,只考慮t之后的r芭碍,可以考慮discount rate。當sample足夠大孽尽,也不是問題窖壕,數據可以區(qū)分不同a的作用。其中R' - b為advantage function杉女,衡量用θ這個模型瞻讽,在s中采取a相對于其他action的好壞(Critic)
最終:
image.png

PPO (TRPO,PPO2)

原因:policy gradient為on-policy熏挎,sample一次更新完actor之后速勇,actor就變了,不能使用原來的數據了坎拐,必須重新與Env互動收集新數據烦磁,這導致訓練需要大量互動,降低效率哼勇。

Important sampling使用其他分布q獲得數據都伪,來估計基于分布p的函數期望,用戶不能直接從p中采樣的情況积担。需要注意的是p與q不能差太多陨晶,因為函數期望雖然無偏,但是方差可能很大帝璧,當然如果sample數據足夠多也沒這個問題先誉。

目標使用θ'采樣的數據,訓練θ這個actor的烁,過程中θ'是fixed的所以可以重復使用用θ'的數據訓練θ許多次褐耳,增加數據利用率,提高訓練速度渴庆,為openAI的default方法铃芦。顯然买雾,此方法轉為了off-policy

注意:因為θ' 是與環(huán)境交互的actor杨帽,所以advantage function 的估計需要使用θ'的數據漓穿。

image.png

此為跟新需要的gradient,其中假設在不同actor中看到的s概率一樣注盈,則可以簡化晃危。通過gradient可以反推出目標函數。


image.png

約束:由于θ'與θ不能差別太大老客,所以需要有個約束僚饭,比如在目標函數后加-βKL(θ,θ')作為約束(PPO);或者外面引入KL(θ,θ') < δ.(TRPO胧砰,PPO前身鳍鸵,用constraint計算上不好處理)

說明:因為可能參數小的變化,行為變化很大尉间,衡量無意義偿乖。所以。KL(θ,θ')不是參數上的距離哲嘲,而是行為上的距離贪薪!π(a|s)的分布接近!

tip:adaptive KL Penalty眠副,權衡β画切。定義KLmin和KLmax,當KL > KLmax囱怕,說明penalty作用沒發(fā)揮霍弹,則增加β的值,反之亦然娃弓。

PPO2:不用計算KL典格,同樣可以控制θ與θ'之間差距。

image.png

image.png

說明:當A>0忘闻,也就是a是好的钝计,我們希望增加Pθ的概率恋博,但是齐佳,Pθ不能弄得太大,太大也就會使與Pθ'差距大债沮,導致效果不好炼吴。反之亦然。

Q-Learning

value-based疫衩,學習Critic硅蹦,評價現在的行為的相對好壞。

state value fucntion Vπ(s).: 期望累計獎勵,給定π童芹,s涮瞻,衡量a的好壞。主要他必須與π相關假褪,衡量這個actor署咽,而不是單純的s
估計:

  1. MC(episodic)生音,需要π經歷一次整個過程后宁否,進行統計估計,由于r為隨機變量缀遍,所以此方法方差大慕匠,但是無偏的
  2. TD, 根據Vπ(st)=Vπ(st+1)+rt估計域醇,不需要每次經歷完整過程台谊。由于Vπ值都為估計值,可能存在估計不準譬挚,其中只涉及r青伤,方差小

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

  1. 輸入s,a蚪腋,輸出Q
    image.png
  2. 輸入s丰歌,輸出每個a的Q,只能用于離散a
    image.png

目標:給定Q屉凯,找到一個比π更好的π'立帖,這里"更好"是說,對所有s悠砚,有Vπ'(s) >= Vπ(s)
決策:π'=argmax_aQπ(s,a)晓勇,這里沒有policy,依據Q來決定的,這個形式對連續(xù)a不好求解尝丐。
附:證明Vπ'(s) >= Vπ(s)

image.png

必用tips

  1. target network
    學習中數據為...(st,at,rt,st+1)...,訓練目標為

    image.png
    由于目標函數在更新后是變化的趋艘,訓練十分不穩(wěn)定。
    我們采用兩個network描融,一個用來訓練,一個用來計算目標target(右邊的)衡蚂,訓練時target固定住窿克。當訓練一定數目后再更新target network的參數(用訓練network替換)骏庸。

  2. exploration
    Q-learning的policy是依賴于Q,每次選擇最大Q的a年叮,這樣不利于收集數據具被,如果一開始沒有采樣到a,Q比較小只损,之后不會再采取這個a硬猫,無法準確估計Q(s,a)。
    方法: ε-greedy :以ε概率隨機選擇a改执,通常 ε隨著學習進行變行ッ邸;
    Boltzmann Exploration:基于Q值概率化辈挂,通過概率采樣選擇a衬横,

    image.png

  3. Replay Buffer
    把actor的每筆experience (st,at,rt,st+1)放到一個buffer里面,其中buffer里面的exp可能來自不同的actor终蒂,當buffer滿了再替換舊的exp蜂林。訓練過程時每次從buffer里面sample一個batch出來訓練。
    結果:變成了off-policy方法(可能來自于其他actor)
    好處:RL訓練過程中交互很耗時間拇泣,這樣充分利用數據(可以反復利用數據)噪叙,減少很Env互動次數;降低batch內相關性霉翔,訓練效果更穩(wěn)定(diverse)睁蕾,因為我們只用一個exp訓練,并不是trajectory债朵,所以off-policy也沒關系子眶。

高級Tips

  1. Double DQN
    解決Q值高估的問題。Q值一般都是被高估的序芦,假設某個a被高估了臭杰,則target會選擇被高估的a,則target總是會很大谚中。
    我們采取使用兩個function Q和Q'渴杆,其中Q選擇a(訓練用Q),Q'來估計q值(target Q')宪塔,當一個高估q的Q選擇了高估的a磁奖,但是另一個可能會準確估計其q值;當Q'高估q蝌麸,只有Q不選擇a就ok点寥,這樣雙重決策會緩解高估問題艾疟。采用target network和main network可以有效減少參數量来吩。

    image.png

  2. Dueling DQN
    改架構敢辩,使Q(s,a) = A(s,a) + V(s),有時候Q的值可能與a無關弟疆,而只與s有關戚长,比如一個不好的s導致什么a都不好。當action不影響s時怠苔,沒必要去衡量每個a的q值(只有在關鍵時刻a才重要M)

    image.png

好處:當沒有sample到a時,同樣可以更新a柑司,比較有效率地使用數據迫肖,加速訓練。
說明:為了防止模型不訓練V攒驰,可以給A(s,a)加約束蟆湖。比如A(s,a)限制和為0等等。實際操作可以在A(s,a)最后一層加normalization op.

  1. Prioritized Replay
    改變sample data的分布玻粪,增加那些難訓練的數據被采樣的概率隅津,TD error大的數據;同時可以改變訓練過程劲室。

  2. Multi-step
    權衡MC與TD伦仍,結合MC與TD的好處與壞處MC準確方差大很洋,TD方差小充蓝,估計不準『泶牛可以通過調節(jié)N來權衡棺克。replay buffer中存N步的exp,則target變成:

    image.png

  3. Noisy Net (State-dependent Exploration)
    原本的exploration(ε-greedy)時對action加noise线定,現實中是不合理的(給同樣s娜谊,采取的a不同,真是π不是這樣的)斤讥。這里采用在每個參數上加gaussian noise纱皆,注意每次在sample net時是在每個episode開始使sample net,之后固定住net開始訓練芭商。這樣在類似的s給出是類似的a派草,更合理,系統地探索環(huán)境(Explore in a consistent way)。

  4. Distributional Q-function
    Q function為累計期望獎勵铛楣,它為期望值近迁,實際上在s采取a時,最終所有得到的reward為一個分布reward distribution簸州,但是不同的分布可能期望是一樣的鉴竭。只用期望來代表reward會損失一些信息歧譬。
    原來Q function為輸出每個a的Q,Q為期望搏存,現在輸出每個a的Q的分布瑰步!實際上操作,假定reward distribution在一個范圍內璧眠,拆成一些區(qū)間缩焦,輸出在s采取a的reward落在某個區(qū)間的概率。在test時可以選擇某個a期望最大的action執(zhí)行责静,也可以考慮分布的方差袁滥,減低a的風險。此方法不會產生高估q值問題灾螃,因為一開始把q限制在一個范圍內了(可能低估q)呻拌。

    image.png

  5. Rainbow
    把以上方法全部結合起來!睦焕。藐握。。

Q-learning總結:比較穩(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時先要訓練一個net..
3. 設計網絡使優(yōu)化目標好解,比如

image.png

Actor Critic (A2C, A3C, DPGP)

原始policy-based方法中梯度為

image.png
其中
image.png
累計獎勵Gt是π在s采取a經歷到最后得到的乌助,為隨機變量的和溜在,所以方差可能很大,我們通過sample估計可能不準確他托。

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

根據Q function的定義:E[Gt]=Q(st,at), 所以可以用Q-learning學G赏参。
baseline:與s有關志笼,可以用Vπ(s)等表示,需要注意EQ(s,a)=V(s)把篓,所以Q-V有正有負纫溃!

最終:G-b = Q(s,a) - V(s),此時需要兩個network分別預測Q和V韧掩,這會承擔2倍風險預測不準確紊浩。

因為

image.png
假設可以忽略期望,因為r時隨機變量,但是r的方差肯定小于G坊谁,所以這種假設是可行的费彼。最終可以利用V計算Q。不需要估計Q呜袁,但是略微引入了一點方差敌买。

最終:
image.png

為advantage function.

A2C

π先互動简珠,收集exp阶界,先估計V(s) (TD, MC),再估計π
image.png

tips

  1. shared shallow layer:需要學習的兩個network可以共享參數

    image.png

  2. output entropy as regularization for π(s),使action分布交均勻聋庵,實現exploration

A3C

A2C訓練較慢膘融,使用多個worker學習參數跟新梯度,一起更新Global Network的參數祭玉。每個worker從global network中拿參數氧映,自己與環(huán)境互動,計算梯度脱货,更新global network參數岛都。注意,每個worker可能不是原始參數振峻。

image.png

PDPG

不同視角來看臼疫,原來Critc只評價a,現在可以引導π扣孟,告訴哪個a好烫堤;一種使用Q-learning解連續(xù)動作的方法,原來Q-learning不好解連續(xù)a的argmax的問題凤价,現在用一個actor來解鸽斟。
先訓練Q,然后固定Q利诺,訓練actor使得Q最大富蓄,架構與GAN一樣generator為actor慢逾,discriminator為Q格粪,為一個conditional GAN.
Q-learning中的技術都可以使用。
整個算法:

image.png

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

高級技法

Sparse Reward

agent可能大多時間沒有reward帐萎,導致訓練時不論采取什么a都一樣好。
Reward Shaping:Env有自己固定的reward胜卤,我們引導actor刻意設計一些reward疆导,學到期望的行為「瘐铮可能有些actor在預測未來reward很難澈段,則discount很大悠菜。設計reward不一定是Env真的reward,只是我們希望的行為败富,一般需要domain knowledge悔醋。
Curiosity:Intrinsic Curiosity module (ICM)

image.png

鼓勵actor冒險,越難預測的s兽叮,則風險越大芬骄,增加exploration。但是不一定越難預測這個s就是好的鹦聪,可能環(huán)境中的隨機無關變量账阻。進而引入feature extractor,把沒有意義的無關變量過濾掉泽本。則ICM可以為:

image.png
這樣設計的feature是與a有關的淘太。

Curriculum Learning為機器的學習做規(guī)劃,有順序地訓練规丽,從簡單東西到難的東西(不只用于RL)蒲牧。比如識別數字,先學習分辨0赌莺,1冰抢,然后學習分辨0-9。需要老師設計課程雄嚣。

Reverse Curriculum Generation:給定一個goal state->根據goal state采樣離goal state接近的state s1->從這個s1互動晒屎,看能否達到goal state,得到reward->刪除reward 極端的state(reward太大缓升,說明太簡單鼓鲁,已經學會,反之亦然)->基于適中的reward的s1繼續(xù)sample s2港谊。

Hierachical RL有許多不同等級的agent骇吭,高層的負責定目標,分配給底層的agent負責執(zhí)行完成歧寺。大任務分解為小任務逐次實現燥狰。
注意:如果低級的agent不能實現目標,則高級的agent受懲罰斜筐,防止高層的agent提出太難的目標龙致;如果agent最終實現了一個錯誤的goal,則假設正確的goal為這個錯的顷链!(三觀不一)

Initation Learning

Appewnticeship Learning: learning by demonstration目代,整個任務沒有reward!通過專家演示如何解決問題。

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

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

Behavior Cloning:監(jiān)督學習,收集專家的(s,a)進行學習霜大。
可能存在的問題:

  1. 專家只能提供有限的樣本(專家很專業(yè)构哺,不會經歷一些極端情況,機器遇到無法決策)战坤。
    Dataset Aggregation:這種情況可以讓專家在機器決策時處于機器的環(huán)境(收集專家在極端情況下的行為)曙强,但是機器還是做自己,專家給予指導湖笨,可能導致每次嘗試損失一個專家旗扑。
  2. 機器可能只是單純復制專家的行為蹦骑,不論行為是是否相關(比如學到個人無關的壞行為)慈省,因為機器的capacity是有限的,可能只學到了壞行為(監(jiān)督學習同等對待所有error
  3. 訓練數據與測試數據mismatch
    supervised learning中我們希望訓練集和測試集具有相同的分布眠菇。
    但是在BC中边败,訓練數據為(s,a)~π^(expert),其中專家的action會影響s的分布( RL特點)捎废;測試數據為(s',a')~π(actor clone expert)笑窜。當π^=π時,數據具有相同的分布登疗;當不相等時排截,s與s'可能差異很大。

Inverse Reinforcement Learning:有Env辐益,actor断傲,Expert demonstration,但是沒有reward function智政。利用expert行為反推reward function认罩;接下來可利用RL找到optimal actor。
好處:可能reward function比較簡單续捂,也能導致expert的復雜行為垦垂。

image.png

方法:

  1. 有一個expert與環(huán)境互動得到一些專家數據
    image.png
  2. 有一個actor π與環(huán)境互動得到數據
    image.png
  3. 反推一個reward function,原則為expert得到的分數比actor高牙瓢。

  4. 利用這個reward fucntion使用RL方法學習actor劫拗,得到新數據。

  5. 基于新的actor與expert數據矾克,更新reward function页慷,遵循同樣的原則,反復迭代,最終學到reward function使得actor與expert得到同樣高分差购。
    reward function:如果是線性的reward四瘫,保證收斂。或者可以使用NN欲逃,輸入為trajectory找蜜,輸出一個R;或者輸入(s,a)稳析,輸出r洗做,最后匯總得到R。

    image.png

說明:如果actor是generator彰居,reward function是discriminator诚纸,則整個框架就是GAN!

image.png

優(yōu)點:不需要太多的training data
應用:學習不同expert開車陈惰,且能學習每個expert開車不同風格畦徘;人示范訓練機器人(手把手,機器處于s的第一視角)抬闯;Chat-bot(使用maximum likelihood相當于behavior cloning井辆,這是不夠的!溶握;SeqGAN方式相對于IRL
Third Person IL:使用domain adversial training (抽取有用的信息)+ IL杯缺,機器看人的行為學習(機器學習視角為第三視角)。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
  • 序言:七十年代末睡榆,一起剝皮案震驚了整個濱河市萍肆,隨后出現的幾起案子,更是在濱河造成了極大的恐慌胀屿,老刑警劉巖塘揣,帶你破解...
    沈念sama閱讀 217,406評論 6 503
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現場離奇詭異碉纳,居然都是意外死亡勿负,警方通過查閱死者的電腦和手機,發(fā)現死者居然都...
    沈念sama閱讀 92,732評論 3 393
  • 文/潘曉璐 我一進店門劳曹,熙熙樓的掌柜王于貴愁眉苦臉地迎上來奴愉,“玉大人,你說我怎么就攤上這事铁孵《穑” “怎么了?”我有些...
    開封第一講書人閱讀 163,711評論 0 353
  • 文/不壞的土叔 我叫張陵蜕劝,是天一觀的道長檀头。 經常有香客問我轰异,道長,這世上最難降的妖魔是什么暑始? 我笑而不...
    開封第一講書人閱讀 58,380評論 1 293
  • 正文 為了忘掉前任搭独,我火速辦了婚禮,結果婚禮上廊镜,老公的妹妹穿的比我還像新娘牙肝。我一直安慰自己,他們只是感情好嗤朴,可當我...
    茶點故事閱讀 67,432評論 6 392
  • 文/花漫 我一把揭開白布配椭。 她就那樣靜靜地躺著,像睡著了一般雹姊。 火紅的嫁衣襯著肌膚如雪股缸。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,301評論 1 301
  • 那天吱雏,我揣著相機與錄音敦姻,去河邊找鬼。 笑死坎背,一個胖子當著我的面吹牛替劈,可吹牛的內容都是我干的寄雀。 我是一名探鬼主播得滤,決...
    沈念sama閱讀 40,145評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼盒犹!你這毒婦竟也來了懂更?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 39,008評論 0 276
  • 序言:老撾萬榮一對情侶失蹤急膀,失蹤者是張志新(化名)和其女友劉穎沮协,沒想到半個月后,有當地人在樹林里發(fā)現了一具尸體卓嫂,經...
    沈念sama閱讀 45,443評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡慷暂,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 37,649評論 3 334
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現自己被綠了晨雳。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片行瑞。...
    茶點故事閱讀 39,795評論 1 347
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖餐禁,靈堂內的尸體忽然破棺而出血久,到底是詐尸還是另有隱情,我是刑警寧澤帮非,帶...
    沈念sama閱讀 35,501評論 5 345
  • 正文 年R本政府宣布氧吐,位于F島的核電站,受9級特大地震影響筑舅,放射性物質發(fā)生泄漏。R本人自食惡果不足惜翠拣,卻給世界環(huán)境...
    茶點故事閱讀 41,119評論 3 328
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望心剥。 院中可真熱鬧邦尊,春花似錦、人聲如沸优烧。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,731評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽又沾。三九已至熙卡,卻和暖如春杖刷,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背驳癌。 一陣腳步聲響...
    開封第一講書人閱讀 32,865評論 1 269
  • 我被黑心中介騙來泰國打工滑燃, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人颓鲜。 一個月前我還...
    沈念sama閱讀 47,899評論 2 370
  • 正文 我出身青樓表窘,卻偏偏與公主長得像甜滨,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子衣摩,可洞房花燭夜當晚...
    茶點故事閱讀 44,724評論 2 354

推薦閱讀更多精彩內容

  • 一. 增強學習簡介 1.1 什么是增強學習? 機器學習的算法可以分為三類:監(jiān)督學習艾扮,非監(jiān)督學習和增強學習。 增強學...
    阿阿阿阿毛閱讀 31,152評論 0 25
  • 環(huán)境 Environment栏渺,個體 Agent,狀態(tài) State磕诊,獎勵 Reward 在強化學習中最重要的兩個概念...
    拓季閱讀 2,250評論 0 2
  • 前言在人生的某個階段击困,您一定會尋找一個人,然后和這個人一起走完后半生阅茶!您是希望隨便找一個,不行再換脸哀?還是用心尋覓蹦浦,...
    西辰姑娘閱讀 469評論 0 1
  • 最近在飯團里看見很多小伙伴在討論“囤課”的煩惱闽寡,我也就不那么焦慮了哈哈哈! 我目前也囤了很多課程爷狈,所以這段時間在做...
    宇楓Sai閱讀 646評論 5 1
  • 我看過的第一篇長篇小說是一個很血腥的故事裳擎。 一頭年輕的狼因為挑戰(zhàn)狼王失敗而被趕出了狼群涎永,傷痕累累的他在流浪中結識了...
    9ea80b401870閱讀 441評論 0 0