学习启发式权重有哪些有效的技巧?

时间:2013-12-08 05:17:30

标签: machine-learning artificial-intelligence heuristics minimax

我有一个minimax游戏程序,它将不同的启发式算法相加,为每个游戏状态返回一个值。我想实施学习。我希望程序能够学习每种启发式的权重。让程序学习每种启发式权重的最有效方法是什么?当然,它只会知道某个重量在尝试之后对某个启发式是否有效。是否是某种试错系统的唯一选择?

感谢您的帮助!

2 个答案:

答案 0 :(得分:1)

我在实践中并没有太多应用minimax - 但总的来说,它最好有一个内在的分数/善/差的衡量标准。第一步是尝试为您的游戏定义这样的分数 - 并将其作为为每个支持的游戏实现的界面公开。

  

是否是某种试错系统的唯一选择?

没有!遗传算法在这类事物中很受欢迎(至少在业余爱好者中),并且可以成功用于许多问题(给定足够的时间)。您可以在早期AI研究中找到与此相关的大量信息,尤其是与国际象棋程序相关的信息。

您可以在超参数优化中查找一些研究,以找到更多机器学习风格的方法。不幸的是,它并没有像它应该那样研究一个区域。

根据正在实施的游戏的具体情况/启发式的性质,有更多的可能性。

答案 1 :(得分:0)

强化学习(RL),特别是时间差异(TD)方法,处理非对抗性环境中启发式学习的学习权重。如何在游戏设置中学习启发式权重取决于您使用何种算法来玩游戏。算法的主要类别是alpha-beta minimax和UpperConfidenceTree。对于minimax,您可以在增加树的深度时查看树节点上值的更新。我建议首先了解RL-TD,然后阅读Joel Veness等人的Bootstrapping from Game Tree Search 。人