RL for Sentence Generation

本篇博文主要总结下台大教授李宏毅深度学习课程中关于 s e q G A N seqGAN seqGAN 的相关内容,并且添加了自己的一些思考。

Policy Gradient

众所周知,强化学习的目标就是 M a x i m i z i n g   E x p e c t e d   R e w a r d Maximizing\ Expected\ Reward Maximizing Expected Reward,在 s e q G A N seqGAN seqGAN 中,如下图:

这里写图片描述

上图中生成器是一个 s e q 2 s e q seq2seq seq2seq 的模型,判别器就是所谓的 H u m a m Humam Humam。那么不同的 e n c o d e r _ i n p u t   h encoder\_input\ h encoder_input h 能生成不同的 x x x,我们把 h , x h,x h,x 喂给判别器,让其进行评价评估,得到其 r e w a r d reward reward

我们的目标就是希望最大化的这个 M a x i m i z i n g   E x p e c t e d   R e w a r d Maximizing\ Expected\ Reward Maximizing Expected Reward
这里写图片描述

上面公式中的 ∑ p ( h ) \sum p(h) p(h) 可以理解为 e n c o d e r _ i n p u t encoder\_input encoder_input 的分布, p θ ( x ∣ h ) p_\theta (x|h) pθ(xh)表示在当前 e n c o d e r _ i n p u t encoder\_input encoder_input 下生成的所有 x x x 的分布,注意因为有随机性,相同的 h h h 不一定能生成相同的 x x x θ \theta θ s e q 2 s e q seq2seq seq2seq 的模型参数。我们的就是不断的最大化上面的 R θ R_{\theta} Rθ 来更新 θ \theta θ 然后更新生成器。

显然,我们可以将上式子理解成期望的形式:

这里写图片描述

因为不可能穷举所有的训练数据,故只能采用 s a m p l e sample sample 近似的方式

这里写图片描述

由此产生了一个问题,我们需要更新生成器的参数 θ \theta θ,如果采用 s a m p l e sample sample 的方式,则无法找到参数,参数是隐藏其中的,影响生成的 x x x

好,此时采用 p o l i c y   g r a d i e n t policy\ gradient policy gradient 的方法:
这里写图片描述

然后我们用已经求得的 R R R θ \theta θ 的导数,利用 g r a d i e n t _ a s c e n d gradient\_ascend gradient_ascend 来更新 θ \theta θ

这里写图片描述

显然:

  • R ( h i , x i ) R(h^i, x^i) R(hi,xi) 为正时,通过更新 θ \theta θ,更新后的 p ( x i ∣ h i ) p(x_i|h_i) p(xihi) 会增大。
  • R ( h i , x i ) R(h^i, x^i) R(hi,xi) 为负时,通过更新 θ \theta θ,更新后的 p ( x i ∣ h i ) p(x_i|h_i) p(xihi) 会减小。

经典的是 p o l i c y   g r a d i e n t policy\ gradient policy gradient M L E MLE MLE 的比较:

这里写图片描述

上面表格的总结非常精辟,强化学习的目标函数实际上就是MLE的每一项的前面加了个权重而已,这个权重就是 r e w a r d reward reward;并且在 M L E MLE MLE 的目标函数中,其 x x x t r u e   t a r g e t true\ target true target,而在 R L RL RL 中, x x x 为生成所生成的。(避免 b i a s   e x p o s u r e bias\ exposure bias exposure 问题)

在实际实现中,也很简单,在已知上面表格中的 R L RL RL 目标函数,利用深度学习框架即可自动的求导使其最大化。 也可以理解为只是在 M L E MLE MLE 的每一项前添加一个 r e w a r d reward reward 权重即可,至于 r e w a r d reward reward 如何得到,之前的博文中已讲过。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值