SeqGAN——對(duì)抗思想與增強(qiáng)學(xué)習(xí)的碰撞

保留初心丰包,砥礪前行

SeqGAN這篇paper從大半年之前就開始看,斷斷續(xù)續(xù)看到現(xiàn)在壤巷,接下來的工作或許會(huì)與GAN + RL有關(guān)邑彪,因此又把它翻出來,又一次仔細(xì)拜讀了一番胧华。接下來就記錄下我的一點(diǎn)理解寄症。

paper鏈接

1. 背景

GAN在之前發(fā)的文章里已經(jīng)說過了宙彪,不了解的同學(xué)點(diǎn)我,雖然現(xiàn)在GAN的變種越來越多有巧,用途廣泛释漆,但是它們的對(duì)抗思想都是沒有變化的。簡(jiǎn)單來說篮迎,就是在生成的過程中加入一個(gè)可以鑒別真實(shí)數(shù)據(jù)和生成數(shù)據(jù)的鑒別器男图,使生成器G和鑒別器D相互對(duì)抗,D的作用是努力地分辨真實(shí)數(shù)據(jù)和生成數(shù)據(jù)甜橱,G的作用是努力改進(jìn)自己從而生成可以迷惑D的數(shù)據(jù)享言。當(dāng)D無法再分別出真假數(shù)據(jù),則認(rèn)為此時(shí)的G已經(jīng)達(dá)到了一個(gè)很優(yōu)的效果渗鬼。
它的諸多優(yōu)點(diǎn)是它如今可以這么火爆的原因:

  • 可以生成更好的樣本
  • 模型只用到了反向傳播,而不需要馬爾科夫鏈
  • 訓(xùn)練時(shí)不需要對(duì)隱變量做推斷
  • G的參數(shù)更新不是直接來自數(shù)據(jù)樣本,而是使用來自D的反向傳播
  • 理論上,只要是可微分函數(shù)都可以用于構(gòu)建D和G,因?yàn)槟軌蚺c深度神經(jīng)網(wǎng)絡(luò)結(jié)合做深度生成式模型

它的最后一條優(yōu)點(diǎn)也恰恰就是它的局限览露,之前我發(fā)過的文章中也有涉及到,點(diǎn)點(diǎn)點(diǎn)點(diǎn)點(diǎn)我譬胎,在NLP中差牛,數(shù)據(jù)不像圖片處理時(shí)是連續(xù)的,可以微分堰乔,我們?cè)趦?yōu)化生成器的過程中不能找到“中國 + 0.1”這樣的東西代表什么偏化,因此對(duì)于離散的數(shù)據(jù),普通的GAN是無法work的镐侯。

2. 大體思路

這位還在讀本科的作者想到了使用RL來解決這個(gè)問題侦讨。

如上圖(左)所示,仍然是對(duì)抗的思想苟翻,真實(shí)數(shù)據(jù)加上G的生成數(shù)據(jù)來訓(xùn)練D韵卤。但是從前邊背景章節(jié)所述的內(nèi)容中,我們可以知道G的離散輸出崇猫,讓D很難回傳一個(gè)梯度用來更新G沈条,因此需要做一些改變,看上圖(右)诅炉,paper中將policy network當(dāng)做G蜡歹,已經(jīng)存在的紅色圓點(diǎn)稱為現(xiàn)在的狀態(tài)(state),要生成的下一個(gè)紅色圓點(diǎn)稱作動(dòng)作(action)涕烧,因?yàn)镈需要對(duì)一個(gè)完整的序列評(píng)分月而,所以就是用MCTS(蒙特卡洛樹搜索)將每一個(gè)動(dòng)作的各種可能性補(bǔ)全,D對(duì)這些完整的序列產(chǎn)生reward议纯,回傳給G父款,通過增強(qiáng)學(xué)習(xí)更新G。這樣就是用Reinforcement learning的方式,訓(xùn)練出一個(gè)可以產(chǎn)生下一個(gè)最優(yōu)的action的生成網(wǎng)絡(luò)铛漓。

3. 主要內(nèi)容

不論怎么對(duì)抗溯香,目的都是為了更好的生成鲫构,因此我們可以把生成作為切入點(diǎn)浓恶。生成器G的目標(biāo)是生成sequence來最大化reward的期望。

在這里把這個(gè)reward的期望叫做J(θ)结笨。就是在s0和θ的條件下包晰,產(chǎn)生某個(gè)完全的sequence的reward的期望。其中Gθ()部分可以輕易地看出就是Generator Model炕吸。而QDφGθ()(我在這里叫它Q值)在文中被叫做一個(gè)sequence的action-value function 伐憾。因此,我們可以這樣理解這個(gè)式子:G生成某一個(gè)y1的概率乘以這個(gè)y1的Q值赫模,這樣求出所有y1的概率乘Q值树肃,再求和,則得到了這個(gè)J(θ)瀑罗,也就是我們生成模型想要最大化的函數(shù)胸嘴。

所以問題來了,這個(gè)Q值怎么求斩祭?
paper中使用的是REINFORCE algorithm 并且就把這個(gè)Q值看作是鑒別器D的返回值劣像。

因?yàn)椴煌暾能壽E產(chǎn)生的reward沒有實(shí)際意義,因此在原有y_1到y(tǒng)_t-1的情況下摧玫,產(chǎn)生的y_t的Q值并不能在y_t產(chǎn)生后直接計(jì)算耳奕,除非y_t就是整個(gè)序列的最后一個(gè)。paper中想了一個(gè)辦法诬像,使用蒙特卡洛搜索(就我所知“蒙特卡洛”這四個(gè)字可以等同于“隨意”)將y_t后的內(nèi)容進(jìn)行補(bǔ)全屋群。既然是隨意補(bǔ)全就說明會(huì)產(chǎn)生多種情況,paper中將同一個(gè)y_t后使用蒙特卡洛搜索補(bǔ)全的所有可能的sequence全都計(jì)算reward坏挠,然后求平均谓晌。如下圖所示。

就這樣癞揉,我們生成了一些逼真的sequence纸肉。我們就要用如下方式訓(xùn)練D。

這個(gè)式子很容易理解喊熟,最大化D判斷真實(shí)數(shù)據(jù)為真加上D判斷生成數(shù)據(jù)為假柏肪,也就是最小化它們的相反數(shù)。

D訓(xùn)練了一輪或者多輪(因?yàn)镚AN的訓(xùn)練一直是個(gè)難題芥牌,找好G和D的訓(xùn)練輪數(shù)比例是關(guān)鍵)之后烦味,就得到了一個(gè)更優(yōu)秀的D,此時(shí)要用D去更新G。G的更新可以看做是梯度下降谬俄。

其中柏靶,

αh代表學(xué)習(xí)率。

以上就是大概的seqGAN的原理溃论。

4. 算法

首先隨機(jī)初始化G網(wǎng)絡(luò)和D網(wǎng)絡(luò)參數(shù)屎蜓。

通過MLE預(yù)訓(xùn)練G網(wǎng)絡(luò),目的是提高G網(wǎng)絡(luò)的搜索效率钥勋。

使用預(yù)訓(xùn)練的G生成一些數(shù)據(jù)炬转,用來通過最小化交叉熵來預(yù)訓(xùn)練D。

  1. 開始生成sequence算灸,并使用方程(4)計(jì)算reward(這個(gè)reward來自于G生成的sequence與D產(chǎn)生的Q值)扼劈。

  2. 使用方程(8)更新G的參數(shù)。

  3. 更優(yōu)的G生成更好的sequence菲驴,和真實(shí)數(shù)據(jù)一起通過方程(5)訓(xùn)練D荐吵。

以上1,2赊瞬,3循環(huán)訓(xùn)練直到收斂先煎。

5. 實(shí)驗(yàn)

論文的實(shí)驗(yàn)部分就不是本文的重點(diǎn)了,有興趣的話看一下paper就可以了森逮。

后邊說的比較敷衍了榨婆,那...就這樣吧。


參考資料:SeqGAN: Sequence Generative Adversarial Nets with Policy Gradient | 百度&google

如果你也喜歡機(jī)器學(xué)習(xí)褒侧,并且也像我一樣在ML之路上努力良风,請(qǐng)關(guān)注我,這里會(huì)不定期進(jìn)行分享闷供,希望可以與你一同進(jìn)步烟央。
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市歪脏,隨后出現(xiàn)的幾起案子疑俭,更是在濱河造成了極大的恐慌,老刑警劉巖婿失,帶你破解...
    沈念sama閱讀 221,406評(píng)論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件钞艇,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡豪硅,警方通過查閱死者的電腦和手機(jī)哩照,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,395評(píng)論 3 398
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來懒浮,“玉大人飘弧,你說我怎么就攤上這事。” “怎么了次伶?”我有些...
    開封第一講書人閱讀 167,815評(píng)論 0 360
  • 文/不壞的土叔 我叫張陵痴昧,是天一觀的道長(zhǎng)。 經(jīng)常有香客問我冠王,道長(zhǎng)赶撰,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 59,537評(píng)論 1 296
  • 正文 為了忘掉前任版确,我火速辦了婚禮扣囊,結(jié)果婚禮上乎折,老公的妹妹穿的比我還像新娘绒疗。我一直安慰自己,他們只是感情好骂澄,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,536評(píng)論 6 397
  • 文/花漫 我一把揭開白布吓蘑。 她就那樣靜靜地躺著,像睡著了一般坟冲。 火紅的嫁衣襯著肌膚如雪磨镶。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 52,184評(píng)論 1 308
  • 那天健提,我揣著相機(jī)與錄音琳猫,去河邊找鬼。 笑死私痹,一個(gè)胖子當(dāng)著我的面吹牛脐嫂,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播紊遵,決...
    沈念sama閱讀 40,776評(píng)論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼账千,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來了暗膜?” 一聲冷哼從身側(cè)響起匀奏,我...
    開封第一講書人閱讀 39,668評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎学搜,沒想到半個(gè)月后娃善,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 46,212評(píng)論 1 319
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡瑞佩,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,299評(píng)論 3 340
  • 正文 我和宋清朗相戀三年聚磺,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片钉凌。...
    茶點(diǎn)故事閱讀 40,438評(píng)論 1 352
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡咧最,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情矢沿,我是刑警寧澤滥搭,帶...
    沈念sama閱讀 36,128評(píng)論 5 349
  • 正文 年R本政府宣布,位于F島的核電站捣鲸,受9級(jí)特大地震影響瑟匆,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜栽惶,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,807評(píng)論 3 333
  • 文/蒙蒙 一愁溜、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧外厂,春花似錦冕象、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,279評(píng)論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至掖棉,卻和暖如春墓律,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背幔亥。 一陣腳步聲響...
    開封第一講書人閱讀 33,395評(píng)論 1 272
  • 我被黑心中介騙來泰國打工耻讽, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人帕棉。 一個(gè)月前我還...
    沈念sama閱讀 48,827評(píng)論 3 376
  • 正文 我出身青樓针肥,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國和親笤昨。 傳聞我的和親對(duì)象是個(gè)殘疾皇子祖驱,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,446評(píng)論 2 359

推薦閱讀更多精彩內(nèi)容