首页 理论教育 从经验里学习启发函数

从经验里学习启发函数

时间:2022-02-11 理论教育 版权反馈
【摘要】:启发函数h是用来估计从节点n出发的解耗散的。另一个方案是从经验里学习。例如,“经验”在这里意味着求解大量的八数码游戏。从这些例子中,一个归纳学习算法可以用于构造能够(有运气)预测搜索过程中所出现的其它状态的解消耗的函数h。我们会发现当x1是5的时候,平均解耗散约为14,等等。由这些数据, x1的值可以用来预测 h。如何将x1和x2结合起来预测h?

启发函数h(n)是用来估计从节点n出发的解耗散的。智能体如何才能构造这样的一个函数?一个方案已经在上一节中给出——即设计一个很容易找到最优解的松弛问题。另一个方案是从经验里学习。例如,“经验”在这里意味着求解大量的八数码游戏。每个八数码游戏的最优解都提供了可学习h(n)的实例。每个实例都包括解路径上的一个状态和从这个状态到达解的耗散。从这些例子中,一个归纳学习算法可以用于构造能够(有运气)预测搜索过程中所出现的其它状态的解消耗的函数h(n)。用神经元网络、决策树还有其它一些方法完成这项工作的技术将在第十八章中介绍。(第二十一章中描述的强化学习方法也是可行的。)

归纳学习方法在提供了与其评价相关的状态特征的情况下是最可行的,比使用未加工的状态描述好。例如,特征“不在位的棋子数”对于预测从一个状态到目标状态的真实距离是有用的。我们称之为特征 x1(n)。我们可以选取 100 个随机产生的八数码游戏布局,收集它们实际的解消耗的统计数据。我们会发现当x1(n)是5的时候,平均解耗散约为14,等等。由这些数据, x1的值可以用来预测 h(n)。当然,我们可以使用多个特征。第二个特征 x2(n)可以是“现在相邻并且在目标状态中也相邻的棋子对数”。如何将x1和x2结合起来预测h(n)?通常的方法是使用线性组合:

h(n) = c1x1(n)+c2x2(n)。

常数c1和c2用来调整结果,以最符合解耗散的实际数据。可假定c1是正数,c2是负数。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈