強化學習
元素: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'甲葬。
使用gradient ascend來最大化R'梭灿,這里參數θ只與π(a|s)有關画侣,最后得到可sample的式子。其中每筆trajectory的數據只能用一次堡妒,actor更新之后就不能用了配乱。實際操作時可以看為加權的分類問題S->A,選擇cross-entropy,權重為R搬泥,R可以不可導桑寨。
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)。
最終:
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 的估計需要使用θ'的數據漓穿。
此為跟新需要的gradient,其中假設在不同actor中看到的s概率一樣注盈,則可以簡化晃危。通過gradient可以反推出目標函數。
約束:由于θ'與θ不能差別太大老客,所以需要有個約束僚饭,比如在目標函數后加-βKL(θ,θ')作為約束(PPO);或者外面引入KL(θ,θ') < δ.(TRPO胧砰,PPO前身鳍鸵,用constraint計算上不好處理)
說明:因為可能參數小的變化,行為變化很大尉间,衡量無意義偿乖。所以。KL(θ,θ')不是參數上的距離哲嘲,而是行為上的距離贪薪!π(a|s)的分布接近!
tip:adaptive KL Penalty眠副,權衡β画切。定義KLmin和KLmax,當KL > KLmax囱怕,說明penalty作用沒發(fā)揮霍弹,則增加β的值,反之亦然娃弓。
PPO2:不用計算KL典格,同樣可以控制θ與θ'之間差距。
說明:當A>0忘闻,也就是a是好的钝计,我們希望增加Pθ的概率恋博,但是齐佳,Pθ不能弄得太大,太大也就會使與Pθ'差距大债沮,導致效果不好炼吴。反之亦然。
Q-Learning
value-based疫衩,學習Critic硅蹦,評價現在的行為的相對好壞。
state value fucntion Vπ(s).: 期望累計獎勵,給定π童芹,s涮瞻,衡量a的好壞。主要他必須與π相關假褪,衡量這個actor署咽,而不是單純的s。
估計:
- MC(episodic)生音,需要π經歷一次整個過程后宁否,進行統計估計,由于r為隨機變量缀遍,所以此方法方差大慕匠,但是無偏的。
- TD, 根據Vπ(st)=Vπ(st+1)+rt估計域醇,不需要每次經歷完整過程台谊。由于Vπ值都為估計值,可能存在估計不準譬挚,其中只涉及r青伤,方差小
state-action value function(Q function) Qπ(s,a).:衡量π在s下,采取a的好壞殴瘦。其中π不一定采取a狠角,這里只是衡量如果在這采取a的情況。
形式:
-
輸入s,a蚪腋,輸出Q
-
輸入s丰歌,輸出每個a的Q,只能用于離散a
目標:給定Q屉凯,找到一個比π更好的π'立帖,這里"更好"是說,對所有s悠砚,有Vπ'(s) >= Vπ(s)
決策:π'=argmax_aQπ(s,a)晓勇,這里沒有policy,依據Q來決定的,這個形式對連續(xù)a不好求解尝丐。
附:證明Vπ'(s) >= Vπ(s)
必用tips
-
target network
學習中數據為...(st,at,rt,st+1)...,訓練目標為
我們采用兩個network描融,一個用來訓練,一個用來計算目標target(右邊的)衡蚂,訓練時target固定住窿克。當訓練一定數目后再更新target network的參數(用訓練network替換)骏庸。 -
exploration
Q-learning的policy是依賴于Q,每次選擇最大Q的a年叮,這樣不利于收集數據具被,如果一開始沒有采樣到a,Q比較小只损,之后不會再采取這個a硬猫,無法準確估計Q(s,a)。
方法: ε-greedy :以ε概率隨機選擇a改执,通常 ε隨著學習進行變行ッ邸;
Boltzmann Exploration:基于Q值概率化辈挂,通過概率采樣選擇a衬横, 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
-
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可以有效減少參數量来吩。
-
Dueling DQN
改架構敢辩,使Q(s,a) = A(s,a) + V(s),有時候Q的值可能與a無關弟疆,而只與s有關戚长,比如一個不好的s導致什么a都不好。當action不影響s時怠苔,沒必要去衡量每個a的q值(只有在關鍵時刻a才重要M)
好處:當沒有sample到a時,同樣可以更新a柑司,比較有效率地使用數據迫肖,加速訓練。
說明:為了防止模型不訓練V攒驰,可以給A(s,a)加約束蟆湖。比如A(s,a)限制和為0等等。實際操作可以在A(s,a)最后一層加normalization op.
Prioritized Replay
改變sample data的分布玻粪,增加那些難訓練的數據被采樣的概率隅津,TD error大的數據;同時可以改變訓練過程劲室。-
Multi-step
權衡MC與TD伦仍,結合MC與TD的好處與壞處,MC準確方差大很洋,TD方差小充蓝,估計不準『泶牛可以通過調節(jié)N來權衡棺克。replay buffer中存N步的exp,則target變成:
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)。-
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)呻拌。
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)化目標好解,比如
Actor Critic (A2C, A3C, DPGP)
原始policy-based方法中梯度為
目標:直接估計累計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倍風險預測不準確紊浩。
因為
為advantage function.
A2C
π先互動简珠,收集exp阶界,先估計V(s) (TD, MC),再估計πtips
-
shared shallow layer:需要學習的兩個network可以共享參數
output entropy as regularization for π(s),使action分布交均勻聋庵,實現exploration
A3C
A2C訓練較慢膘融,使用多個worker學習參數跟新梯度,一起更新Global Network的參數祭玉。每個worker從global network中拿參數氧映,自己與環(huán)境互動,計算梯度脱货,更新global network參數岛都。注意,每個worker可能不是原始參數振峻。
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中的技術都可以使用。
整個算法:
進而氛改,GAN中的優(yōu)化方法可以引入這里:
高級技法
Sparse Reward
agent可能大多時間沒有reward帐萎,導致訓練時不論采取什么a都一樣好。
Reward Shaping:Env有自己固定的reward胜卤,我們引導actor刻意設計一些reward疆导,學到期望的行為「瘐铮可能有些actor在預測未來reward很難澈段,則discount很大悠菜。設計reward不一定是Env真的reward,只是我們希望的行為败富,一般需要domain knowledge悔醋。
Curiosity:Intrinsic Curiosity module (ICM)
鼓勵actor冒險,越難預測的s兽叮,則風險越大芬骄,增加exploration。但是不一定越難預測這個s就是好的鹦聪,可能環(huán)境中的隨機無關變量账阻。進而引入feature extractor,把沒有意義的無關變量過濾掉泽本。則ICM可以為:
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!通過專家演示如何解決問題。
- 機器可以與環(huán)境互動榛了,但是不會獲得顯示的獎勵
- 有些任務很難定義reward(比如駕駛車無法判斷撞男人和女人各有多少reward)
- 有些人工定義的reward可能導致無法控制的結果
方法:Behavior Cloning在讶;Inverse Reinforcement Learning (inverse optimal control)
Behavior Cloning:監(jiān)督學習,收集專家的(s,a)進行學習霜大。
可能存在的問題:
- 專家只能提供有限的樣本(專家很專業(yè)构哺,不會經歷一些極端情況,機器遇到無法決策)战坤。
Dataset Aggregation:這種情況可以讓專家在機器決策時處于機器的環(huán)境(收集專家在極端情況下的行為)曙强,但是機器還是做自己,專家給予指導湖笨,可能導致每次嘗試損失一個專家旗扑。 - 機器可能只是單純復制專家的行為蹦骑,不論行為是是否相關(比如學到個人無關的壞行為)慈省,因為機器的capacity是有限的,可能只學到了壞行為(監(jiān)督學習同等對待所有error)
- 訓練數據與測試數據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的復雜行為垦垂。
方法:
-
有一個expert與環(huán)境互動得到一些專家數據
-
有一個actor π與環(huán)境互動得到數據
反推一個reward function,原則為expert得到的分數比actor高牙瓢。
利用這個reward fucntion使用RL方法學習actor劫拗,得到新數據。
-
基于新的actor與expert數據矾克,更新reward function页慷,遵循同樣的原則,反復迭代,最終學到reward function使得actor與expert得到同樣高分差购。
reward function:如果是線性的reward四瘫,保證收斂。或者可以使用NN欲逃,輸入為trajectory找蜜,輸出一個R;或者輸入(s,a)稳析,輸出r洗做,最后匯總得到R。
說明:如果actor是generator彰居,reward function是discriminator诚纸,則整個框架就是GAN!
優(yōu)點:不需要太多的training data
應用:學習不同expert開車陈惰,且能學習每個expert開車不同風格畦徘;人示范訓練機器人(手把手,機器處于s的第一視角)抬闯;Chat-bot(使用maximum likelihood相當于behavior cloning井辆,這是不夠的!溶握;SeqGAN方式相對于IRL)
Third Person IL:使用domain adversial training (抽取有用的信息)+ IL杯缺,機器看人的行為學習(機器學習視角為第三視角)。