SeqGAN: Sequence Generative Adversarial Nets with Policy Gradient

GAN作为生成模型的一种新型训练方法,通过discriminative model来指导generative model的训练,并在真实数据中取得了很好的效果。尽管如此,当目标是一个待生成的非连续性序列时,该方法就会表现出其局限性。其中最重要的原因是在非连续序列中很难传递来自discriminative model对于generative model的gradient update。另外,discriminative model 只能评估整条序列,一旦整条序列生成,就不能够去细分当前分数和未来分数。该paper中,我们提出了一个成为SeqGAN的序列生成框架以解决上述问题。该框架将数据生成器视为一个reinforcement learning中的stochastic policy,SeqGAN通过直接执行gradient policy update来绕过generator的非连续性问题。RL reward来自GAN中discriminative model对整个Sequence的评估,并通过Monte Carlo Search将RL reward反馈到中间层的state-action steps。通过synthetic data和real-world task的大量实验证明,该方法有明显的效果。

在非监督学习中,通过生成合成的序列来模仿真序列是一个非常重要的难题。最近LSTM在语言序列的生成中表现优异。最一般的方法是通过MLE(最大似然估计)来训练RNN。但这种maximum likelihood方法在推理阶段面临着一种称为“exposure bias”的问题,该模型在迭代生成序列中,是根据它前面已生成的部分来预测下一个token的生成,但前面的已生成部分也许并不存在于训练集中。这种在training和inference间的差异会在序列的生成中不断积累,并变得越加突出。为了解决这种问题,后人提出了一种称为scheduled sampling(SS)的训练策略。即在训练阶段,generative model会被部分喂入自身生成的数据而不是真实数据作为前置条件。然后这种策略是有问题的,且没有从根本上解决问题。在training和inference间差异的解决中,还可以在整个序列的生成中建立一个loss function。例如可以在机器翻译中使用BLEU评估方法来指导Sequence的generation,但在诗歌生成、对话生成的任务中,无法给出一个准确值进行评估。

General adversarial net(GAN)由Goodfellow提出,对于解决上述问题中,是一个很有前途的framework,且GAN已经成功应用于计算机视觉任务中。
不幸的是,GAN应用于Sequence面临着两个问题:问题1,GAN的设计初衷是用来能够生成连续的真实数据,但文本序列是非连续的。因为在GAN中,Generator是通过随机抽样作为开始,然后根据模型的参数进行确定性的转化。通过generative model G的输出,discriminative model D算得损失值,根据得到的损失梯度去指导generative model G做轻微改变,从而使G产生更加真实的数据。如果生成的数据是非连续的序列,那么这种来自D的“slight change”指导将变得几乎没有意义。因为在有限的Dictionary中,这种slight change没有相应的token。问题2,GAN只能评估出整个生成序列的score/loss,不能够细化到去评估当前生成token的好坏和对后面生成的影响。

该论文中,为了解决上述两个问题,我们参考了(Bachman and Precup 2015; Bahdanau et al. 2016),并且将序列生成处理视为序列决策处理。生产模型视为reinforcement learning中的agent;state是目前生成的tokens,action是下一个token的生成。而reward的计算我们使用了一个discriminator来评估生成的序列,并将评估分数反馈,用来指导生成模型的学习。因为输出是离散的,梯度值不能返回到生成模型,为了解决这个问题,我们将生成模型视为一个随机参数化策略。在我们的policy gradient中,我们通过Monte Carlo(MC)search来优化state-action值。我们通过policy gradient直接训练policy(generative model)。

这里写图片描述
这里写图片描述
这里写图片描述
这里写图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值