SeqGAN: Sequence GAN with Policy Gradient
來源: AAAI 2017
連結: ofollow,noindex"> https:// aaai.org/ocs/index.php/ AAAI/AAAI17/paper/view/14344
一.GAN 簡介
GAN 主要分為兩部分:生成模型和判別模型。生成模型的作用是模擬真實資料的分佈,判別模型的作用是判斷一個樣本是真實的樣本還是生成的樣本,GAN 的目標是訓練一個生成模型完美的擬合真實資料分佈使得判別模型無法區分。
最後的訓練目標為:

具體解釋為:
對於生成模型G ,它希望D 判別真實數x的概率低,判別生成資料G(z)的概率高,所以V(D,G)的值小;
對於判別模型D它希望判別真實資料x 的概率高,判別生成資料G(z) 的概率低,所以V(D,G) 的值大。
二.介紹
GAN在影象領域的應用較多,在文字方面效果不佳的原因主要是GAN 在生成連續離散序列時會遇到兩個問題:一是因為生成器的輸出是離散的,梯度更新從判別器傳到生成器比較困難;二是判別器只有當序列被完全生成後才能進行判斷,但此刻指導用處已不太大,而如果生成器生成序列的同時判別器來判斷,如何平衡當前序列的分數和未來序列的分數又是一個難題。
在這篇論文中,作者提出了一個序列生成模型——SeqGAN ,來解決上述這兩個問題。作者將生成器看作是強化學習中的stochastic policy,這樣SeqGAN 就可以直接通過gradient policy update 避免生成器中的可導問題。同時,判別器對整個序列的評分作為強化學習的獎勵訊號可以通過Monte Carlo 搜尋傳遞到序列生成的中間時刻。
具體來說,作者將生成器生成序列的過程看做是一個強化學習中的序列決策過程。生成模型被看作一個agent,目前為止已生成的序列表示當前state,下一個要生成的單詞則是採取的action,判別模型對序列的評價分數則是返回的reward。
三.模型

如上圖,左邊是判別器的訓練,通過輸入來自真實資料的正樣例和來自生成器生成的負樣例從而訓練,判別器由 CNN 組成;右邊是生成器的訓練,通過將判別器判別的概率回傳給生成器從而訓練,這裡使用了 Monte Carlo search 和 policy gradient 方法。
四.訓練方法
生成模型(policy) 的目標是最大化期望獎勵:

在這篇論文中,作者將判別器 判斷下一個時刻序列Y為真的概率作為獎勵:

這裡會通過用 Monte Carlo 搜尋 對剩下的T-t個未知單詞進行取樣,進行 N 次Monte Carlo 搜尋之後,我們將得到一個 batch 為 N 的輸出樣例。因此:

使用判別器 作為獎勵函式的好處在於獎勵值可以動態地更新從而迴圈地改進生成模型的效果。論文中指出,每當我們生成許多與真實資料相像的序列,我們就要重新訓練一次判別器;
每當重新訓練得到新的判別器之後就可以更新生成器。文中採用的是 policy gradient 的方法,式(1)關於生成器中引數 的梯度為:

四.實驗
資料集:中國詩歌和Barack Obama political speeches和音樂生成
評價標準:人工評給價和BLEU
結果:

五.總結
1.用強化學習的思想解決是文字資訊離散變化不可導的問題,很好的將GAN應用到了文字生成中去;
2.與之前的baseline相比,提升較高,但是生成器和判別器依賴多輪的與訓練,整體的訓練難度較大;