我即将写一个基于强化学习的国际象棋引擎。 我想培训一个评估函数并找出董事会最重要特征的权重。
我不是机器学习的专家,我试图从书本和教程中学习。 在每个教程中,奖励都很简单,通常为1,0,也许是-1,但是在国际象棋中没有这样明显的奖励(不管校友的位置)。 例如,假设我在董事会有一个情况。 我做了10次(随机)移动,在这一点上,我应该计算奖励,起始位置和当前位置之间的差异(或错误)。 当我唯一的评估职能正在接受培训时,如何做这样的事情?
我想避免使用其他引擎的评分系统,因为我觉得这更像是监督学习,这不是我的目标。
你不能直接做到这一点。
我可以建议的几种方法:
使用来自外部源的评分并不差,至少可以启动你的算法。 算术评估一个给定的位置是相当有限的,虽然你的AI不会单独使用它来达到主水平。 探索使用另一个玩AI的国际象棋评估位置的可能性(理想的开放源代码)。 假设你有一个“老师”AI。 你开始2个实例并从你想评估的位置开始游戏。 让他们从那里对抗对方,直到比赛结束。 这一举措是否成功? 根据结果奖励你自己的AI。 为了增加一些可变性(你不希望比单个AI更好),对其他AI进行相同的操作。 甚至,你自己的AI对自己发挥作用。 对于后者而言,它可能需要在国际象棋中表现得体,而不是完全随机播放。 您可以多次重复同样的动作并完成游戏,让您的AI随机探索新的动作和策略(例如:尝试第二好的动作)。 使用真实玩家之间的游戏数据集喂养你的ML。 赢输球员的每一步棋都可以被“加强” 让你的AI通过与真正的玩家对抗来学习。 强化你的AI动作(失败和获胜)以及玩家的AI动作。
链接地址:
http://www.djcxy.com/p/14825.html
上一篇:
Training of chess evaluation function
下一篇:
Chess: Bug in Alpha