10月26日,在加州山景城举办的ACMMM 2017大会进入正会第三天。在会上,Unity Technology负责AI与机器学习的副总裁Danny Longe进行了题为《Bringing Gaming, VR, and AR to Life with Deep Learning》的演讲。在演讲中,Danny介绍了Unity作为全球最大的游戏引擎提供商对当下火热的人工智能与机器学习的看法,并对Unity运用机器学习在游戏与相关的AR、VR技术中的实践进行了介绍。
尽管从两年多前Unity就开始酝酿转型,从一家从纯引擎提供商转向互联网+云增值服务,但Danny Longe才是Unity最近在AI领域发力的背后推手。在加入Unity之前,Danny曾担任Uber机器学习负责人,在更早之前,Danny还负责过亚马逊和微软的机器学习产品研发,毫无疑问,Danny在机器学习方面深厚的技术背景和专业知识对于Unity希望更好地满足开发者在快速变化的游戏开发需求,以及推进AR/VR领域的新应用至关重要。而Danny也向我们介绍了Unity深度学习应用的四个方向,包括:
1. 让游戏开发者更好实现变现,包括关联性更强的广告,更好地将游戏、玩家和开发者进行匹配等;
2. 为玩家提供深度学习艺术工具,帮助开发者更好进行游戏创作;
3. 具备高度扩展性的游戏模拟环境,如更好模拟真实世界的物理模型以及自动驾驶模拟环境等;
4. 让游戏开发者通过运用AI工具提升能力。
随后Danny为我们详细介绍了这四个方向的应用。
Unity已经成为世界上最大的3D游戏引擎,这也使得Unity需要不断思考如何将玩家与游戏进行更好地进行匹配。然而,由于游戏玩家通常只是下载游戏进行娱乐,而不会填写如年龄、性别等信息,这也使得Unity需要从其他特征方式,如游戏的画面、音效、文本等信息对玩家进行描述和划分。
而在广告匹配上,Danny则笑称使用机器学习找到真正对广告感兴趣的人与他当时在Amazon使用机器学习剔除虚假评论是一样的,当时他们使用了两个不同的网络,一个生成虚假评论,一个对虚假评论进行判别,在这样的对抗中生成和判断均得到了提高;
在帮助开发者更好进行游戏创作方面,Danny为我们展示了若干个实例:
更好的游戏光影渲染效果;
不同画面、纹理的合成与变异生成,将具有不同风格的图片拼接成一张更自然的图片;
简易场景构建工具,可以从已有的素材中进行学习,然后通过简单的涂抹方式生成新的素材;
提高图片的分辨率,可以将256x256分辨率的普通图片提升到4K的分辨率;
使用GAN来改变画面、视频的式样,等等。
机器学习在素材创作的应用:输入左上角的树木素材(Style),得出左下角的模式图(Guide),然后通过涂鸦(Doodle)方式,即可得到与涂鸦一致的树木素材(Server Output)。
在环境模拟方面,Danny称目前的机器人通常只能完成机械的工作,而迁移学习可以让机器人获得更好的扩展性(如学会抓取不同形状、位置的东西)。Unity新推出的Machine Learning Agents则可以建立起一个符合现实物理规则的强大训练场景,例如各种3D模型、纹理、光影效果、物体的碰撞反弹、甚至橡胶轮胎与混凝土地面的摩擦,而这样的游戏场景可以帮助人工智能研究人员更好地模拟和训练用于真实世界的机器人和如自动驾驶等AI应用。
(由Unity创建的一个网球游戏RL/ML模拟训练环境示例)
Danny为我们展示了用机器学习来训练一个简单的“小鸡过马路”的场景。一开始小鸡很容易被汽车撞到,但通过设置奖励和惩罚(吃到的宝箱、被车撞到)和通过一段时间的学习后,这只“小鸡”迅速达到了专业级的水平。同样在游戏中,假如要训练一个NPC,那么游戏开发者只需要创建一个游戏场景,设定游戏规则(如避免被玩家杀掉)和利用与Python API相联的“云加强学习”来训练NPC。当这个NPC的性能已经达到要求时候,游戏开发者就能利用另一组Unity API将TensorFlow模型直接嵌入他们的游戏中,而无需另行编码和连接云平台。
在Danny看来,AI在游戏领域推进是这样一个循环:首先AI可以帮助我们发现游戏中的问题,并进行相应的行动,然后得到奖励,而通过这个奖励又能帮助我们更好地研究新的问题。而在这当中通过设置不同的奖励值,包括游戏时间的长短、升级、游戏内购买、游戏操控行为方式(触摸、点击、拖拽)甚至语音、情感、姿势、力量等,会得到不同的改进。
在演讲结束后的提问环节,雷锋网与Danny Longe也进行了短暂交流:
雷锋网: 您刚才演讲中提到,用Unity Machine learning agent可以构建一个适合自动驾驶的训练场景,这样做有什么好处和不足呢?
Danny:好处当然是可以更容易营造一个自动驾驶的环境。不足之处在于,没有人知道如何模拟一个真实的城市,像把旧金山放到自动驾驶的场景中来,这是非常难的一件事情。你需要在道路上放上其他汽车和行人,而且如果他们是按照设定的模式运动,在这个环境中的无人驾驶车无法学到任何东西。这也是为什么像Waymo这样的公司还是坚持在实际道路上测试的原因,但我们也在努力改进。
雷锋网: 您在微软、Amazon、Uber和Unity几家知名公司都负责过机器学习,能介绍这几家公司在使用机器学习上有什么相同点或者不同点吗?
Danny: 无论在微软、Amazon、Uber,虽然需要解决的任务各自不同,用的都是同一种算法,而在Unity,在游戏领域也是如此,我们希望让开发者更好地赚钱,这和我们在Amazon希望卖给你更多的书本质上是相同的。但另一方面,Amazon或者Uber本质上来说,无论是卖更多东西或者让车更快到接到你,这从本质上来说都是使用数据,而在游戏世界,我们要做的是让游戏从之前的环境中学习,并让玩家与游戏的互动变得越来越接近自然。这就是我们为何引入机器学习的原因。