使用深度 Q 学习的 AI 驱动蛇游戏

本文介绍了一个基于强化学习的蛇游戏项目,通过训练蛇吃食物来实现AI控制。文章详细阐述了算法原理,包括环境设定、状态计算、奖励机制和Q值更新。模型采用PyTorch构建的神经网络,代理负责协调环境和模型的交互。训练过程中,通过贝尔曼方程和重放记忆更新Q值。项目展示了训练过程和应用潜力,可用于自动驾驶等现实世界场景。
摘要由CSDN通过智能技术生成

简介: 该项目基于强化学习,训练蛇吃环境中存在的食物。

下面给出了一个示例 gif,您可以了解我们将要构建的内容。

AI驱动的蛇

Animation.gif

要了解我们如何使用 pygame 手动构建这个蛇 2D 动画模拟,请点击链接:

在构建基本的蛇游戏之后,现在我们将专注于如何将强化学习应用于它。

我们必须在这个项目中创建三个模块:

  1. 环境(我们刚刚构建的游戏)
  2. 模型(移动预测的强化模型)
  3. 代理(环境和模型之间的中介)

模块链接 image.png

算法:

我们在棋盘上随机放置了蛇和食物。

  • 使用 11 个值计算蛇的状态。如果有任何条件为真,则将该值设置为0,否则设置1。

如何定义 11 个状态

基于当前的 Head 位置代理将计算 11 个状态值,如上所述。

  • 获得这些状态后,代理会将其传递给模型并执行下一步操作。

  • 执行下一个状态后计算奖励。奖励定义如下:

    • 吃食物:+10
    • 游戏结束:-10
    • 其他:0
  • 更新 Q 值(稍后将讨论)并训练模型。

  • 在分析了算法之后,现在我们必须建立思想来继续编码这个算法。

该模型:

image.png

神经网络模型

该模型是使用 Pytorch 设计的,但您也可以根据自己的舒适度使用 TensorFlow。

我们正在使用具有11 大小输入层具有 256 个神经元3 个神经 输出的 密集层的密集神经网络 您可以调整这些超参数以获得最佳结果。

模型如何工作?

  • 游戏开始,Q值随机初始化。
  • 系统获取当前状态 s。
  • 它基于 s,随机或基于其神经网络执行一个动作。在训练的第一阶段,系统经常选择随机动作来最大化探索。后来,该系统越来越依赖其神经网络。
  • 当 AI 选择并执行动作时,环境会给予奖励。然后,代理到达新状态并根据贝尔曼方程更新其 Q 值。

<

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值