1. 程式人生 > >生成模型--GAN與NLP

生成模型--GAN與NLP

GAN與NLP

  GAN是否可以應用到NLP上?   Yoshua Bengio 的得意門生 Ian Goodfellow 博士回答了這個問題:   GANs 目前並沒有應用到自然語言處理(NLP)中,因為 GANs 僅僅定義在真值資料中,GANs 通過訓練出的生成器來產生合成數據,然後在合成數據上執行判別器,判別器的輸出梯度將會告訴你,如何通過略微改變合成數據而使其更加現實。   只有在資料連續(輸入連續)的情況下,你才可以略微改變合成的資料,而如果資料是離散的,絕對不可以改變合成數據,一點都不可以。   例如,如果你輸出了一張圖片,其畫素值是1.0,那麼接下來你可以將這個值改為1.0001。如果你輸出了一個單詞“penguin”,那麼接下來就不能將其改變為“penguin + .001”,因為沒有“penguin +.001”這個單詞。如果想改的話,你必須將“penguin”變為“ostrich”或其他。因為所有的自然語言處理(NLP)的基礎都是離散值,如“單詞”、“字母”或者“音節”,沒有人真正知道怎樣才能在 NLP 中應用 GANs。"

  我看到有人說, GANs 在遞迴神經網路(RNN)方面並不奏效。這是不對的。從理論上來看,GANs 和 RNN 的生成器或判別器之間,並沒有什麼矛盾。但是,對於這一點,目前並沒有人嚴肅而又認真的測試過。因此,在實際應用中還是存在一定的困難的。

生成文字的話,用VAE就行

  VAEs 對可見的離散單元是有效的,但是對隱藏的離散單元卻並不奏效(除非你在運用增強演算法,比如 DARN 或者 NVIL)。而另一方面,GANs 對隱藏的離散單元奏效,對可見的離散單元卻並不奏效(從理論上來講,除非是運用增強演算法)。因此,這兩種方法可以說是各有利弊,相輔相成。