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
……
上文已经介绍了,如何搭建一个ML-Agents的开发环境,接下来,我们进入主题,开始利用demo来学习,如何利用ML-Agents进强化学习训练。
1、ML-Agents工具包目录
在我们下载的工具包中,包含一个 Unity Project 的目录,
如果你熟悉Unity工程的话,很明显能看出来这是个unity的工程,上文也提到,这个是ml-agents 的unity demo,
包含几个若干个示例,突出显示工具包的各种特性,这里将挑选其中一个,训练一个代理,并将训练好的模型嵌入到Unity环境中的端到端过程。
2、用Unity加载Demo
运行 Unity Hub
在项目对话框中, 点击添加
- 在项目窗口中,进入工具包的project目录,打开即可
- 打开工程后,我们选择 pyramids 这个demo
- 双击 pyramids场景,点击播放,就能看到一个方形头在追着一个一个的彩色目标进行撞击
你会发现,它很少走冤枉路,这个就利用ML-Agents预先训练好的模型(.onnx
文件,存放在TFModels目录下),应用到实际场景的推理。
.onnx 是 Open Neural Network Exchange (ONNX) 格式的文件扩展名。ONNX 是一个开放的格式,用于深度学习模型的跨平台互操作。它由微软和 Facebook 于 2017 年共同开发,旨在为不同的深度学习框架提供一个统一的模型表示形式,使得模型可以在不同的框架之间进行转换和共享。
3、Unity环境简介
这里介绍一下ML—Agents 的Unity环境,它包含一个或多个Agent对象的场景,包括Agent与之交互的其他实体。
在打开pyramids场景后,您可能会注意到的第一件事是,它包含了多个Agent训练迷宫AreaPB,而不是一个。
打开每个AreaPB, 你会发现他们都具有相同的GameObject及挂载相同的脚本, 其实他就是AreaPB的一个拷贝。
所以,场景中的每个Agent训练迷宫都包含一个独立的agent,它们都有相同的行为,这样16个Agent同时开工,并行进行训练的,加速训练。