系列总结:Sequence Generation via GAN

上海交大SeqGAN系列工作之一。

一、SeqGAN: Sequence Generative Adversarial  Nets with Policy Gradient

LSTM generator + CNN discriminator + policy gradient where action-value function is estimated via Monte-Carlo search。

系列总结:Sequence Generation via GAN_第1张图片

 1、Model details

Generator就是一个LSTM language model。

Discriminator是标准的CNN text classifier, concat embedding + conv + max-over-time pooling and concat + highway + fc + sigmoid。(SeqGAN的D的常规操作)

 

2、Synthetic Data Experiments

使用一个random initialized LSTM作为oracle,即Pdata 的generator。这样有一个好处,即可以衡量generate出来的样本在真实Pdata中的概率。其实这才是生成模型真正的标准……通过MLE去提高模型参数下真实样本出现的概率(即从pg中sample到这个real case的概率,即似然概率,即p(real case| θg)),来希望优化真正的目标:生成的样本在真实数据分布pdata中的概率越高越好(即p(gen case| θdata)。所以这里提出了NLL检验(注意,只有在对sequence generation做出conditional lm建模的时候才好求解这玩意;反而在图像等领域不好建模搞这个。)

3、 experiment details

训练过程:这里的g-step就是一个epoch,d-step就是k个epoch。这里与Ian的分析一致,given G,要将D训练到收敛,这个时候G的objective才是approximated KL-divergence。

不过注意negative sampling的细节:因为负样本是generator生成的,正样本是从real data中sample出来的,这里提出在每一个训练discriminator的epoch中使用同一组正样本和不同组负样本。

And to reduce the variability of the estimation, we use different sets of negative samples combined with positive ones, which is similar to bootstrapping.

But actually we can utilize the potentially unlimited number of negative examples to improve the discriminator. This trick can be considered as a type of bootstrapping, where we combine the fixed positive examples with different negative examples to obtain multiple training sets.

系列总结:Sequence Generation via GAN_第2张图片

下面是NLL曲线。和其他adversarial training framework类比,这里也是MLEpretrain以后改用policy gradient based method来继续训练。基于RL的方法还是可以继续降低validaition/test的ppl/loss/...

系列总结:Sequence Generation via GAN_第3张图片

二、CoT: Cooperative Training for Generative Modeling of Discrete Data

 

你可能感兴趣的:(系列总结:Sequence Generation via GAN)