GAIL:一種結(jié)合GAN思想的反向強(qiáng)化學(xué)習(xí)方法

前幾天聽到一聲廣告語:只要你愿意赋荆,從現(xiàn)在開始努力,最壞的結(jié)果不過是大器晚成懊昨。好了窄潭,既然我們決定要努力,要怎么做呢酵颁?我們要有自己的一套方法論嫉你,如何得到自己的方法論呢?最簡單的方法就是從成功者的身上去學(xué)習(xí)躏惋,在學(xué)習(xí)的基礎(chǔ)上幽污,結(jié)合自身的情況和經(jīng)驗(yàn),不斷完善形成自己的一套方法論簿姨,進(jìn)而取得成功距误。這其實(shí)就是我們今天要介紹的反向強(qiáng)化學(xué)習(xí)方法(Inverse Reinforcement Learning)的基本思想。同時(shí)扁位,也作為辭舊迎新的話語准潭,激勵(lì)自己和大家在新的一年里,不斷努力域仇,砥礪前行刑然。

本文首先將介紹反向強(qiáng)化學(xué)習(xí)的基本概念和實(shí)現(xiàn)思路;隨后將介紹其中一種結(jié)合GAN思想的反向強(qiáng)化學(xué)習(xí)方法:GAIL暇务;最后泼掠,將介紹一下GAIL的代碼實(shí)現(xiàn)思路。

1垦细、反向強(qiáng)化學(xué)習(xí)基礎(chǔ)

反向強(qiáng)化學(xué)習(xí)也稱為模仿學(xué)習(xí)(Imitation Learning)學(xué)徒學(xué)習(xí)(Apprentice Learning)择镇。

在強(qiáng)化學(xué)習(xí)中,我們的基本思路是通過agent與環(huán)境的交互蝠检,根據(jù)環(huán)境對(duì)于agent在某一狀態(tài)下所采取動(dòng)作的回報(bào)沐鼠,對(duì)agent的策略進(jìn)行更新,從而獲得最大化的長期期望收益叹谁。也就是說,強(qiáng)化學(xué)習(xí)通常是在回報(bào)已知的情況下求出值函數(shù)和策略乘盖。但是如果回報(bào)我們無法獲得呢焰檩?反向強(qiáng)化學(xué)習(xí)使用了逆向思維,我們不通過回報(bào)求策略订框,而是反過來析苫,根據(jù)策略求回報(bào)。

這聽上去有點(diǎn)荒謬,我們想通過交互獲得回報(bào)衩侥,就是為了求解更好的策略国旷,現(xiàn)在有了策略,我們?yōu)槭裁催€要去求回報(bào)呢茫死?因?yàn)楹芏鄷r(shí)候跪但,我們擁有的不是最優(yōu)的策略,而是基于這些策略的一些樣本峦萎。

想象我們想要學(xué)習(xí)打羽毛球屡久,雖然我們無法像專業(yè)運(yùn)動(dòng)員那樣擁有超強(qiáng)的戰(zhàn)術(shù)策略,但是我們可以通過觀察他們的比賽錄像爱榔,通過觀察他們?cè)诓煌闆r下的不同擊球策略被环,來不斷提高我們自身的球技。實(shí)際上详幽,我們?cè)趯?shí)際情況下也是這么做的:在家不斷學(xué)習(xí)高手的動(dòng)作要領(lǐng)筛欢,并銘記于心,然后回到球場上一試身手唇聘。實(shí)際上版姑,這就是一個(gè)從反向強(qiáng)化學(xué)習(xí)到強(qiáng)化學(xué)習(xí)的過程。首先通過最優(yōu)策略的交互樣本學(xué)習(xí)到回報(bào)函數(shù)雳灾,即不同的情境下的不同擊球方式(扣殺球漠酿,放小球,球速谎亩,擊球高度等等)炒嘲,能夠獲得的回報(bào)是怎樣的。接下來就可以通過得到回報(bào)函數(shù)進(jìn)行嘗試匈庭,使用強(qiáng)化學(xué)習(xí)的方法得到最終的策略夫凸。

好了,我們給出反向強(qiáng)化學(xué)習(xí)的一般思路:

  1. 隨機(jī)生成一個(gè)策略作為agent的初始策略阱持。
  2. 通過比較高手的交互樣本和自身的交互樣本夭拌,學(xué)習(xí)得到回報(bào)函數(shù)
  3. 利用回報(bào)函數(shù)進(jìn)行強(qiáng)化學(xué)習(xí),提升自己的策略水平
  4. 如果自身的策略所能得到的獎(jiǎng)勵(lì)和高手的策略差不多衷咽,就可以停止學(xué)習(xí)鸽扁,否則返回第二步繼續(xù)學(xué)習(xí)。

2镶骗、GAIL的基本思路

本節(jié)我們簡單介紹一種反向強(qiáng)化學(xué)習(xí)的實(shí)現(xiàn)思路桶现,這種思路結(jié)合了GAN的思想,稱為:GAIL(Generative Adversarial Imitation Learning)鼎姊。

簡單回顧下GAN骡和,在GAN中相赁,我們有Generator和Discriminator。其最初主要應(yīng)用于圖像生成慰于,因此我們以圖像生成這一應(yīng)用來介紹下它的主要流程:在圖像生成中钮科,Generator要用來學(xué)習(xí)真實(shí)圖像分布從而讓自身生成的圖像更加真實(shí),以騙過Discriminator婆赠。Discriminator則需要對(duì)接收的圖片進(jìn)行真假判別绵脯。在整個(gè)過程中,Generator努力地讓生成的圖像更加真實(shí)页藻,而Discriminator則努力地去識(shí)別出圖像的真假桨嫁,這個(gè)過程相當(dāng)于一個(gè)二人博弈,隨著時(shí)間的推移份帐,Generator和Discriminator在不斷地進(jìn)行對(duì)抗璃吧,最終兩個(gè)網(wǎng)絡(luò)達(dá)到了一個(gè)動(dòng)態(tài)均衡:Generator生成的圖像接近于真實(shí)圖像分布,而Discriminator識(shí)別不出真假圖像废境,對(duì)于給定圖像的預(yù)測(cè)為真的概率基本接近 0.5(相當(dāng)于隨機(jī)猜測(cè)類別)畜挨。

回到GAIL中,我們?cè)撊绾螒?yīng)用GAN的思想呢噩凹。在這之前巴元,我們首先要做出假設(shè),即我們已有的高手的策略就是最優(yōu)策略驮宴,在不同的狀態(tài)s下所采取的動(dòng)作a就是最優(yōu)的動(dòng)作逮刨。

在GAIL中,Generator其實(shí)就是我們的Agent堵泽,它會(huì)根據(jù)不同的state修己,采取不同的動(dòng)作。而Discriminator將要努力區(qū)分高手的行動(dòng)和agent的行動(dòng)迎罗。對(duì)Discriminator來說睬愤,我們可以轉(zhuǎn)化成一個(gè)簡單的二分類問題,即將當(dāng)前的狀態(tài)和動(dòng)作作為輸入纹安,得到這個(gè)動(dòng)作是最優(yōu)動(dòng)作的概率尤辱。如果這個(gè)狀態(tài)-動(dòng)作對(duì)來自高手的交互樣本,那么Discriminator希望得到的概率越接近于1越好厢岂,而如果這個(gè)狀態(tài)-動(dòng)作對(duì)來自Generator的交互樣本光督,那么Discriminator希望得到的概率越接近于0越好對(duì)Generator來說塔粒,我們希望自己的策略越接近于高手的策略可帽,那么就可以使用Discriminator輸出的概率作為獎(jiǎng)勵(lì),來更新自身的策略窗怒,如果Discriminator給出的概率越高映跟,說明我們?cè)谶@一狀態(tài)下采取的動(dòng)作是一個(gè)較優(yōu)的動(dòng)作,我們就提高該動(dòng)作出現(xiàn)的概率扬虚,反之則是一個(gè)較差的動(dòng)作努隙,降低其出現(xiàn)的概率

以上就是GAIL的基本思路辜昵,是不是跟GAN如出一轍荸镊?

3、GAIL的代碼實(shí)現(xiàn)

結(jié)下來堪置,我們來看一下如何實(shí)現(xiàn)GAIL躬存,這里我們不給出具體的代碼,只給出具體的實(shí)現(xiàn)思路舀锨。

代碼地址為:https://github.com/princewen/tensorflow_practice/tree/master/RL/Basic-GAIL-Demo

代碼結(jié)構(gòu)如下:

我們按照以下幾步來實(shí)現(xiàn)GAIL岭洲。

訓(xùn)練一個(gè)高手

首先運(yùn)行run_ppo.py文件,該文件會(huì)通過PPO算法來訓(xùn)練一個(gè)agent坎匿,如果訓(xùn)練的agent能夠滿足我們的高手定義盾剩,則終止學(xué)習(xí),此時(shí)學(xué)習(xí)到的agent我們就認(rèn)為是一個(gè)高手替蔬。

得到高手的交互序列

接下來告私,我們運(yùn)行sample_trajectory.py文件,得到高手的狀態(tài)-動(dòng)作對(duì)承桥,保存在trajectory文件夾下驻粟。

訓(xùn)練GAIL模型

接下來運(yùn)行run_gail.py文件,基于上述介紹的GAIL的基本思路凶异,來進(jìn)行學(xué)習(xí)蜀撑。

檢驗(yàn)學(xué)習(xí)成果

最后,運(yùn)行test_policy.py文件唠帝,我們可以檢驗(yàn)一下我們通過GAIL學(xué)習(xí)到的agent的學(xué)習(xí)成果屯掖。

本文GAIL模型就介紹到這里啦。最后襟衰,祝大家新年快樂啦贴铜!

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市瀑晒,隨后出現(xiàn)的幾起案子绍坝,更是在濱河造成了極大的恐慌,老刑警劉巖苔悦,帶你破解...
    沈念sama閱讀 216,997評(píng)論 6 502
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件轩褐,死亡現(xiàn)場離奇詭異,居然都是意外死亡玖详,警方通過查閱死者的電腦和手機(jī)把介,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,603評(píng)論 3 392
  • 文/潘曉璐 我一進(jìn)店門勤讽,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人拗踢,你說我怎么就攤上這事脚牍。” “怎么了巢墅?”我有些...
    開封第一講書人閱讀 163,359評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵诸狭,是天一觀的道長。 經(jīng)常有香客問我君纫,道長驯遇,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,309評(píng)論 1 292
  • 正文 為了忘掉前任蓄髓,我火速辦了婚禮叉庐,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘双吆。我一直安慰自己眨唬,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,346評(píng)論 6 390
  • 文/花漫 我一把揭開白布好乐。 她就那樣靜靜地躺著匾竿,像睡著了一般。 火紅的嫁衣襯著肌膚如雪蔚万。 梳的紋絲不亂的頭發(fā)上岭妖,一...
    開封第一講書人閱讀 51,258評(píng)論 1 300
  • 那天,我揣著相機(jī)與錄音反璃,去河邊找鬼昵慌。 笑死,一個(gè)胖子當(dāng)著我的面吹牛淮蜈,可吹牛的內(nèi)容都是我干的斋攀。 我是一名探鬼主播,決...
    沈念sama閱讀 40,122評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼梧田,長吁一口氣:“原來是場噩夢(mèng)啊……” “哼淳蔼!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起裁眯,我...
    開封第一講書人閱讀 38,970評(píng)論 0 275
  • 序言:老撾萬榮一對(duì)情侶失蹤鹉梨,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后穿稳,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體存皂,經(jīng)...
    沈念sama閱讀 45,403評(píng)論 1 313
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,596評(píng)論 3 334
  • 正文 我和宋清朗相戀三年逢艘,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了旦袋。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片骤菠。...
    茶點(diǎn)故事閱讀 39,769評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖猜憎,靈堂內(nèi)的尸體忽然破棺而出娩怎,到底是詐尸還是另有隱情,我是刑警寧澤胰柑,帶...
    沈念sama閱讀 35,464評(píng)論 5 344
  • 正文 年R本政府宣布,位于F島的核電站爬泥,受9級(jí)特大地震影響柬讨,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜袍啡,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,075評(píng)論 3 327
  • 文/蒙蒙 一踩官、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧境输,春花似錦蔗牡、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,705評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至信粮,卻和暖如春黔攒,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背强缘。 一陣腳步聲響...
    開封第一講書人閱讀 32,848評(píng)論 1 269
  • 我被黑心中介騙來泰國打工督惰, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人旅掂。 一個(gè)月前我還...
    沈念sama閱讀 47,831評(píng)論 2 370
  • 正文 我出身青樓赏胚,卻偏偏與公主長得像,于是被迫代替她去往敵國和親商虐。 傳聞我的和親對(duì)象是個(gè)殘疾皇子觉阅,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,678評(píng)論 2 354