超详细的Unity小白的 ML-Agents(Release 22)学习记录2:3D平衡球案例

超详细的Unity小白的 ML-Agents(Release 22)学习记录2:3D平衡球案例

官方Github文档:https://github.com/Unity-Technologies/ml-agents/blob/develop/docs/Getting-Started.md

请添加图片描述

② 安装支持 C# 的代码编辑软件,并连接 Unity Editor
Windows 系统安装 Visual Studio 用于修改 Unity 内的 C# 脚本 (推荐 Windows 系统方案)。
Ubuntu 可采用 VS Code (安装 .NET框架 以编写C#,比较麻烦,且 Unity Editor 界面字体小,官方确认Ubuntu 无UI Scaling功能)。

请添加图片描述② 在 Unity Editor 中:
Project → Assets → ML-Agents → Examples → 3D Ball → Scenes

请添加图片描述

① 场景 Scene :包含Agent及其交互对象的虚拟空间
② 游戏对象 GameObject :所有实体的基础容器,通过Inspector窗口可查看组件构成
③ 组件系统:通过添加不同组件(如Transform、Rigidbody等)定义对象行为

① 3D Balance Ball 场景包含 12 个相同 Agent 立方体
② 并行训练优势:
数据采集效率提升 12 倍
增强策略泛化能力
加速收敛(单个 Agent 平均500万步→12 个 Agen t约42万步)

① Agent是环境中执行观察和动作的实体。

② 在 3D Balance Ball 环境中,12个名为 Agent 的 GameObject 上挂载了 Agent 组件。

Behavior Parameters(行为参数):
每个Agent必须配置,决定Agent如何做出决策。

Max Step(最大步数):
定义Agent单次训练周期(episode)的最大步数(3D Balance Ball中为5000步),超时后环境重置。

请添加图片描述

空间维度: 8维向量,即包含以下 8 项信息。

包含的观测信息:

Agent立方体的旋转分量(x, z轴),共2项。

球体相对于Agent的位置(x, y, z坐标),共 3 项。

球体相对于Agent的速度(x, y, z分量),共 3 项。

① 动作类型:连续型动作(Continuous Actions)。

② 动作维度:2 维向量。

③ 动作功能:控制 Agent 绕 x ,z 轴旋转,以保持球体平衡。

请添加图片描述

在Unity Editor 的 Projects 窗口找到 AssetsExample3DBallScripts,可看到这两个代码,双击打开可编辑。
※ 以下添加注释的版本仅供大家学习理解,正式运行如报错,可采用官方版本。

请添加图片描述



观测值收集方式:

Ball3DAgent: 使用传统手动添加观测的方式࿺gent 智能体0c;通过 CollectObservations 方法显式收集。


通过 useVecObs 开关控制是否启用向量观测,适合需要动态切换观测模式的场景。

Ball3DHardAgent: 使用 反射传感器(Reflection Sensors),通过 [Observable] 属性标记自动收集观测。


numStackedObservations:9 表示堆叠过去 9 帧的观测数据,为模型提供时序信息。

观测数据类型:

Ball3DAgent:
包含 4 个观测值:平台旋转(z/x)、球相对位置、球速度。

Ball3DHardAgent:
仅包含 2 个观测属性(但通过堆叠扩展为 9 帧历史)。

手动控制支持:

Ball3DAgent:
实现 Heuristic 方法,支持通过键盘输入(Horizontal/Vertical 轴)手动控制。

Ball3DHardAgent:
未实现 Heuristic 方法,无法直接通过键盘控制,仅适用于自动训练。

总结:

Ball3DAgent:
更灵活,支持手动控制、动态参数重置和观测模式切换,适合基础训练和调试。

Ball3DHardAgent:
通过堆叠时序观测简化了代码,但可能因缺少速度和动态参数重置增加训练难度,适合复杂环境下的时序依赖性训练。

https://blog.csdn.net/CDSN/article/details/

请添加图片描述

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:Ai探索者,转载请注明出处:https://javaforall.net/245559.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月15日 下午7:42
下一篇 2026年3月15日 下午7:43


相关推荐

关注全栈程序员社区公众号