Q_learning在自然语言生成中的应用思考

来源:互联网 发布:微信公众号seo 编辑:程序博客网 时间:2024/06/10 02:06

Q_learning  from reinforcement learning

在学习Q_learning算法之前,我们需要了解一下,一个叫做时间差分学习的(temporal difference learning)思想。

它的迭代公式是:

其中是每个episode结束后获得的实际累积回报,α是学习率,这个式子的直观的理解就是用0实际累积回报作为状态值函数V()的估计值。具体做法是对每个episode,考察实验中的实际累积回报和当前估计V()的偏差值,并用该偏差值乘以学习率来更新得到V()的新估值。

Q_learning算法也是基于这种思想做出的设计。

Q_learning的算法流程如下:

初始化S
初始化Q(s,a),重复下面的步骤:(对于每一个episode)

选择一个A S 中 ,使用一个行为策略来自于Q

采取行动A,观察R,S

直到S是达到了指定的状态。

 

 

思考:

这里的S 是状态(环境),A是策略,R是奖励,是学习率,是衰减率。目标是达到预定的目标terminal。那么在生成任务中,S就是我们的语言环境,就是从问句开始去找我们的答句,对话中的问句就是我们的初始状态,那答句就是我们的目标,那么我们的agent就可以通过一步一步的去采取行动,一直到找到跟我们的答句更相似的位置为止。

如下图示:

 

 

箭头表示我们的action, reward根据我们的答句与问句之间的距离去评估,夹角大了,我们给予一个惩罚,如果夹角小了,我们给予一个奖励。

阅读全文
0 0
原创粉丝点击