SeqGAN: Sequence Generative Adversarial Nets with Policy Gradient

這篇文章是在GAN的基礎上加入了pg策略,從而可以進行文本等離散數據的生成與處理。

看一遍文章倒是不需要多少時間,但是看代碼花費了大量時間。感覺有代碼的還是收穫要多一些。

GAN之所以無法對離散數據進行很好的生成,是因爲:離散輸出使得從d到g的梯度難以傳遞。(微小的變化引起的改變,可能沒有與之對應的標籤)。同時也只有當d得到一個完整的數據的時候,纔可以進行判斷。部分完成的無法給出評分。

這裏面處理數據的時候有一個問題,那麼就是不完整數據無法使用D進行評價,因此本文使用的是一種稍微妥協的方法。

我們根據已有狀態進行一個MCsearch隨後這個狀態去獲得一個結果,而假設一段文本具有L長度,那麼前L-1長度都需要進行這個MC search,最後一個L長度是完整的,最後在進行取平均值操作,就可以得到最後的結果。(如下)

對於G,有兩個損失函數,一種是有監督的,一種是無監督的,有監督的情況下,也就是傳入的數據爲positive的數據,那麼此時

我們直接從進行embedding,隨後直接算出每個數據在LSTM中出現的概率,直接最大化(概率*選擇的動作(onehot))即可。

無監督的情況下,最大的區別就是乘上了一個reward,也就是pg的部分了。

也就是pretrain G使用 MLE(maximum likelihood estimation)

評分也就是

 

下面是我看了源碼以後寫的筆記:

 

 

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章