搜索,游戏和解决问题:启发式评估函数

点击打开微信,马上办理ETC

我们如何为搜索任务找到一个好的启发式评估函数?这里基本上有两种方法。经典方式使用人类专家的知识。知识工程师通常需要以计算机程序的形式将专家的隐性知识形式化。我们现在想要展示如何在国际象棋程序示例中简化此过程。

在第一步中,专家们被问及选择行动中最重要的因素。然后尝试量化这些因素。我们获得了相关特征或属性的列表。然后将这些(在最简单的情况下)组合成

1.   启发式评估函数107

图片

位置的线性评估函数Bs,可能看起来像:

Bs = a 1材料 + a 2pawn_ structure + a 3king_safety

+ a 4knight_in_center + a 5bishop_diagonal_coverage +・・・ 6.3)其中材料是迄今为止最重要的特征,并由

material = materialown_team材料(对手)

 

材料(团队)= num_pawns(团队) 100 + num_knights(团队) 300

+ num_bishops(团队)300 + num_rooks(团队)500

+ num_queens(团队)900

几乎所有国际象棋程序都对材料进行类似的评估。但是,所有其他功能都有很大差异,我们不会在这里讨论[Fra05Lar00]

在下一步中,必须确定所有特征的权重ai。这些是在与专家讨论后直观设置的,然后在每次游戏后根据积极和消极的经验进行更改。事实上,这种优化过程非常昂贵,而且特征的线性组合非常有限,这表明机器学习的使用。

 

6.5.1启发式学习

我们现在想要从(6. 3)自动优化评估函数Bs的权重ai。在这种方法中,仅询问专家关于游戏状态相关特征f 1 s),fns。然后使用机器学习过程,目的是找到尽可能接近最优的评估函数。我们从初始预设评估函数(由学习过程确定)开始,然后让国际象棋程序播放。在游戏结束时,评级来自结果(胜利,失败或平局)。基于该评级,评估功能被改变,目的是在下次减少错误。原则上,开发人员所做的同样的事情现在由学习过程自动处理。

听起来很简单,实际上很难。目前,基于赢或输的比赛提高排名等级的核心问题是信用分配问题。事实上我们确实在游戏结束时有一个评级,但没有对个人动作的评分。因此,代理执行许多操作,但直到最后才收到任何正面或负面反馈。那么它应该如何将这些反馈分配给过去采取的许多行动呢?在这种情况下,它应该如何改进其行动?激动人心的年轻强化学习领域关注这些问题(见第10节)。

当今世界上大多数最好的国际象棋计算机仍然没有机器学习技术。有两个原因。一方面,到目前为止开发的强化学习算法在给定大状态空间的情况下需要大量的计算时间。另一方面,手动创建的高性能国际象棋计算机的启发式已经大大优化。这意味着只有非常好的学习系统才能带来改进。在接下来的十年中,当学习计算机成为世界冠军时,大概就会到来。

 

图片


 

点击打开微信,马上办理ETC


意见反馈

发表评论