我想为简单的四连胜游戏构建一个人工智能对手。然而,我并不想简单地创建一个完美的播放器,这对于人类来说会相当无聊。相反,我希望拥有一个几乎从零开始并随着时间的推移学习游戏的人工智能。
我所知道的唯一方法是人工神经网络。然而,似乎这些通常需要监督学习。另外,this document例如,指出人工智能只有在大约 2 万场比赛后才接近成为一名完美的球员——这对于人类来说有点太多了。
因此我想知道:是否可以在一个简单的游戏中合理利用学习型AI?神经网络是否有任何合适的替代方案或扩展来完成这项工作?
最佳答案
我不知道有什么算法或技术可以让计算机在与人类相同的时间尺度上学习游戏。但当我们谈论时间尺度时,我们必须小心。
例如,Fogel 和 Chellapilla 开发了一种技术,它可以让一堆随机生成的神经网络相互对抗,然后使用遗传算法根据结果创建新的、更好的神经网络。这最初是通过跳棋完成的,但适用于许多游戏。该技术至少消除了人类训练的负担——网络正在与自己较量。
但是它的学习速度有多快? Fogel 和 Chellapilla 仅在大约 250 代的跳棋比赛中取得了良好的质量成绩(A 级表现,略低于专家级别)……但每一代的锦标赛都包括大约 150 场单独的比赛,总共大约 37,000 场比赛。如果你一天玩一款游戏,那么你需要 100 年才能玩那么多游戏。也许达到那个水平的人十年来每天都打十场比赛,但这似乎……不太可能。所以从这个意义上说,比人类慢。另一方面,一台好的笔记本电脑可能可以在一周内玩那么多游戏,这是人类做不到的。
因此,如果您正在寻找一种训练程序,使人类能够以合理的规模进行训练并感知表现的提高……我目前还不知道有什么可以做到这一点。 (这是有道理的——我们最好的 super 计算机仍然不具备人脑的原始处理能力,而且我们还没有设计出能够利用如此强大能力的算法。)
如果你只是在寻找一个不完美的人工智能,你可以尝试像福格尔和切拉皮拉这样的技术,而不是获取最终的、接近专家评级的结果,只需从运行的中途获取一些东西,或者其他东西来自上一代,但不是最好的结果。
关于machine-learning - 学习型人工智能作为游戏中的对手有意义吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10667297/