热门
Unity:使用ML-Agents训练的足球机器人
Unity Machine Learning Agents Toolkit(简称ML-Agents)工具套能帮助用户在Unity中轻松入门强化学习(RL)。ML-Agents本身带有多种样例环境和模型架构,可让用户利用现成的环境和架构上手RL,再通过调整超参数来测试和改进结果模型。所有这些都不需新建Unity场景或导入资源,且初期不涉及任何编程。本文介绍的项目由日本公司Ghelia Inc.创立,他们使用了ML-Agents的soccer训练环境来训练人工智能足球赛。由Ghelia训练出的RL模型被部署到索尼的toio机器人上,在真实世界中踢起了足球。这是一个用ML-Agent训练机器人、从“虚拟到现实”的绝佳实例。
Ghelia的CEO兼总裁清水亮以及公司创新和品牌战略办公室的首席程序员布留川英一及创新部经理Masatoshi Uchida在下文中向我们解释了Ghelia是如何使用ML-Agents Toolkit来训练一个真实机器人完成踢足球的。
通过ML-Agents和索尼toio制作的足球机器人
Ghelia是一家专注于强化学习应用的公司。Ghelia的创始人北野弘明在索尼任职期间创办了RobocupSoccer足球赛,并开发出了AIBO机器人。我们的团队曾制作过一个空气曲棍球演示,但过于繁杂的部件使其变得不够轻便。接着为了向客户们解释强化学习的概念,我们开始讨论制作另一个便于展示的演示场景。鉴于ML-Agents已经有了一个足球训练环境,我们完全可以用轻便小巧的索尼toio机器人来开发一个足球游戏,这种游戏甚至有可能会大火。
为了将强化学习应用到真正的机器人上,我们需要将机器人本身导入到模拟环境中。幸好,toio已经有一个称为toio SDK for Unity的模拟程序。我们能直接将程序与ML-Agents软件包结合使用,即刻开始培训。toio SDK仅包含了机器人模型,而足球需要另外制作。我们使用了Unity的物理引擎在模拟程序中重现了逼真的足球,还在现实中搜寻能准确还原模拟情景的小球。结果,高尔夫球的运动可准确匹配训练的成果。球的位置在Unity中以transform值表示,在现实里则使用相机进行拍摄、用OpenCV进行识别。
实际运行硬件配置
我们使用一个高尔夫球来代表足球,并将其涂成红色以提高辨识度。不可思议的是,我们仅用一部iPhone就能完成足球的探测,控制所有八个机器人(这是一场四对四的足球比赛),再使用ML-Agents模型进行推导。
关于如何设置奖励
一开始,代理机器人们各自为政,于是我们试着给个人进球设置了负面奖励,但这又导致了守门员不会去主动防守球门。而如果为运球设置积极奖励,两队又只会来回运球,不会积极射门,基本上就是在拖时间。最后,我们决定把奖励设置为进球得一分,被进球则扣一分。
项目中最具挑战的地方
有时实机机器人并不会像模拟的那样行动,其背后原因有时让人捉摸不透。比方说,如果机器人在一个稍微倾斜的地板上运动时,有时会导致推导失败;另外,如果球的反弹与模拟不同,机器人也无法做出训练好的反应。并且,机器人对摄像机位置的要求十分严苛,需要达到毫米级的精度,这使得每次线下活动的镜头调整异常困难。在每一次大型修改后,模型还需要三天左右的训练时间来适应,我们总共进行了约六次的训练环节来实现如今的成果。
对于那些想在项目中用上机器学习的Unity创作者们的建议
AI,特别是深度学习虽然让人痴迷,但人们尚未充分理解它。除非亲手尝试过,否则你将无法欣赏该技术的难度与美,所以我们建议来自全球的Unity开发者亲自上手体验一下AI技术。我想特别指出机器学习非常有趣,而Unity ML-Agents工具能帮你轻松地上手机器学习这一技术并将其应用到项目中。
电话:010-50951355 传真:010-50951352 邮箱:sales@souvr.com ;点击查看区域负责人电话
手机:13811546370 / 13720091697 / 13720096040 / 13811548270 /
13811981522 / 18600440988 /13810279720 /13581546145