RL for Sentence Generation
本篇博文主要总结下台大教授李宏毅深度学习课程中关于 的相关内容,并且添加了自己的一些思考。
Policy Gradient
众所周知,强化学习的目标就是,在 中,如下图:
上图中生成器是一个 的模型,判别器就是所谓的。那么不同的 能生成不同的,我们把 喂给判别器,让其进行评价评估,得到其 。
我们的目标就是希望最大化的这个
上面公式中的 可以理解为 的分布,表示在当前 下生成的所有 的分布,注意因为有随机性,相同的 不一定能生成相同的。 是 的模型参数。我们的就是不断的最大化上面的 来更新 然后更新生成器。
显然,我们可以将上式子理解成期望的形式:
因为不可能穷举所有的训练数据,故只能采用 近似的方式
由此产生了一个问题,我们需要更新生成器的参数,如果采用 的方式,则无法找到参数,参数是隐藏其中的,影响生成的。
好,此时采用 的方法:
然后我们用已经求得的 对 的导数,利用 来更新。
显然:
- 当 为正时,通过更新,更新后的 会增大。
- 当 为负时,通过更新,更新后的 会减小。
经典的是 与 的比较:
上面表格的总结非常精辟,强化学习的目标函数实际上就是MLE的每一项的前面加了个权重而已,这个权重就是;并且在 的目标函数中,其 为,而在 中, 为生成所生成的。(避免 问题)
在实际实现中,也很简单,在已知上面表格中的 目标函数,利用深度学习框架即可自动的求导使其最大化。 也可以理解为只是在 的每一项前添加一个 权重即可,至于 如何得到,之前的博文中已讲过。