我想为一场连续四场的简单比赛建立一个AI对手。但是,我并不只是想创造一个完美的球员,这对人类来说相当无聊。相反,我希望有一个几乎从零开始的人工智能,并随着时间的推移学习游戏。
我所知道的唯一方法是人工神经网络。然而,似乎这些通常需要有监督的学习。此外,例如,this document表示人工智能在大约20k游戏之后才会成为一个完美的玩家 - 对于一个人来说有点太多了。
因此我想知道:是否有可能在一个简单的游戏中合理使用学习AI?是否有任何合适的替代方案或扩展神经网络来完成这项工作?
答案 0 :(得分:5)
我不知道任何算法或技术可以让计算机在与人类相同的时间范围内学习游戏。但是当我们谈论时间尺度时,我们必须要小心。
例如,有一种由Fogel和Chellapilla开发的技术,它可以相互发挥一堆随机生成的神经网络,然后使用遗传算法根据结果创建新的更好的神经网络。这最初是用跳棋完成的,但适用于许多游戏。这项技术至少消除了人类训练的负担 - 网络正在与自己对抗。但这学的速度有多快? Fogel和Chellapilla在大约250代的棋盘上获得了高质量的成绩(A级表现,刚刚被评为专家级)......但是每一代的比赛包括大约150个单独的比赛,总共约37,000场比赛。如果你每天玩一个游戏,你需要100年才能玩这么多游戏。也许在那个级别上玩的人已经玩了十年一天的十场比赛,但这似乎......不太可能。所以在这个意义上,比人类慢。另一方面,一台好的笔记本电脑可能在一周内播放许多游戏,这是人类无法做到的。
因此,如果你正在寻找一个训练程序,人类将能够以合理的规模训练和感知性能提升......我知道今天没有什么可以做到的。 (这是有道理的 - 我们最好的超级计算机仍然没有人类大脑的原始处理能力,而且我们还没有设计利用这么多功能的算法。)
如果你只是在寻找一个不完美的人工智能,你可能会尝试一种像Fogel和Chellapilla这样的技术,而不是采用最终的,接近专家评级的结果,只需从跑步中途采取一些东西,或者某事从上一代但不是最好的结果。
答案 1 :(得分:0)
您可能希望查看名为“General Game Playing”的字段。重点是学习玩电脑以前从未见过的游戏。该算法以明确定义的格式传递游戏规则,并且必须学会从头开始玩。
最先进的技术几乎总是包含某种蒙特卡罗模拟,其中系统在模拟中对抗自身数以千计的游戏,因为它同时播放针对人类或其他正在测量的程序的“真实”游戏