pydial训练政策policy module

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_31214097/article/details/85055564

人机对话的过程可以看做是多轮对话的过程,在传统方式中,我们可以通过手写规则,来依据用户的输入来决定系统的输出是什么.

pydial提供了强化学习的环境..可以测试你自身的训练政策或者加载在你自己的系统中加载训练政策.

手写规则:

if global_summary['GLOBAL_BYCONSTRAINTS'] > 0.5 and global_summary['GLOBAL_COUNT80'] > 3:
    act = PolicyUtils.getGlobalAction(belief, 'INFORM_BYNAME', domainString=self.domainString)
elif global_summary['GLOBAL_BYALTERNATIVES'] > 0.5:
    act = PolicyUtils.getGlobalAction(belief, 'INFORM_ALTERNATIVES', domainString=self.domainString)
elif global_summary['GLOBAL_BYNAME'] > 0.5:
    act = PolicyUtils.getGlobalAction(belief, 'INFORM_REQUESTED', domainString=self.domainString , 
                                      bookinginfo=self.booking_slots_got_value_for)

在现实生活中,这种方法并不推荐使用.

在NLU的输出部分,是对应的由一个个槽和对应的槽值组成的槽值对,而每个槽值对都有一个置信状态,联合起来便成了置信区间.

在DM中,就需要根据NLU产生的置信区间部分和已训练好的用户决策算法,这里通常使用强化学习的相关算法,例如gpsara算法,来产生与用户动作相同的系统动作。供语言生成NLG使用。

pydial中的policy.py方法,是所有其余决策方法的基类.他有需要建立一个对话奖励模型的所有需要的公共方法.

其余基于强化学习的例如sara方法,都是基于其上进行强化学习政策训练的来进行的.

猜你喜欢

转载自blog.csdn.net/qq_31214097/article/details/85055564