0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

GAN新手必讀:如何將將GAN應(yīng)用于NLP(論文筆記)

電子工程師 ? 來源:未知 ? 作者:佚名 ? 2017-11-22 09:43 ? 次閱讀

作者:MirandaYang

GAN 自從被提出以來,就廣受大家的關(guān)注,尤其是在計算機(jī)視覺領(lǐng)域引起了很大的反響?!吧疃冉庾x:GAN模型及其在2016年度的進(jìn)展”[1]一文對過去一年GAN的進(jìn)展做了詳細(xì)介紹,十分推薦學(xué)習(xí)GAN的新手們讀讀。這篇文章主要介紹GAN在NLP里的應(yīng)用(可以算是論文解讀或者論文筆記),并未涉及GAN的基本知識 (沒有GAN基礎(chǔ)知識的小伙伴推薦先看[1],由于本人比較懶,就不在這里贅述GAN的基本知識了J)。由于很長時間沒有寫中文文章了,請各位對文章中不準(zhǔn)確的地方多多包涵、指教。

雖然GAN在圖像生成上取得了很好的成績,GAN并沒有在自然語言處理(NLP)任務(wù)中取得讓人驚喜的成果。 其原因大概可以總結(jié)為如下幾點(diǎn):

  • 原始GAN主要應(yīng)用實(shí)數(shù)空間(連續(xù)型數(shù)據(jù))上,在生成離散數(shù)據(jù)(texts)這個問題上并不work。GAN 理論的提出者Ian Goodfellow 博士這樣回答來這個問題問題:“GANs 目前并沒有應(yīng)用到自然語言處理(NLP)中,最初的 GANs 僅僅定義在實(shí)數(shù)領(lǐng)域,GANs 通過訓(xùn)練出的生成器來產(chǎn)生合成數(shù)據(jù),然后在合成數(shù)據(jù)上運(yùn)行判別器,判別器的輸出梯度將會告訴你,如何通過略微改變合成數(shù)據(jù)而使其更加現(xiàn)實(shí)。一般來說只有在數(shù)據(jù)連續(xù)的情況下,你才可以略微改變合成的數(shù)據(jù),而如果數(shù)據(jù)是離散的,則不能簡單的通過改變合成數(shù)據(jù)例如,如果你輸出了一張圖片,其像素值是1.0,那么接下來你可以將這個值改為1.0001。如果輸出了一個單詞“penguin”,那么接下來就不能將其改變?yōu)椤皃enguin + .001”,因?yàn)闆]有“penguin +.001”這個單詞。 因?yàn)樗械淖匀徽Z言處理(NLP)的基礎(chǔ)都是離散值,如“單詞”、“字母”或者“音節(jié)”, NLP 中應(yīng)用 GANs是非常困難的。一般而言,采用增強(qiáng)學(xué)習(xí)算法。目前據(jù)我所知,還沒有人真正的開始研究利用增強(qiáng)算法解決 NLP 問題?!?/p>

  • 在生成text時,GAN對整個文本序列進(jìn)行建模打分。對于部分(partially)生成的序列,十分難判斷其在之后生成整個 (fully) 序列時的分?jǐn)?shù)。

  • 另一個潛在的挑戰(zhàn)涉及RNN的性質(zhì)(生成文本大多采用RNN模型)。假設(shè)我們試圖從latent codes生成文本,error就會隨著句子的長度成指數(shù)級的累積。最開始的幾個詞可能是相對合理的,但是句子質(zhì)量會隨著句子長度的增加而不斷變差。另外,句子的長度是從隨機(jī)的latent representation生成的,所以句子長度也是難以控制。

下面我將主要介紹和分析最近閱讀過的將GAN應(yīng)用于NLP中的一些論文:

1. Generating Text via Adversarial Training

  • 論文鏈接:

    http://people.duke.edu/~yz196/pdf/textgan/paper.pdf

  • 這是2016年的 NIPS GAN Workshop 上的一篇論文, 嘗試將 GAN 理論應(yīng)用到了文本生成任務(wù)上。 文中的方法比較簡單,具體可以總結(jié)為:

  • 以遞歸神經(jīng)網(wǎng)絡(luò)(LSTM)作為GAN的生成器(generator)。其中,用光滑近似(smooth approximation)的思路來逼近 LSTM 的輸出。結(jié)構(gòu)圖如下:

  • 本文的目標(biāo)函數(shù)和原始GAN有所不同,文中采用了feature matching的方法 。迭代優(yōu)化過程包含以下兩個步驟:

其中式 (6) 為標(biāo)準(zhǔn)GAN的優(yōu)化函數(shù),式 (7) 為feature matching的優(yōu)化函數(shù)。

  • 本文的初始化非常有意思,特別是在判別器的預(yù)訓(xùn)練方面,利用原始的句子和該句子中交換兩個詞的位置后得到的新句子進(jìn)行判別訓(xùn)練。(在初始化的過程中,運(yùn)用逐點(diǎn)分類損失函數(shù)對判別器進(jìn)行優(yōu)化)。這非常有意思,因?yàn)閷蓚€單詞互換位置,輸入的數(shù)據(jù)信息實(shí)際上是基本相同的。比如,大多數(shù)卷積計算最終會得出完全相同的值。

  • 本文生成器的更新頻率是判別器的更新頻率的5倍,這與原始GAN的設(shè)定恰好相反。這是因?yàn)長STM比CNN的參數(shù)更多,更難訓(xùn)練。

  • 然而,本文生成模型 (LSTM) decode階段有exposure bias問題,即在訓(xùn)練過程中逐漸用預(yù)測輸出替代實(shí)際輸出作為下一個詞的輸入。

2. SeqGAN: Sequence Generative Adversarial Nets with Policy Gradient

  • 論文鏈接:

    https://arxiv.org/pdf/1609.05473.pdf

  • 論文源碼:

    https://github.com/LantaoYu/SeqGAN

  • 文本將誤差作為一種增強(qiáng)學(xué)習(xí)的獎勵,以一種前饋的方式訓(xùn)練,用增強(qiáng)的學(xué)習(xí)的探索模式去更新G網(wǎng)絡(luò)。

  • 主要內(nèi)容:這篇論文將序列生成過程當(dāng)作一個sequential decision making過程。如下圖:

(a) 其中左圖為GAN網(wǎng)絡(luò)訓(xùn)練的步驟1,判別器D主要用來區(qū)分真實(shí)樣本和偽造樣本,這里的判別器D是用CNN來實(shí)現(xiàn)的。

(b) 右圖為GAN網(wǎng)絡(luò)訓(xùn)練的步驟2, 根據(jù)判別器D回傳的判別概率回傳給生成器G,通過增強(qiáng)學(xué)習(xí)的方法來更新生成器G,這里的的生成器G是用LSTM來實(shí)現(xiàn)的.

(c) 因?yàn)镚網(wǎng)絡(luò)的更新策略是增強(qiáng)學(xué)習(xí),增強(qiáng)學(xué)習(xí)的四個要素state, action, policy, reward分別為:state 為現(xiàn)在已經(jīng)生成的tokens (當(dāng)前timestep之前LSTM decoder的結(jié)果), action是下一個即將生成的token (當(dāng)前解碼詞), policy為GAN的生成器G網(wǎng)絡(luò),reward為GAN的判別器D網(wǎng)絡(luò)所生成的判別概率。其中,reward采用以下方法來近似:

本過程特點(diǎn):即當(dāng)解碼到t時,即對后面T-t個timestep采用蒙特卡洛搜索搜索出N條路徑,將這N條路徑分別和已經(jīng)decode的結(jié)果組成N條完整輸出,然后將D網(wǎng)絡(luò)對應(yīng)獎勵的平均值作為reward. 因?yàn)楫?dāng)t=T時無法再向后探索路徑,所以直接以完整decode結(jié)果的獎勵作為reward。

(d) 對于RL部分,本文采用了policy gradient方法。 根據(jù)policy gradient理論,生成器G的目標(biāo)函數(shù)可以表示如下:

求導(dǎo)結(jié)果為: (詳細(xì)推導(dǎo)過程請看原論文附頁)

(e) 每隔一段時間,當(dāng)生成更多的更逼真的句子后,重新訓(xùn)判別器D,其中判別器的目標(biāo)函數(shù)表示如下:

算法結(jié)構(gòu)圖可以表示為如下:

  • 實(shí)驗(yàn)

實(shí)驗(yàn)部分主要分為合成數(shù)據(jù)實(shí)驗(yàn)和現(xiàn)實(shí)數(shù)據(jù)實(shí)驗(yàn)。

(a) 合成數(shù)據(jù)實(shí)驗(yàn): 隨機(jī)初始一個LSTM生成器A,隨機(jī)生成一部分訓(xùn)練數(shù)據(jù),來訓(xùn)練各種生成模型.

評判標(biāo)準(zhǔn)為:負(fù)對數(shù)似然(交叉熵) NLL. 詳細(xì)實(shí)驗(yàn)設(shè)置可以參看原論文。

(b) 現(xiàn)實(shí)數(shù)據(jù)實(shí)驗(yàn):主要展示中文詩句生成,奧巴馬演講生成,音樂生成的結(jié)果。實(shí)驗(yàn)數(shù)據(jù)分別為中文詩歌數(shù)據(jù)集 (16,394首絕句),奧巴馬演講數(shù)據(jù)集 (11,092 段落), Nottingham音樂數(shù)據(jù)集 (695首歌)。評測方法為BLEU score, 實(shí)驗(yàn)結(jié)果如下:

文中并未展示模型生成的詩歌等, 具體效果如何?

3. Adversarial Learning for Neural Dialogue Generation

  • 論文鏈接:

    https://arxiv.org/pdf/1701.06547.pdf

  • 論文源碼:

    https://github.com/jiweil/Neural-Dialogue-Generation

  • 這篇論文是2017年1月26號上傳到arxiv上的,屬于最新的GAN用于NLP的論文。文中主要用對抗性訓(xùn)練 (adversarial training) 方法來進(jìn)行開放式對話生成 (open-domain dialogue generation)。文中把這項(xiàng)任務(wù)作為強(qiáng)化學(xué)習(xí)(RL)問題,聯(lián)合訓(xùn)練生成器和判別器。和SeqGAN一樣,本文也是使用判別器D的結(jié)果作為RL的reward部分,這個reward用來獎勵生成器G,推動生成器G產(chǎn)生的對話類似人類對話。

  • 總體來說,本文的思路和SeqGAN是大體一樣的,但是有幾處不同和改進(jìn)的地方:

(a) 因?yàn)楸疚氖怯糜陂_放式對話生成,所以文中的生成器采用seq2seq模型 (而非普通的LSTM模型)。 判別器則采用了hierarchical encoder (而非CNN)。

(b) 采取了兩種方法為完全生成或者部分生成的序列計算reward。除了 Monte Carlo search (與SeqGAN相似) 方法,本文新提出了一個能對部分生成的序列進(jìn)行reward計算的方法。使用所有完全 (fully) 和部分 (partially) 解碼的序列來訓(xùn)練判別器會造成overfitting。早期產(chǎn)生的部分(partially)序列會出現(xiàn)在許多的訓(xùn)練數(shù)據(jù)中,比如生成的第一個token y_1將會出現(xiàn)在所有的部分生成 (partially generated) 的序列里。所以本文提出僅僅分別從正(positive)序列 y+ 和負(fù)(negative)序列y-的每個子序列中隨機(jī)地選取一個 sample來訓(xùn)練判別器D。這個方法比Monte Carlo search更快速,但是也會使得判別器更弱,更不準(zhǔn)確。

(c) 在SeqGAN中,生成器只能間接的通過判別器生成的reward來獎勵或者懲罰自己所產(chǎn)生的序列。而不能直接從 gold-standard序列中直接獲取信息。 這種訓(xùn)練方式是脆弱的,一旦生成器在某個訓(xùn)練batch中變壞,判別器將會很容易對生成的句子進(jìn)行判斷 (比如reward為0 ),此時生成器就會迷失。生成器只知道現(xiàn)在生成的句子是壞的,但是并不知道如何調(diào)整才能使得生成的句子變好。為了解決這個問題,在生成器的更新過程中,本文輸入了human-generated responses。對于這些human-generated responses, 判別器可以將其reward設(shè)置為1。這樣生成器可以在上述情況下仍能生成好的responses。

(d) 訓(xùn)練過程中,有些針對dialogue system的設(shè)置(trick)。這部分內(nèi)容,讀者可以參考Jiwei Li之前的關(guān)于dialogue system的論文。

  • 部分實(shí)驗(yàn)結(jié)果:

  • 值得思考的地方:文中只嘗試用判別器的結(jié)果作為reward, 結(jié)合 原文作者之前在dialogue system文中提出的其他reward機(jī)制(e.g., mutual information)會不會提高效果?

4. GANs for sequence of discrete elements with the Gumbel-softmax distribution

  • 論文鏈接:

    https://arxiv.org/pdf/1611.04051.pdf

  • 相比前面兩篇論文,本文在處理離散數(shù)據(jù)這個問題上則比較簡單暴力。離散數(shù)據(jù) (用one-hot方法表示)一般可以從多項(xiàng)式采樣取得,例如由softmax函數(shù)的輸出p = softmax(h)。 根據(jù)之前的概率分布,以p的概率進(jìn)行采樣y的過程等價于:y=one_hot(argmax_i(h_i+g_i)) , 其中g(shù)_i是服從Gumbel distribution (with zero location and unit scale)。然而one_hot(argmax(.)) 是不可微分的。與原始GAN不同,作者提出了一種方法來近似上面的式子: y = softmax(1/ r (h + g))。這個公式是可以微分的。算法結(jié)構(gòu)如下:

  • 本文的實(shí)驗(yàn)部分做得比較粗糙,只展示了生成得context-free grammar, 并未在生成其他文本數(shù)據(jù)上做實(shí)驗(yàn)。

  • 總的來說,這篇論文本身方法還值得改進(jìn),也可以值得借鑒下。

5. Connecting generative adversarial network and actor-critic methods

  • 論文鏈接:

    https://arxiv.org/pdf/1610.01945.pdf

  • Actor-critic methods [2]: 許多RL方法 (e.g., policy gradient) 只作用于policy 或者 value function。Actor-critic方法則結(jié)合了policy-only和value function-only 的方法。 其中critic用來近似或者估計value function,actor 被稱為policy structure, 主要用來選擇action。Actor-critic是一個on-policy的學(xué)習(xí)過程。Critic模型的結(jié)果用來幫助提高actor policy的性能。

  • GAN和actor-critic具有許多相似之處。Actor-critic模型中的actor功能類似于GAN中的generator, 他們都是用來take an action or generate a sample。Actor-critic模型中的critic則類似于GAN中的discriminator, 主要用來評估 actor or generator 的輸出。具體的相同和不同點(diǎn),感興趣的朋友可以仔細(xì)閱讀原文。

  • 這篇論文主要貢獻(xiàn)在于從不同的角度來說明了GAN和actor-critic模型的相同與不同點(diǎn),從而鼓勵研究GAN的學(xué)者和研究actor-critic模型的學(xué)者合作研發(fā)出通用、穩(wěn)定、可擴(kuò)展的算法,或者從各自的研究中獲取靈感。

  • 最近Bahdanau等大神提出了用actor-critic模型來進(jìn)行sequence prediction [3]。雖然[3]中并沒有用到GAN,或許對各位能有啟發(fā)。 用類似的思想,GAN在sequence prediction上也許也能取得的比較好的效果?

[1] 深度解讀:GAN模型及其在2016年度的進(jìn)展

[2] Actor-Critic Algorithms

[3] An actor-critic algorithm for sequence prediction


聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • GaN
    GaN
    +關(guān)注

    關(guān)注

    19

    文章

    1885

    瀏覽量

    71124
  • nlp
    nlp
    +關(guān)注

    關(guān)注

    1

    文章

    481

    瀏覽量

    21935

原文標(biāo)題:干貨|GAN for NLP (論文筆記及解讀)

文章出處:【微信號:DatamingHacker,微信公眾號:深度學(xué)習(xí)與數(shù)據(jù)挖掘?qū)崙?zhàn)】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    GaN已為數(shù)字電源控制做好準(zhǔn)備

    更多是數(shù)字電源控制已準(zhǔn)備好迎接GaN。因此,隨著GaN繼續(xù)開發(fā),并應(yīng)用于高密度和高性能電源解決方案,我們不必等待開發(fā)控制器時要借助GaN帶給行業(yè)的優(yōu)勢。因此,這就是“準(zhǔn)備就緒”的含義:
    發(fā)表于 08-30 15:05

    GaN可靠性的測試

    客戶將把GaN用于電源轉(zhuǎn)換,因此,硬開關(guān)轉(zhuǎn)換是一個與應(yīng)用相關(guān)的基本事件。較之預(yù)燒板合格標(biāo)準(zhǔn),這產(chǎn)生了迥然不同的應(yīng)力,如白皮書中圖3、圖4所示。因此,我們已開發(fā)出一種符合JEDEC標(biāo)準(zhǔn)的測試工具(如圖1
    發(fā)表于 09-10 14:48

    基于GaN的開關(guān)器件

    。這些優(yōu)勢正是當(dāng)下高功耗高密度系統(tǒng)、服務(wù)器和計算機(jī)所需要的,可以說專家所預(yù)測的拐點(diǎn)已經(jīng)到來!時下,多個廠商正在大量的生產(chǎn)GaN器件,這些GaN器件正在被應(yīng)用于工業(yè)、商業(yè)甚至要求極為嚴(yán)格的汽車領(lǐng)域的電力
    發(fā)表于 06-21 08:27

    不同襯底風(fēng)格的GaN之間有什么區(qū)別?

    氮化鎵(GaN)這種寬帶隙材料將引領(lǐng)射頻功率器件新發(fā)展并將砷化鎵(GaAs)和LDMOS(橫向擴(kuò)散金屬氧化物半導(dǎo)體)器件變成昨日黃花?看到一些媒體文章、研究論文、分析報告和企業(yè)宣傳文檔后你當(dāng)然會這樣
    發(fā)表于 07-31 07:54

    SiC/GaN具有什么優(yōu)勢?

    基于SiC/GaN的新一代高密度功率轉(zhuǎn)換器SiC/GaN具有的優(yōu)勢
    發(fā)表于 03-10 08:26

    什么是GaN?如何面對GaN在測試方面的挑戰(zhàn)?

    什么是GaN?如何面對GaN在測試方面的挑戰(zhàn)?
    發(fā)表于 05-06 07:52

    GaN和SiC區(qū)別

    的主要原因。系統(tǒng)封裝配置有助于降低EMI,例如三維空間。利用多層PCB技術(shù)和表面貼裝技術(shù)(SMT)組件的布局。 可以使用導(dǎo)電材料的屏障來阻擋EMI。通常將此屏蔽應(yīng)用于外殼以將電氣設(shè)備與其周圍環(huán)境隔離
    發(fā)表于 08-12 09:42

    GaN在開關(guān)速度方面的優(yōu)勢

    價值的市場分析。很難弄明白GaN參與者在開發(fā)過程中所起的作用,因此這些更新信息僅供參考。市場分析結(jié)束后之后,我們接著討論了Ionel Dan Jitaru所做的一個電力轉(zhuǎn)換性能分析。我并沒有看出它與2013 APEC上提交的論文有多大區(qū)別,但
    發(fā)表于 11-16 08:05

    筆記本電腦認(rèn)識(新手必讀手冊)

    筆記本電腦認(rèn)識(新手必讀手冊)  眼下買筆記本的人是越來越多,這其中也不乏第一次接觸筆記本電腦的新手
    發(fā)表于 02-23 15:22 ?3373次閱讀

    光耦新手入門必讀下篇

    光耦新手入門必讀下篇
    發(fā)表于 07-21 10:08 ?1638次閱讀

    應(yīng)用于高密度電源設(shè)計的GaN半導(dǎo)體材料

    GaN產(chǎn)品應(yīng)用于可靠和高密度電源的設(shè)計
    的頭像 發(fā)表于 08-16 00:55 ?3009次閱讀

    必讀!生成對抗網(wǎng)絡(luò)GAN論文TOP 10

    這篇 GAN 論文來自 NVIDIA Research,提出以一種漸進(jìn)增大(progressive growing)的方式訓(xùn)練 GAN,通過使用逐漸增大的 GAN 網(wǎng)絡(luò)(稱為 PG-
    的頭像 發(fā)表于 03-20 09:02 ?6431次閱讀
    <b class='flag-5'>必讀</b>!生成對抗網(wǎng)絡(luò)<b class='flag-5'>GAN</b><b class='flag-5'>論文</b>TOP 10

    生成對抗網(wǎng)絡(luò)GAN論文TOP 10,幫助你理解最先進(jìn)技術(shù)的基礎(chǔ)

    這篇 GAN 論文來自 NVIDIA Research,提出以一種漸進(jìn)增大(progressive growing)的方式訓(xùn)練 GAN,通過使用逐漸增大的 GAN 網(wǎng)絡(luò)(稱為 PG-
    的頭像 發(fā)表于 03-20 15:16 ?8724次閱讀
    生成對抗網(wǎng)絡(luò)<b class='flag-5'>GAN</b><b class='flag-5'>論文</b>TOP 10,幫助你理解最先進(jìn)技術(shù)的基礎(chǔ)

    論文研究氮化鎵GaN功率集成技術(shù).zip

    論文研究氮化鎵GaN功率集成技術(shù)
    發(fā)表于 01-13 09:07 ?3次下載

    應(yīng)用于新一代電力電子的GaN相比于傳統(tǒng)的Silicon有何優(yōu)勢?

    GaN為何物?應(yīng)用于新一代電力電子的GaN相比于傳統(tǒng)的Silicon有何優(yōu)勢? GaN, 全名氮化鎵(Gallium Nitride),是一種半導(dǎo)體材料,被廣泛
    的頭像 發(fā)表于 11-07 10:21 ?467次閱讀