SeqGAN:Sequence Generative Adversarial Nets with Policy Gradient

论文:SeqGAN
代码:Github

这篇paper主要介绍了GAN在文本生成上的应用。GAN在2014年被提出之后,在图像生成领域取得了广泛的研究应用。然后在文本领域却一直没有很惊艳的效果。主要在于文本数据是离散数据,而GAN在应用于离散数据时存在以下几个问题:

  • GAN的生成器梯度来源于判别器对于正负样本的判别。然而,对于文本生成问题,RNN输出的是一个概率序列,然后取argmax。这会导致生成器Loss不可导。还可以站在另一个角度理解,由于是argmax,所以参数更新一点点并不会改变argmax的结果,这也使得GAN不适合离散数据。
  • GAN只能评估整个序列的loss,但是无法评估半句话,或者是当前生成单词对后续结果好坏的影响。
  • 如果不加argmax,那么由于生成器生成的都是浮点数值,而ground truth都是one-hot encoding,那么判别器只要判别生成的结果是不是0/1序列组成的就可以了。这容易导致训练崩溃。

背景知识

什么是策略梯度下降?

对于监督学习算法,我们通常会使用梯度下降来进行优化。梯度下降算法计算损失函数的梯度需要首先计算标签与预测结果的loss。可是对于强化学习问题,根本不存在标签。我们只有通过不断的试错来实现优化。在强化学习中,每一个action都会有一个reward。整个算法就是需要最大化期望reward。对于最大化reward推导出来的公式,就是策略梯度下降算法。

什么是蒙特卡洛采样?

可以根据已知概率分布的函数产生服从此分布的样本X。具体原来可以查看30分钟了解蒙特卡洛采样

SeqGAN原理

整个算法在GAN的框架下,结合强化学习来做文本生成。 模型示意图如下:


1794530-50f67180b1518884.png
seqGAN模型

在文本生成任务,seqGAN相比较于普通GAN区别在以下几点:

  • 生成器不取argmax。
  • 每生成一个单词,则根据当前的词语序列进行蒙特卡洛采样生成完成的句子。然后将句子送入判别器计算reward。
  • 根据得到的reward进行策略梯度下降优化模型。
  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值