我正在尝试使用最小均方(LMS)规则的机器学习(Tom Mitchell的着名书籍Tic Tac Toe中提出的练习)来实现着名的Machine Learning游戏。
我让计算机通过与最佳对手进行对战来进行学习,然后选择最佳动作,然后对抗随机玩家。对于最佳对手,我的节目赢得了大约90%的比赛,并且在没有输掉比赛的情况下结束了其他比赛。对于一个随机的对手,它赢了大约83%,并且输掉了15%的比赛。
然而,当我对抗该计划时,我每次都使用相同的策略获胜。
以下是我的计划的运作方式:
*创建学习者和玩家(随机或最佳)
* while(游戏运行)
*生成转弯的所有可能状态,并使用最佳转弯
*保存最佳转弯
*浏览已保存的电路板并计算每个功能的值
*使用特征和当前权重计算董事会得分
*计算训练分数:
*如果最后一块板赢了:最后一块板的训练值== 100
*如果最后一块板丢失:最后一块板的训练值:-100
*使用LMS规则调整权重
我希望这种方法可以让电脑完美播放(大部分时间赢,否则打平)?我错了,或者我的训练方法有问题吗?
非常感谢在这个问题上使用的思想,想法,代码,船上功能建议。
答案 0 :(得分:2)
我在1968年至1969年在利哈伊(Lehigh)的高年级做了类似的计划,计算机在水上运行。 ;-)一个模块是最佳播放器,第二个模块是学习机器。在最好的情况下,学习机在极少数的训练游戏中实现了完美的发挥。为了使事情变得更有趣,我还插入了一个控件来实现"最佳"玩家以我能控制的速度发出随机错误。然后,我可以衡量学习率与智力的关系。培训合作伙伴(不再是最佳)。重要的是,尽管时间有点长,但学习机仍然成为最佳玩家。虽然这是一个微不足道的游戏,当人们沿着哲学路线扩展这个概念时,它确实表明计算机最终将变得比他们的教师更加智能化。"