上文已经介绍了,如何搭建一个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预先训练好的模型(.nn
文件,存放在TFModels目录下),应用到实际场景的推理。

3、ML-Agents 的Unity环境
这里介绍一下ML—Agents 的Unity环境,它包含一个或多个Agent对象的场景,包括Agent与之交互的其他实体。
在打开pyramids场景后,您可能会注意到的第一件事是,它包含了多个Agent训练迷宫AreaPB++,而不是一个。场景中的每个Agent训练迷宫都包含一个独立的agent,但是它们都有相同的行为,这样可以过个Agent同时训练,速训练,因为16个agent都是并行进行训练的。

打开每个AreaPB++, 你会发现他们都具有相同的GameObject及挂载相同的脚本, 其他他就是AreaPB的一个拷贝。

打开 AreaPB,能看到影响基础Agent对象的行为的几个属性:
-
Behavior Parameters — 每个代理必须有一个行为。行为决定了代理如何做出决策。
-
Max Step — 最大步骤-定义在代理的情节结束前可以发生多少模拟步骤。在 pyramids 中,一个代理在5000步后重启。

1、Behavior Parameters : Vector Observation Space
在做出决定之前,Agent会先收集其观察到的状态的信息。Vector Observation是一个浮点数的向量,其中包含Agent进行决策的相关信息。
pyramids示例的行为参数使用的空间大小为4。这意味着包含代理观察的特征向量包含四个元素:前后左右四个方向的平面向量值。
2、Behavior Parameters : Vector Action Space
以浮动类型的行动数组的形式向Agent提供指令。ML-Agents工具包将行动分为两种类型:
连续的和离散的。
3、Model : Inference Device
将使用的推断设备设置为CPU/GPU
网友评论