ML-Agents学习笔记三:Pyramids demo 详解

2024-05-21  本文已影响0人  IT前沿技术分享

ML-Agents 是一个开源项目,使游戏和模拟场景能够作为训练智能代理的环境。它提供最先进算法的实现(基于 PyTorch),使游戏开发者和爱好者能够轻松训练 2D、3D 和 VR/AR 游戏的智能代理。研究人员还可以使用提供的简单易用的 Python API 来使用强化学习、模仿学习、神经进化或任何其他方法来训练代理。


机器学习系列:
ML-Agents学习笔记一:环境搭建
ML-Agents学习笔记二:UNITY实例工程简介
ML-Agents学习笔记三:Pyramids demo 详解
ML-Agents学习笔记四:使用强化学习训练模型
ML-Agents学习笔记五:使用TensorBoard 观察训练
……

AI小白系列:
AI小白篇一:Anaconda+Pycharm搭建深度学习环境
AI小白篇二:使用anaconda搭建TensorFlow环境
AI小白篇三:Tensorflow首项
AI小白篇四:Tensorflow的开源案例实践1
AI小白篇五:Tensorflow的开源案例实践2
AI小白篇六:Tensorflow的开源案例实践3
……


上文以 pyramids为列,简单的介绍了一个ML-Agents的工程,并且查看了示例的成果:预先训练好的模型会根据实际场景进行推理,让代理者神奇在迷宫中躲避各种障碍,不走弯路顺利找到目标。

在本节中,将对 Pyramids demo 进行详细讲解, 学习如何构建一个使用ML-Agents进行训练的项目 。

1、训练场景组成

Demo启动后,会发现它到包含以下几个GameObject

2、Agent配置详解

Agent 是观察环境并采取行动的参与者。在 Pyramid 环境中,代理组件放置在十六个“代理”游戏对象上。

影响基础Agent对象的行为的几个属性:

下面详细介绍Behavior Parameters的配置项

1、Behavior Parameters : Vector Observation

用于配置智能体的矢量观测空间。这些配置项定义了智能体在每个步骤中从环境中接收的信息量和类型。

配置项包括:

pyramids示例配置如下。

配置项 描述
Space Size 4 四个观测量分别是 智能体是否找到钥匙(即碰到Switch),智能体刚体的速度矢量Vector3
Stacked Vectors 1 只观测当前信息

Vector Observation 允许你配置智能体的矢量观测空间。通过正确配置 Space Size 和 Stacked Vectors,可以确保智能体从环境中接收到足够且合适的信息,从而更好地完成任务。Space Size 定义了每次观测的矢量维度数,而 Stacked Vectors 允许你堆叠历史观测,增加智能体对时间相关信息的感知能力。根据具体任务需求设置合适的配置,可以显著提升智能体的表现。

2、Behavior Parameters : Actions

Actions定义了智能体如何与环境进行交互, ML-Agents Toolkit 将Actions分为两种类型: 连续离散

pyramids示例的配置如下,在C#程序中,它被设计为使用离散动作,这些动作是离散的整型数。

配置项 描述
Continuous Actions 0 0 表示没有连续动作
Discrete Branches 1 一个离散动作分支
Branch 0 Size 5 0-4的5个整型数,模仿人的行为:0-在程序中没看到用途,1-4表示前进-后退-左转-右转四个离散行为

在配置 Actions 部分时,需要根据智能体的需求选择合适的动作空间类型(离散或连续)并设置相应的参数。这样可以确保智能体能够正确地与环境进行交互,执行期望的动作。通过正确配置动作空间,可以实现复杂的行为和控制逻辑,提升智能体在训练和推理过程中的表现。

4、Model : Inference Device

Inference Device 指的是用于进行推理(Inference)的设备。推理是指在训练完成后,使用训练好的模型在游戏中运行智能体的过程。推理设备决定了模型在游戏中实际运行时使用的硬件资源。

ML-Agents 支持在不同的硬件设备上进行推理,以满足不同的性能需求和硬件环境。

旧版本中的推理设备
1.0版本之后的推理设备
如何选择合适的 Inference Device

选择合适的推理设备取决于你的具体需求和应用场景:

其它配置

上一篇 下一篇

猜你喜欢

热点阅读