https://v.qq.com/x/page/i070855nabf.html
unity官方老师讲解视频如上。
什么是模拟学习
有很多开发者都咨询过这个问题,甚至还会追问“模仿学习与强化学习的区别是什么?”
Alexandre Attia和Sharone Dayan在今年1月发表的《模仿学习全面概述》中,做出了定义:模仿学习是学习者尝试模仿专家行为,从而获取最佳性能的一系列任务。这里的“学习者”相应在Unity ML-Agents中就是Agent(代理)。这篇论文中,对于现今比较流行的一些模仿学习算法进行了回顾,展示主要特征,并针对性能和缺点做出对比。
如果你像全面了解模仿学习的概况,可以访问这片论文:
https://arxiv.org/abs/1801.06503
下图很清楚地解释模仿学习的工作原理。
下图列举出了强化学习与模仿学习的主要区别,归根结底就是:强化学习是通过“奖励”来驱动的;模仿学习是通过“示范”来驱动。
如何创建模仿学习训练与实现环境
构建一个模仿学习的其实并不复杂,主要分成下面的步骤:
创建Teacher和Student二个Brain
确认Teacher的Brain设置为 Player模式,确定 “Broadcast” 广播功能为启用状态
设置Student的Brain为External模式
对应设置Teacher和Student的Agent
在python/trainer_config.yaml中设置Student的Brain
· trainer 参数为 imitation
· brain_to_imitate设置为Teacher的Brain名字
· batches_per_epoch设置每个时刻进行多少次训练
· 调高max_steps,可使得在较长时间内进行训练
训练准备
· (v0.3)通过Build Settings生成APP用于训练
· (v0.4)直接编辑器内训练
通过命令行工具输入进行训练
· (v0.3)通过python3 python/learn.py –train –slow 启动APP进行训练
· (v0.4)通过python3 python/learn.py –train –slow在编辑器内训练
操作Teacher观察输出
观察Student查看模仿情况
一旦Student有比较好的模仿,Ctrl+C结束训练
将生成的二进制文件(.bytes)放回Unity工程,将Student的Brain Type改为Internal,重新运行查看其模仿学习训练结果
Unity ML-Agents 模仿学习示例项目
在Unity ML-Agents项目中,打开ML-Agents Examples BananaCollectors Scenes BananaIL场景,我们会发现如下图中的游戏视图布局。
在Hierarchy中,Academy下面有二个Brain:TeacherBrain和StudentBrain,分别对应了“示范”作用的代理和处理“学习”的代理。
玩家可以通过WASD键,操作戴帽子的Teacher在香蕉地图中移动收集香蕉。收集到黄色的好香蕉会加分,收集到紫色的烂香蕉会减分。还能按空格键攻击其它的代理,冻结它的行动。
在下图中展示的是模仿学习训练的一个片段:当操作Teacher顺时针或逆时针旋转时,从右边的俯视角度可以发现,其它的“学习者”会跟着旋转。
今天的文章ML-AGENT模仿学习(一)分享到此就结束了,感谢您的阅读,如果确实帮到您,您可以动动手指转发给其他人。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/24917.html