SeqGAN論文閱讀筆記

本文是2017年發(fā)表于AAAI的論文《SeqGAN: Sequence Generative Adversarial Nets with Policy Gradient》的閱讀筆記舱权。

想要解決的問題(動(dòng)機(jī))

GAN模型的兩個(gè)缺點(diǎn):

  1. GAN是設(shè)計(jì)用來生成實(shí)值連續(xù)數(shù)據(jù)的槽驶,在直接生成離散序列方面有些困難,表現(xiàn)不好;
  2. GAN只能給生成的完整序列打分鸯旁,對(duì)于生成的部分序列,平衡現(xiàn)在的好壞和將來作為整個(gè)序列的得分是很重的磺陡。

原因:我們知道沼本,GAN中生成網(wǎng)絡(luò)參數(shù)的優(yōu)化是需要依賴于判別網(wǎng)絡(luò)的,如果輸出是離散序列的話薪捍,就很難將梯度更新從判別網(wǎng)絡(luò)傳給生成網(wǎng)絡(luò)笼痹。

怎么理解這個(gè)離散序列?即輸出不是一個(gè)值域里所有的值(例如y \in [0, 1])酪穿,而是可枚舉的數(shù)值(例如y \in \{0, 1\})凳干。

由于生成模型的核心是擬合數(shù)據(jù)的密度分布,而只有連續(xù)的數(shù)據(jù)才有密度分布被济,離散的數(shù)據(jù)是沒有密度分布的救赐。

解決的方法

  • 問題:梯度更新無法從判別網(wǎng)絡(luò)傳給生成網(wǎng)絡(luò)
    • 解決方法:將序列生成過程看成序列決策過程,引入強(qiáng)化學(xué)習(xí)只磷,將生成網(wǎng)絡(luò)看成強(qiáng)化學(xué)習(xí)機(jī)经磅,所生成的部分離散序列看成是當(dāng)前的狀態(tài)(state),動(dòng)作(action)就是決定下一個(gè)字符是什么钮追。
    • 這樣一來预厌,生成網(wǎng)絡(luò)只需要接受由判別網(wǎng)絡(luò)對(duì)生成的輸出序列打分的分?jǐn)?shù)作為獎(jiǎng)勵(lì)(reward)來進(jìn)行參數(shù)調(diào)整,而不需要通過梯度計(jì)算畏陕。
  • 問題:GAN只能給生成的完整序列打分
    • 解決方法:使用Monte Carlo Search(蒙特卡洛搜索)方法來從當(dāng)前的序列狀態(tài)搜索得到完整序列配乓,然后由判別網(wǎng)絡(luò)打分,得到的分值作為獎(jiǎng)勵(lì)(reward)

上述兩種方案的結(jié)合,就是所謂的SeqGAN模型架構(gòu)犹芹。

模型

圖1 SeqGAN模型架構(gòu)

目標(biāo)函數(shù)

  • 生成網(wǎng)絡(luò)的目標(biāo)函數(shù)
    由于生成網(wǎng)絡(luò)現(xiàn)在使用的是強(qiáng)化學(xué)習(xí)來實(shí)現(xiàn)的崎页,而強(qiáng)化學(xué)習(xí)的目標(biāo)就是使得獎(jiǎng)勵(lì)(reward)盡可能大。于是腰埂,生成網(wǎng)絡(luò)的目標(biāo)函數(shù)如下:
    J(\theta) = \mathbb{E} [R_T | s_0, \theta] = \sum_{y_1 \in \gamma} G_{\theta}(y_1 | s_0) \cdot Q_{D_{\phi}}^{G_{\theta}}(s_0, y_1) \qquad (1)
    這里飒焦,action-value函數(shù)(即上式中的Q函數(shù))也至關(guān)重要。我們知道屿笼,reward是將完整序列輸入到判別網(wǎng)絡(luò)D中所得到的牺荠,因此:
    Q_{D_{\phi}}^{G_{\theta}}(a = y_T, s = Y_{1:T-1}) = D_{\phi}(Y_{1:T}) \qquad (2)
    這里只是討論了完整序列的情況,還有非完整序列的情況驴一,此時(shí)就需要用到Monte Carlo Search(蒙特卡洛搜索)來從當(dāng)前非完整序列狀態(tài)搜索得到完整的序列狀態(tài)休雌,其搜索過程定義如下(一共搜索了N次,得到了N個(gè)完整的序列):
    \{ Y_{1:T}^1, ..., Y_{1:T}^N \} = MC^{G_{\beta}} (Y_{1:t}; N) \qquad (3)
    中間狀態(tài)序列的reward是這N個(gè)搜索得到的完整序列的reward均值肝断,從而得到完整的action-value函數(shù)定義:
    Q_{D_{\phi}}^{G_{\theta}}(a = y_t, s = Y_{1:t-1}) = \begin{cases} \frac{1}{N} \sum_{n=1}^N D_{\phi}(Y_{1:T}^n), \quad Y_{1:T}^n \in MC^{G_{\beta}} (Y_{1:t}; N) \quad for \quad t < T \\ D_{\phi}(Y_{1:T}) \quad for \quad t = T \end{cases} \qquad (4)
  • 判別網(wǎng)絡(luò)的目標(biāo)函數(shù)
    判別網(wǎng)絡(luò)的目標(biāo)不變(還是GAN中的那一套)杈曲,還是最小化交叉熵:
    min_{\phi} - \mathbb{E}_{Y \sim p_{data}} [log D_{\phi}(Y) ] - \mathbb{E}_{Y \sim G_{\theta}} [log (1 - D_{\phi}(Y)) ] \qquad (5)

這里的目標(biāo)函數(shù)并不像GAN中的一樣可以結(jié)合成為一個(gè)整體的目標(biāo)函數(shù),因?yàn)閮蓚€(gè)目標(biāo)函數(shù)的梯度是不互通的

算法

圖2 SeqGAN算法

圖中的公式(8)如下:
\theta \leftarrow \theta + \alpha_h \Delta_{\theta} J(\theta) \qquad (8)

由于作者發(fā)現(xiàn)來自預(yù)訓(xùn)練的判別器的監(jiān)督信號(hào)能夠很有效地調(diào)整生成網(wǎng)絡(luò)胸懈,在實(shí)現(xiàn)過程中担扑,先預(yù)訓(xùn)練了判別網(wǎng)絡(luò);而且為了使得生成的負(fù)樣本更可靠趣钱,在預(yù)訓(xùn)練判別器之前涌献,使用極大似然估計(jì)(MLE)先預(yù)訓(xùn)練了生成器。

評(píng)價(jià)生成模型

當(dāng)訓(xùn)練得到最終的生成模型首有,我們就需要評(píng)價(jià)其性能燕垃。

在本文中,采用了一個(gè)能夠捕獲到字符依賴關(guān)系的語(yǔ)言模型作為真實(shí)數(shù)據(jù)的模型(稱為oracle)绞灼,使用該模型生成SeqGAN的訓(xùn)練數(shù)據(jù)利术,并且能夠用該模型評(píng)價(jià)SeqGAN中生成模型的性能。

評(píng)價(jià)采用的指標(biāo)是負(fù)對(duì)數(shù)似然:
NLL_{oracle} = - \mathbb{E}_{Y_{1:T} \sim G_{\theta}} [\sum_{t = 1}^{T} log G_{oracle}(y_t | Y_{1:t-1})] \qquad (6)
其中G_{\theta}G_{oracle} 分別表示生成模型和oracle模型低矮。

上式其實(shí)是一個(gè)熵印叁,當(dāng)生成模型生成一個(gè)序列(x_1, x_2, x_3)的概率是p時(shí),我們計(jì)算一下oracle模型生成該序列的概率是q军掂,然后計(jì)算一下熵- p \ log \ q轮蜕,所有可能生成的序列的熵之和為\sum_i^n p_i \ log \ q_i,即為- \mathbb{E}_{p} \sum_i^n log \ q_i蝗锥,當(dāng)熵越小跃洛,說明p和q的散度越小,p和q的分布就越相似终议。

NLL_{oracle}越小就說明生成模型性能越高汇竭,越接近數(shù)據(jù)的真實(shí)分布葱蝗。

討論

本文還對(duì)算法中一些超參(g-step,d-step细燎,k等)的設(shè)置两曼。
實(shí)驗(yàn)結(jié)果如下:


圖3 SeqGAN超參設(shè)置實(shí)驗(yàn)

從這個(gè)實(shí)驗(yàn)中可以得出:

  • 設(shè)置g-step比d-step和k值大很多(花更多時(shí)間用來訓(xùn)練生成網(wǎng)絡(luò))時(shí),能夠快速收斂玻驻,但是它會(huì)導(dǎo)致判別網(wǎng)絡(luò)沒訓(xùn)練好悼凑,從而會(huì)誤導(dǎo)生成網(wǎng)絡(luò)進(jìn)行更新璧瞬,收斂性會(huì)不穩(wěn)定;(圖3.a)
  • 增大d-step和k的設(shè)置(d-step相較于g-step比值有提升)時(shí)渔欢,收斂性會(huì)穩(wěn)定很多;(圖3.b)
  • 將d-step \times k 設(shè)置的略大于g-step時(shí)档冬,意味著我們一直保證判別網(wǎng)絡(luò)的準(zhǔn)確性(在判別網(wǎng)絡(luò)被混淆之前就使用更真實(shí)的負(fù)例來訓(xùn)練它)膘茎,此時(shí)SeqGAN會(huì)比較穩(wěn)定;(圖3.c)
  • 將d-step \times k進(jìn)一步增大酷誓,發(fā)現(xiàn)其收斂的更快;(圖3.d)

上面的實(shí)驗(yàn)證明了:在訓(xùn)練過程中將判別網(wǎng)絡(luò)的性能訓(xùn)練得略高于生成網(wǎng)絡(luò)是有利于模型的收斂态坦。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末盐数,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子伞梯,更是在濱河造成了極大的恐慌玫氢,老刑警劉巖,帶你破解...
    沈念sama閱讀 219,366評(píng)論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件谜诫,死亡現(xiàn)場(chǎng)離奇詭異漾峡,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)喻旷,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,521評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門生逸,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人且预,你說我怎么就攤上這事槽袄。” “怎么了锋谐?”我有些...
    開封第一講書人閱讀 165,689評(píng)論 0 356
  • 文/不壞的土叔 我叫張陵遍尺,是天一觀的道長(zhǎng)。 經(jīng)常有香客問我涮拗,道長(zhǎng)乾戏,這世上最難降的妖魔是什么迂苛? 我笑而不...
    開封第一講書人閱讀 58,925評(píng)論 1 295
  • 正文 為了忘掉前任,我火速辦了婚禮鼓择,結(jié)果婚禮上三幻,老公的妹妹穿的比我還像新娘。我一直安慰自己惯退,他們只是感情好赌髓,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,942評(píng)論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著催跪,像睡著了一般锁蠕。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上懊蒸,一...
    開封第一講書人閱讀 51,727評(píng)論 1 305
  • 那天荣倾,我揣著相機(jī)與錄音,去河邊找鬼骑丸。 笑死舌仍,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的通危。 我是一名探鬼主播铸豁,決...
    沈念sama閱讀 40,447評(píng)論 3 420
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼菊碟!你這毒婦竟也來了节芥?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,349評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤逆害,失蹤者是張志新(化名)和其女友劉穎头镊,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體魄幕,經(jīng)...
    沈念sama閱讀 45,820評(píng)論 1 317
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡相艇,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,990評(píng)論 3 337
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了纯陨。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片坛芽。...
    茶點(diǎn)故事閱讀 40,127評(píng)論 1 351
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖队丝,靈堂內(nèi)的尸體忽然破棺而出靡馁,到底是詐尸還是另有隱情,我是刑警寧澤机久,帶...
    沈念sama閱讀 35,812評(píng)論 5 346
  • 正文 年R本政府宣布臭墨,位于F島的核電站,受9級(jí)特大地震影響膘盖,放射性物質(zhì)發(fā)生泄漏胧弛。R本人自食惡果不足惜尤误,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,471評(píng)論 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望结缚。 院中可真熱鬧损晤,春花似錦、人聲如沸红竭。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,017評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)茵宪。三九已至最冰,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間稀火,已是汗流浹背暖哨。 一陣腳步聲響...
    開封第一講書人閱讀 33,142評(píng)論 1 272
  • 我被黑心中介騙來泰國(guó)打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留凰狞,地道東北人篇裁。 一個(gè)月前我還...
    沈念sama閱讀 48,388評(píng)論 3 373
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像赡若,于是被迫代替她去往敵國(guó)和親达布。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,066評(píng)論 2 355

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