SeqGAN学习笔记(二)

2020-02-10  本文已影响0人  p_w

GAN应用在图像领域取得了巨大的成功,然而在离散序列生成领域尤其是NLP领域却遇到了困难,原因在于判别器的判断信号难以“传回”生成器。
首先,我们回顾一下在使用MLE训练生成器时:


RNN作为生成器

如上图所示,每一个预测出的词都与真实值做对比计算loss,再加起来作为最终的loss,计算梯度,指导生成器的调参。然而,在GAN网络中,判别器只给出“真”和“假”也就是0和1,在这种情况下,判别器只能指导生成器略微(slightly change)的调参(目前这么理解,不知道是否正确)。这种情况对使用连续值表示的图像是可以的,然而文本都是离散值,slightly change很难影响Sampling的结果,例如:
生成器生成了一个token的vector:[0.1, 0.33, 0.57],sample之后对应的one-hot vector是[0, 0, 1],对应的词是“我”。然而生成器进行slightly change之后再生成的vector是:[0.11, 0.35, 0.54],sample之后的结果仍然是[0, 0, 1],对应的词是“我”。
以上情况就是将GAN应用在离散数据中的困境。
SeqGAN的作者在进行参考后,选择使用强化学习中的policy gradient来解决这个问题。policy gradient有大牛的文章解释的很清楚,可以搜索参考。

上一篇下一篇

猜你喜欢

热点阅读