SeqGAN:用pytorch实现用于文本生成的对抗神经网络

本文介绍了SeqGAN,一种利用强化学习解决离散空间文本生成的对抗网络。通过策略梯度方法,SeqGAN规避了GAN在处理离散样本时的难题。文中还概述了强化学习的基本概念,包括马尔科夫决策过程和Q-learning,并提供了SeqGAN的PyTorch实现,简化了原TensorFlow库的复杂性,以提高易用性和性能。
摘要由CSDN通过智能技术生成

GAN简介

生成对抗网络 Generative Adversarial Networks (GAN)的概念来自于2014年Ian Goodfellow et.al. 的论文

GAN属于无监督学习,由两个神经网络组成。生成器(generator)从潜在空间中随机获取样本,并与真实数据一起作为判别器(discriminator)的输入。判别器是一个经典分类器,作用是把真实数据和生成数据尽量分开。判别器对生成数据的判别结果会返回给生成器,训练生成器生成更多能够成功“骗过”判别器的数据。训练的最终目的是使生成样本的分布与真实数据达到一致,判别器完全不能区分真伪。

论文中把生成器和判别器的对抗描述为一个双人零和游戏:
在这里插入图片描述
其中D代表判别器Discriminator,G代表生成器Generator。D的目标是最大化entropy,G的目标是最小化 log(1-D(G(z)))。

GAN的设计要求生成器的输出是一个连续空间,否则D到G(z)的梯度无法指导G修正的方向。Goodfellow教授给出的更多解释在这里

由于这种限制,GAN虽然在图像生成应用中获得了巨大的成功,却很少用于离散空间的文本生成。

2016年Lantao Yu, et.al.发表的论文 SeqGAN: Sequence Generative Adversarial Nets with Policy Gradient尝试使用强化学习中的策略梯度(policy gradient)方法解决离散空间样本的对抗生成。

强化学习简介

已知状态State(S)和可能的行为Action(A),通过强化学习把状态映射到最佳行为,达到最大化某个特定奖励值reward®的目的。这是一个闭环系统,行为影响结果,同时结果会给下一次选择提供反馈。强化学习可以通过记忆解决一些反馈时间较长的问题。在这个闭环系统里不需要存在外部监督,也就是对于行为的选择可以完全来自于结果反馈。
在这里插入图片描述
有限马尔科夫决策链

对强化学习系统的数学建模依赖于马尔科夫链的属性

P r { S t + 1 = s ′ , R t + 1 = r ∣ S 0 , A 0 , R 1 , … , S t − 1 , A t − 1 , R t , S t , A t } = P r { S t + 1 = s ′ , R t + 1 = r ∣ S t , A t } ∀ s ′ , r , S 0 , A 0 , R 1 , … , S t − 1 , A t − 1 , R t , S t , A t Pr\big\{S_{t+1} = s^{\prime}, R_{t+1}=r \mid S_0, A_0, R_1, \dots, S_{t-1}, A_{t-1}, R_t, S_t, A_t\big\} = Pr\big\{S_{t+1} = s^{\prime}, R_{t+1}=r \mid S_t, A_t\big\} \quad \forall s^{\prime}, r, S_0, A_0, R_1, \dots, S_{t-1}, A_{t-1}, R_t, S_t, A_t Pr{ St+1=s,Rt+1=rS0,A0,R1,,St1,At1,Rt,St,At}=Pr{ St+1=s,Rt+1=rSt,At}s,r,S0,A0,R1,,St1,At1,Rt,St,At

任何一个马尔科夫状态都包含了它的历史状态的信息。这一点对于强化学习尤其重要,因为参数值和决策值默认只与当前状态有关。

由以上马尔科夫属性可以得出:

给定状态-行为对(s, a),得到下一个状态和当前行为的奖励(s’, r)的概率为

p ( s ′ , r ∣ s , a ) ≐ P r { S t + 1 = s ′ , R t + 1 = r ∣ S t = s , A t = a } p\big(s^{\prime}, r \mid s, a\big) \doteq Pr\big\{ S_{t+1} = s^{\prime}, R_{t+1}=r \mid S_t = s, A_t = a \big\} p(s,rs,a)Pr{ St+1=s,Rt+1=rSt=s,At

评论 39
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值