1700540730
.
1700540731
1700540732
(13.38)
1700540733
1700540734
总奖励期望为:
1700540735
1700540736
1700540737
.
1700540738
1700540739
(13.39)
1700540740
1700540741
上式包含了各序列前缀的状态下策略,以及一个最终的奖励。如果对此式做优化,序列每增加一个长度,计算复杂度将呈指数上升。我们不这么干,利用前后状态下动作值函数的递归关系:
1700540742
1700540743
1700540744
.
1700540745
1700540746
(13.40)
1700540747
1700540748
1700540749
1700540750
将序列末端的转换为序列初端的,得到一个简化的生成器优化目标:
1700540751
1700540752
1700540753
.
1700540754
1700540755
(13.41)
1700540756
1700540757
该优化目标的含义是,在起始状态s0下根据策略选择第一个词y1,并在之后依旧根据这个策略选词,总体可得奖励的期望。此时序列末端的奖励成了序列初端的长期奖励。
1700540758
1700540759
1700540760
1700540761
1700540762
图13.19 SeqGAN示意图
1700540763
1700540764
问题3 有了生成器的优化目标,怎样求解它对生成器参数的梯度?
1700540765
1700540766
难度:★★★★★
1700540767
1700540768
分析与解答
1700540769
1700540770
1700540771
1700540772
1700540773
1700540774
1700540775
1700540776
1700540777
1700540778
我们已有目标函数J(θ),现在对它求梯度。此优化目标是一个求和,里面包含两项:策略Gθ和动作值函数Qθ,它们都含参数θ,根据求导法则,免不了求和。与IRGAN不同,IRGAN中也有两项:策略和即时奖励,但它没有长期奖励,不用计算动作值函数,而且即时奖励不依赖于策略,也就与参数θ无关,只需求策略对θ的梯度。但是在SeqGAN里,策略对θ的梯度和动作值函数对θ的梯度都要求。这里是一个概率函数,计算不难,但是呢?如何计算?
1700540779
[
上一页 ]
[ :1.70054073e+09 ]
[
下一页 ]