1700540680
1700540681
(13.33)
1700540682
1700540683
1700540684
这需要有一份真实数据集,表示数据集中第i个句子,生成器要最大化生成它们的总概率。从数据集到句子,可假设句子独立同分布,但是从句子到词,词与词在一句话内有强依赖性,不能假定它们相互独立,必须依链式法则做概率分解,最终得到:
1700540685
1700540686
1700540687
,
1700540688
1700540689
(13.34)
1700540690
1700540691
转变为最大化一个个对数条件概率之和。
1700540692
1700540693
GANs框架下,生成器的优化目标不再是一个可拆解的联合概率,在与判别器的博弈中,以假乱真欺骗判别器才是生成器的目标。判别器的评判针对一个完整句子,生成器欲知判别器的打分,必须送上整句话,不能在生成一半时就拿到判别器打分,故不能像最大似然估计那样拆解目标式,转为每个词的优化。而且,训练生成器时,也要训练判别器,对二者的训练交替进行。固定判别器,生成器的优化目标为:
1700540694
1700540695
1700540696
.
1700540697
1700540698
(13.35)
1700540699
1700540700
表面上看,这与原GANs中生成器的优化目标一样,问题在于生成器输出的是离散样本,一个由离散词组成的离散句子,不像原GANs中生成图片,每个像素都是一个连续值。原GANs用重参数化技巧构造生成器,直接对采样过程建模,不去显性刻画样本概率分布。
1700540701
1700540702
1700540703
1700540704
1700540705
上一节的IRGAN,生成器生成文档序号d这类离散数据,不能用原GANs的重参数化技巧。离散数据的特性,让我们无法求解目标函数对d、d对生成器参数θ的梯度。而且,期望的下脚标里包含参数θ,需对期望求梯度,不得不显式写出概率函数。
1700540706
1700540707
1700540708
1700540709
在SeqGAN中,生成器生成的文本序列更离散,序列每个元素都是离散的,如图13.19所示。联想强化学习理论,可把生成序列的过程看成是一连串动作,每步动作是挑选一个词,即动作at=yt,每步状态为已挑选词组成的序列前缀,即状态,最后一步动作后得到整个序列。接着,判别器收到一个完整句子,判断是真是假并打分,这个分数就是生成器的奖励。训练生成器就是要最大化奖励期望,优化目标为:
1700540710
1700540711
1700540712
,
1700540713
1700540714
(13.36)
1700540715
1700540716
或梯度增强版的
1700540717
1700540718
1700540719
,
1700540720
1700540721
(13.37)
1700540722
1700540723
1700540724
其中就是生成器的奖励。
1700540725
1700540726
1700540727
强化学习里有两个重要概念,策略和动作值函数。前者记,表示状态s下选择动作a的概率,体现模型根据状态做决策的能力;后者记Qθ(s,a),表示状态s下做动作a后,根据策略Gθ完成后续动作获得的总奖励期望。结合本例,前T−1个词已选的状态下选第T个词的Qθ(s,a)为:
1700540728
1700540729
[
上一页 ]
[ :1.70054068e+09 ]
[
下一页 ]