AI超越人类!让它学会玩Flappy Bird

Find AI Tools in second

Find AI Tools
No difficulty
No complicated process
Find ai tools

AI超越人类!让它学会玩Flappy Bird

目录

  1. Flappy Bird AI的简介
  2. 游戏背景和AI训练过程
  3. 使用Unity的机器学习进行训练
  4. 游戏设计和机器学习配置
  5. 通过不同难度级别进行渐进式学习
  6. 外部Build的训练和运行
  7. 结果展示与分析
  8. 机器学习的实际应用
  9. 结论
  10. 延伸阅读和资源

Flappy Bird AI:用机器学习训练AI玩游戏的实例

Flappy Bird是一款简单但富有挑战性的游戏,现在我要尝试构建一个AI来超越我的最高分,并达到超越人类的水平。在Unity中使用机器学习,实际上是非常简单的。尽管训练过程中会遇到一些有趣的问题,但总的来说很简单。

在这个项目中,我创建了一个完整的游戏,完全是从头开始制作的。你可以按下按钮跳跃,每穿过一对管子获得一分。随着时间的推移,管子之间的间隙变小,管子的高度变得越来越随机,使游戏变得更加困难。

为了实现完美的游戏表现,我使用Unity的ML-Agents工具包来训练AI的脑模型。如果你对这个工具包不熟悉,可以观看我之前的入门指南视频。一旦你了解了基础知识,使用Unity进行机器学习非常简单易用。

在训练AI之前,我们首先需要设定一个良好的训练环境,以便让AI能够学习。因此,我们需要确定AI需要了解什么以及它需要采取什么样的行动来完成任务。

Flappy Bird是一个相当简单的游戏,只有一个动作,即跳跃。添加动作非常简单,只需要将动作设置为离散型,有两个可能的值:跳跃或不跳跃。

观测是指AI收集有关环境的信息。在这种情况下,AI需要知道各个墙壁的位置。这可以通过添加射线感知传感器来实现,射线可以在鸟的前方以各种角度发射,并设置为检测检查点和墙壁。通过和实际游戏并行进行对比,可以确保射线能够正确识别出墙壁和检查点。

除此之外,我还添加了一些其他手动观察,包括对鸟的高度、下一根管子距离的了解,以及当前速度的归一化值。通过这些观察,AI应该有足够的信息来完成任务。

对于游戏的设置本身,像我之前提到的那样,在另一个视频中我从头开始创建了整个游戏。管子是在右侧生成的,并向左移动,一旦到达屏幕左侧就会被移除。一切都相当随机。

如果鸟触碰到管子,则游戏结束。在训练AI之前,我尝试直接使用最终游戏进行训练,但遇到了很多失败的尝试,因为AI经常撞到天花板或地面。

理论上,如果有足够的计算能力,我可以通过纯粹的暴力训练来训练它。但是,由于我只有一台普通的电脑,没有强大的GPU集群,所以我需要更聪明地处理训练方式。

因此,我最终采取了一种称为“课程学习”的方法,尽管ML-Agents实际上有一种适用于脚本课程的标准方法,但我在这里选择手动实现。

我首先让AI以完全没有管子的情况下进行训练,只有一个大的缺口。这样,我只需要教会AI避免顶部和底部就可以了。为了快速到达这一点,我使用了模仿学习的方法,我在另一个视频中详细解释了这个方法,并使用了相当高的强度,所以它几乎完全根据我的演示来学习。

在训练配置中,我同时启用了基于奖励的模仿学习和预测奖励,使用较高的强度。这样,目标是使AI能够像我告诉它的那样行为。然后,一旦AI摸清了避免顶部和底部的方法,我对管子之间的距离进行了一些调整,并将外部奖励的强度提高到1.0,同时将预测奖励和基于奖励的模仿学习的强度降低到0.4。这样,目标就是让AI基于自己的奖励来学习,并变得比我更加优秀。

结果非常有趣,一开始AI有些困惑,奖励下降得很快,但随后它开始从外部奖励中学习,并累积回报迅速提高。在这个阶段上,管子之间的距离始终在中间,然后我增加了一些随机性来调整管道的高度,即使缺口仍然很大。这样一来,环境就变得更加随机。

接着,我将基于奖励的模仿学习的强度都降低到0.1,所以演示对学习的影响几乎可以忽略不计。此时,我只希望AI能够从外部奖励中学习。这一次,AI在应对这种新的情况时没有任何问题,它立即适应了这些变化,并不断获得完美的分数。

之后,我又增加了更大的难度级别,并观察到相似的结果。AI会迅速适应新的困难,并不断提高表现。通过这种渐进的训练,AI已经变得非常优秀。

除了在Unity中进行训练之外,我们还可以将训练移植到外部Build中运行。这对于大型游戏项目来说非常重要,因为在游戏中很难轻松创建多个环境实例。通过将训练环境嵌入到外部build中,我们可以更高效地进行训练。

最后,我展示了AI的最终效果,它能够轻松地超过我的最高分,并不断取得更高的成绩。这个例子再次展示了机器学习的真实应用,以及通过适当的训练场景的构建,ML-Agents可以学习任何内容,只要给予足够的时间。

总结一下,机器学习在实际应用中非常简单易用。我只用了几个小时来编写AI代码和调整游戏以适应ML-Agents。然后,通过让训练在一段时间内持续运行,并逐渐增加难度,我成功训练出了一个优秀的AI。

以上是关于Flappy Bird AI的详细介绍。通过这个实例,可以看出机器学习的潜力和应用领域。如果你想深入了解更多关于机器学习和AI的内容,可以查看以下资源。

资源:

高亮

  • Flappy Bird AI由Unity的ML-Agents工具包进行训练。
  • 使用机器学习进行训练的关键是设置好训练环境。
  • AI通过观测和执行动作来学习游戏规则。
  • 逐渐增加难度可以让AI适应不同的游戏情况。
  • 通过外部Build进行训练可以提高效率。
  • AI最终可以超越人类,取得更高的成绩。

常见问题与解答

1. 为什么使用ML-Agents进行训练? ML-Agents是Unity的官方工具包,可以方便地在Unity环境中进行机器学习训练。

2. 需要多长时间才能训练出一个优秀的AI? 训练时间取决于许多因素,包括硬件配置、训练环境设置和AI的复杂程度。通常需要几个小时到几天的时间。

3. 是否可以应用于其他类型的游戏? 是的,ML-Agents可以适用于各种类型的游戏,只需要相应地设置训练环境和观测动作。

4. AI是否能够适应新的游戏情况? 是的,通过逐渐增加难度,AI可以适应新的游戏情况,并不断改进表现。

5. 是否可以将训练迁移到外部Build中运行? 是的,通过将训练环境嵌入到外部Build中,可以更高效地进行训练,特别是对于大型游戏项目。

6. 如何评估AI的性能? 可以通过比较AI的得分和人类的最高得分来评估AI的性能。

7. 如何应用机器学习于其他领域? 机器学习在各个领域都有广泛的应用,包括医疗、金融、交通等。通过构建合适的数据集和训练模型,可以解决各种问题。

8. 除了Unity之外,还有其他机器学习平台吗? 是的,除了Unity的ML-Agents,还有许多其他流行的机器学习框架和平台,如TensorFlow、PyTorch和Scikit-learn。每个框架都有其自己的特点和适用范围,可以根据具体需求选择合适的平台。

9. 如何进一步学习机器学习和AI? 可以参考各种在线教程、文档和研究论文,也可以参加相关的培训和研讨会。不断实践和探索是提高机器学习和AI技能的关键。

10. 机器学习有哪些潜在的应用前景? 机器学习在各行各业都有广泛的应用前景,包括自动驾驶、智能助手、医疗诊断、金融预测等。随着技术的不断发展,机器学习将在未来发挥越来越重要的作用。

Most people like

Are you spending too much time looking for ai tools?
App rating
4.9
AI Tools
100k+
Trusted Users
5000+
WHY YOU SHOULD CHOOSE TOOLIFY

TOOLIFY is the best ai tool source.