Generating Text with Deep Reinforcement Learning
Generating Text with Deep Reinforcement Learning主要思想就是多次循环生成,先生成简单的,然后难的。
Generating Text with Deep Reinforcement Learning
要用强化学习生成,更新公式可以由Bellman equation得到。这里文本生成,考虑到long range temporal dependencies和varying lengths,使用了LSTM。
Generating Text with Deep Reinforcement Learning
首先,是最基础的RNN结构,只有一个输入和隐层,两个权重,一个bias,最后sigmoid输出,收工结束。
Generating Text with Deep Reinforcement Learning
接下来是变形LSTM。除了隐含变量,增加了输入门,遗忘门,输出门和细胞结构。
Generating Text with Deep Reinforcement Learning
可以看到各个门的方式是一样,都是由输入和上一步隐含状态决定,细胞的更新由输入门和遗忘门一起确定,更新后的细胞经过输出门控制生成下一步的隐含状态。
Generating Text with Deep Reinforcement Learning
Generating Text with Deep Reinforcement Learning
主要分为两个大步骤,首先是训练一个一般意义上的解码器,第二步是训练Q-value Function。
Generating Text with Deep Reinforcement Learning
接下来重点就是第二步。
第二步首先输出解码器第一个单词。
后面的单词或者随机选择或者使用DQN来预测。
每次预测完了都要更新D.
最后根据计算的BLEU reward,如果分数达到阈值,说明句子预测完毕,否则继续对reward增加。
最后对DQN进行更新。
Generating Text with Deep Reinforcement Learning
整体流程结束了,会发现中间有一个D没有利用。
论文中有提到
Generating Text with Deep Reinforcement Learning
有个过拟合的问题,就是在训练当前序列的时候,训练的很好,当训练新的序列的时候,会预测不出来,可以使用D当中随机选择的transition tuple来更新DQN,来避免这种情况。

相关文章: