来源:AI科技评论本文约2300字,建议阅读5分钟 两个人工智能体学会了拳击。

AI 拳击可以有多好玩?

小红红,吃我一拳。

嘿,我挡。

前期先试探周旋几次,再找机会吧。

没错,就是这个空隙,爆头。

还想故技重施,我躲。

怎么样,AI 拳击动画效果是不是和真人比赛神相似?

基于 AI 深度强化学习的拳击选手身体不仅拥有超高自由度,而且它还掌握了格挡、后退、摆拳等拳击基本动作。

Facebook 人工智能研究部门(FAIR)在机器学习领域,总能带来一些意想不到的成果,上面的演示正是它们在《Control Strategies for Physically Simulated Characters Performing Two-player Competitive Sports》(模拟人物进行双人竞技运动的控制策略)一文中的部分演示片段。

论文地址:

https://research.fb.com/wp-content/uploads/2021/06/Control-Strategies-for-Physically-Simulated-Characters-Performing-Two-player-Competitive-Sports.pdf

在这篇论文中,研究人员开发了一个学习框架,通过物理模拟角色学习基本技能、学习回合级别的策略、深度强化学习的步骤方法,来模拟人们学习竞技体育的训练路线。

同时,它们还开发了一个编码器-解码器结构的策略模型来让物理模拟角色进行训练学习,该结构包含一个自回归潜在变量和一个专家混合解码器。

为了展示框架的有效性,研究人员通过拳击和击剑两种运动,演示了物理模拟角色在框架学习到的控制策略,这些策略可以生成战术行为,并且让所有动作看起来更自然。

1 论文概述

在双人竞技运动中,运动员经常在比赛中展示出高效的战术动作,如拳击和击剑。但创建多人动画场景是一项巨大的挑战,因为它不仅要求每个人物模型都以自然的方式行事,而且还要求它们彼此之间的互动在时间和空间领域都是同步的,以显得自然。

相互作用的密度越大,问题就越具有挑战性,因为在相互作用之间没有时间“重置”。使用物理模拟角色简化了问题的一部分,因为低层次的物理互动(如碰撞)是通过模拟自动生成的。

然而,由于学习包含比赛的一系列技能,人们还没有对不同技能的协调进行深入研究,如刺拳、勾拳、等拳击级别的反击和压力战斗策略。

在竞技运动中使用模拟角色的一个关键挑战是,需要学习基本技能和拳击级别的策略,以便它们能够正确地协同工作。

在这篇论文中,FAIR 探讨了训练控制系统的技术,开发了一个框架,为角色之间的互动生成控制策略。其中的人形机器人拥有超高自由度,并由关节力矩驱动。

研究人员解释,他们的设计灵感源于现实世界。对于大多数运动来说,人们首先是在没有对手的情况下学习基本技能,然后通过与对手竞争来学习如何结合和完善这些技能。

基于此,FAIR 模仿这两个过程,通过深度强化学习,让物理模拟角色学习基本技能和学习比赛级别的策略。

2 多智能体强化学习

如上文所述,物理模型角色不仅在前期会训练学习基本技能,后期还会通过竞技的方式来深度学习,这里就涉及到了一个多智能体互相学习的问题。

FAIR 的框架采用一组运动数据,其中包括双人竞技运动的基本技能作为输入,并生成两个物理模拟选手的控制策略。控制策略允许玩家以正确的动作和时间执行一系列基本技能,从而赢得比赛。

具体来看,研究人员首先会收集了一些动作数据,包括在没有对手的情况下进行这项运动的基本技能。然后采用单智能体深度强化学习的方法对动作进行单一模仿策略的学习。

最后,将模仿策略转化为竞争策略,每个参与者通过带有竞争策略的多智能体深度强化学习来增强自己的策略。

为了有效地将模仿策略转换为竞争策略,FAIR 使用了一个由任务编码器(如下图绿色)和运动解码器(蓝色)组成的新策略模型,该任务编码器的输出以自回归的方式更新(灰色)。

即使如此,在多智能体环境中采用动作捕捉依然存在不少巨大的难题。当我们需要多个智能体之间密集和丰富的交互时,由于物理交互过程中的遮挡和微妙运动,精确捕捉尤其困难。

基于此,FAIR 设计一种框架,用于捕捉动作数据。首先用一个智能体进行动作捕获,并通过模拟和学习创建所需的竞争交互。

采用这种方法的动机来自于人们学习竞技运动的方式——新手玩家先模仿高手玩家的示范,学习基本技能,然后在与对手对战的过程中对所学的基本技能进行提炼和学习战术。

3 小结

在这篇论文中,FAIR 通过创建控制模型,使得两个物理模拟角色进行竞技运动。以拳击和击剑为例,尽管这种方法产生了竞争性的匹配,但这个方法仍然具有局限性。

首先,该系统需要相当数量的计算来生成可信的竞争模型。随着环境中涉及的变量增加,可能产生的交互也会以指数方式增加,因此所需的元组数量也以类似的方式增加。

为了使框架应用到更多运动中,如篮球或足球,更多的样本数据是必要的。这种计算复杂性可以通过学习算法(如基于模型的 RL 算法)的突破来解决,或者收集更多的数据来引导智能体之间的交互。

其次,FAIR 开发的框架中有一个假设前提,即运动的个人技能可以由单个智能体掌握,虽然该假设为角色在后期竞技中的学习做了一个铺垫,然而,在一些双人竞技运动中,这种假设并不成立。

例如,在摔跤中,一个玩家首先需要抓住另一个玩家的身体,并不断地利用接触来获得分数,而这其中并不包含特别的技能需要去学习。

最后,FAIR 的模型虽然能够生成相互竞争的两个动画角色,但动作表现的自然程度却取决于输入参考运动的质量。

例如,在拳击比赛中,专业运动员在比赛中表现出非常敏捷的动作,而模拟的运动员却移动得很慢。研究人员认为,造成这种差异的主要原因是实验中使用的输入动作来自一个训练非常有限的拳击手。

虽然 FAIR 的这项研究并非真正成熟,仍有不少局限性,但它发表的该篇论文具体描述了自动生成多个拥有高自由度的动画角色模型,以及让它们深度学习和相互竞技的过程,是一篇十分具有 AI 前沿性质的参考文献。

从长期来看,这个研究方向旨在提供了一种模拟的方式,让人类能够通过控制人工智能进行竞争/互动,在电脑游戏、商业电影和体育赛事中能开辟新的应用形式。

编辑:王菁

FAIR 训练 AI 玩拳击,效果堪比真人比赛,试探+周旋+爆头相关推荐

  1. 5月14日社区技术直播【Analytics Zoo上的分布式TensorFlow训练AI玩FIFA足球游戏】

    主题: Analytics Zoo上的分布式TensorFlow训练AI玩FIFA足球游戏 时间: 2020.5.14 19:00 参与方式: 扫描下方海报二维码加入钉钉群 或者 届时点击直播间直接观 ...

  2. 微软Cortana全面升级神经网络语音,效果堪比真人发音

    近日,微软在全球范围内对Cortana进行了神经网络语音全面升级,升级后的Cortana更加自然流畅,语音效果堪比真人发音. 以下是Cortana不同国家.不同语言升级前后语音效果对比: Cortan ...

  3. 训练AI玩贪吃蛇(强化学习与Q-learning)

    欢迎加入我们卧虎藏龙的python讨论qq群:729683466 ●导 语 ● AI近些年发展很火 不但可以下围棋 还可以玩各种各样的游戏 国外有人构建AI模型 然后训练出了非常厉害的拳击手 相信有一 ...

  4. 如何训练AI玩飞机大战游戏

    虽然没有谷歌强大的集群和DeepMind变态的算法的团队,但基于深度强化学习(Deep Q Network DQN )的自制小游戏AI效果同样很赞.先上效果图: 下面分四个部分,具体给大家介绍. /1 ...

  5. DeepMind训练AI玩足球,风骚走位比中国男足都强(狗头)

    来源:AI科技评论本文约4200字,建议阅读9分钟本文带你了解DeepMind训练的 AI 玩足球. AI踢足球可以有多燃? 不好,对方攻到底线了!看我一脚精准拦截.抢球! 想抢回去?没门! 差点被进 ...

  6. 机器学习与游戏,不只让AI玩星际争霸那么简单!

    玩游戏这件事,似乎已经成为了我们生活中的日常,但仔细回想过去十几年间的游戏经历,其中的变化用"翻天覆地"来形容恐怕也不为过. 十几年前,风靡朋友圈的还是小霸王和超级玛丽,如今,PC ...

  7. 音速索尼克 怪人_如何使用AI玩刺猬索尼克。 真干净!

    音速索尼克 怪人 by Vedant Gupta 由Vedant Gupta 如何使用AI玩刺猬索尼克. 真干净! (How to use AI to play Sonic the Hedgehog. ...

  8. 用自己训练的AI玩王者荣耀是什么体验?

    一.前言 大家好,我是 Jack . 「王者荣耀」想必大家就算没有玩过,也都听过. 腾讯 AI Lab 开发的策略协作型"绝悟",最强 AI 分分教你做人. 但那个是像 Alpha ...

  9. ai css 线条粗细_如何训练AI将您的设计模型转换为HTML和CSS

    ai css 线条粗细 by Emil Wallner 埃米尔·沃尔纳(Emil Wallner) 如何训练AI将您的设计模型转换为HTML和CSS (How you can train an AI ...

最新文章

  1. mysql 创建函数问题
  2. Linux下tomcat安装及优化
  3. 多边形轮廓等比例缩放
  4. MyBatis之使用JSONObject代替JavaBean优雅返回多表查询结果
  5. python opencv 图像网络传输
  6. Google Guava EventBus和Java 7 WatchService用于事件编程
  7. 金山笔试题-字符串排序 : 写一个函数,实现对给定的字符串(字符串里面包括:英文字母,数字,符号)的处理...
  8. c#控制IE浏览器自动点击等事件WebBrowser,mshtml.IHTMLDocument2 .
  9. 声明式编程思想和EEPlat
  10. linux系统论文题目大全_计算机应用专业毕业论文题目大全选题
  11. ELK:ElasticSearch定期关闭和删除索引脚本
  12. 路由器的两个端口接在同一个交换机上_2个路由器怎么连接?
  13. python鼠标移动的方法_python自动化之鼠标移动
  14. 自动化测试全流程总结
  15. 心已被爱伤透,情已为爱枯竭
  16. 程序员为何喜欢debian_程序员为何拖延以及如何停止
  17. WPS文字绿色版下载 WPS Office 2010 中文绿色版
  18. 60-网络分层的真实含义是什么?
  19. meanshift原理与代码详解
  20. 简单的小故事解释网络常用术语

热门文章

  1. View 体系详解:View 的工作流程
  2. 如何使用jquery判断一个元素是否含有一个指定的类(class)
  3. docker_File 执行报错总结
  4. 使用HTML5的WebSocket实现服务端和客户端数据通信(有演示和源码)
  5. 中国人工智能学会通讯——智能语音技术与产业应用展望 1.2 智能语音产业应用的现状和挑战...
  6. [裴礼文数学分析中的典型问题与方法习题参考解答]4.3.20
  7. 记录EasyUI使用中的问题和解决的方法
  8. Linux操作系统文件系统基础知识详解
  9. Android--UI之ImageView
  10. info java module_如何在Jdk9 / java-9中解决module-info.java编译错误