商汤组了「最强大脑」局,正儿八经解释为啥搞起电竞AI「建议收藏」

商汤组了「最强大脑」局,正儿八经解释为啥搞起电竞AI「建议收藏」金磊发自凹非寺量子位报道|公众号QbitAI前不久,《星际争霸2》虫王iA周航加入商汤科技,担任AI研究员。堪称电竞职业玩家「转型最成功」的案例之一。而商汤作为一家以计算机视…

大家好,又见面了,我是你们的朋友全栈君。

金磊 发自 凹非寺
量子位 报道 | 公众号 QbitAI

前不久,《星际争霸2》虫王iA周航加入商汤科技,担任AI研究员。

堪称电竞职业玩家「转型最成功」的案例之一。

而商汤作为一家以计算机视觉技术著称的公司,这一步棋又意在何为?

近日,在世界人工智能大会的圆桌论坛《从电竞到AI》中,商汤道出了其目的:

入局电竞,发力决策型 AI

这些年,有关「电竞AI」的那点事

先来盘一下「电竞 AI」这件事情。

许多现实生活中的 AI 应用,都涉及到多个智能体在复杂环境中的相互竞争和协调合作。

针对商汤入局的星际争霸,是一种即时战略(RTS)游戏的研究,也就是解决这个大问题过程中的一个小目标。

换而言之,类似星际争霸的挑战,实际上就是一种多智能体强化学习算法的挑战。

DeepMindAlphaStar,可以说是在 AI 挑战星际争霸过程中,发展较为成熟的一个。

去年其研究还登上了顶级期刊 Nature —— AlphaStar已经超越了99.8%的人类玩家,在神族、人族和虫族三个种族上都达到了宗师(Grandmaster)级别。

AlphaStar学会打星际,还是靠深度神经网络,这个网络从原始游戏界面接收数据 (输入) ,然后输出一系列指令,组成游戏中的某一个动作。

至于训练,则是通过监督学习和强化学习来完成的。

而且,智能体的学习目标会适应环境不断改变。

神经网络给每一个智能体的权重,也是随着强化学习过程不断变化;而不断变化的权重,就是学习目标演化的依据。

电竞 AI 领域另一个比较火的游戏是 Dota2,OpenAI 的 RerunOpenAI Five,是这款游戏中的 AI 佼佼者。

比起星际争霸2需要操纵甚至上百个单位,Dota2这款5V5游戏,只需要操纵5个智能体,但是操作精准度和策略复杂度要高一些。

OpenAI Five 是 OpenAI 首先开发出来的电竞 AI,和人类顶级团队——世界冠军 OG 的较量中,以2:0的明显优势碾压。

而后,OpenAI 又开发一出 Rerun,胜率再次翻新,达到了98%

这些 AI 的背后同样是一套神经网络。

根据 OpenAI 发布的研究来看,policy (π) 被定义为从观察数据到动作概率分布的函数,这是一个有1.59亿个参数的RNN神经网络。这个网络主要由一个单层、4096-unit的LSTM构成。

商汤组了「最强大脑」局,正儿八经解释为啥搞起电竞AI「建议收藏」

选手们的训练,使用的是扩展版的近端策略优化(PPO)方法,这也是OpenAI现在默认的强化学习训练方法。这些智能体的目标是最大化未来奖励的指数衰减和。

在训练策略的过程中,OpenAI Five没有用到人类游戏数据,而是通过自我博弈。

与 Dota2 类似的电竞 AI ,还有国内的手游《王者荣耀》——腾讯绝悟 AI

商汤组了「最强大脑」局,正儿八经解释为啥搞起电竞AI「建议收藏」

绝悟的 1v1 版本首次露面,是在2018年的 KPL 秋季总决赛上,而后在去年8月份,在5v5比赛中击败了人类职业战队,实力不容小觑。

而有关绝悟的技术细节,在去年年底时,腾讯在一篇入围AAAI 2020的论文中也有所披露。

商汤组了「最强大脑」局,正儿八经解释为啥搞起电竞AI「建议收藏」

AI的整体架构一共分为4个模块:强化学习学习器(RL Learner)、人工智能服务器(AI Server)、分发模块(Dispatch Module)和记忆池(Memory Pool)。

商汤组了「最强大脑」局,正儿八经解释为啥搞起电竞AI「建议收藏」

研究人员在论文中指出,基于这样的方法训练一个英雄,使用48个P40 GPU卡和18000个CPU 内核,训练一天相当于人类打500年,训练30个小时就能达到王者段位水平,70个小时比肩职业玩家。

电竞AI这件事,虫王iA有话说

在昨天的世界人工智能大会中,「从电竞到AI」的圆桌成了大会中的亮点,与会嘉宾包括:

  • 曾获得8次《星际争霸II》全国比赛冠军的中国顶尖选手、商汤科技研究员周航

  • 被称为“脑王”的《最强大脑》2019全球总冠军、商汤科技见习研究员郑林楷

  • 商汤科技副总裁、商汤研究院副院长闫俊杰博士。

  • 商汤科技研发执行总监石建萍博士。

如此阵容,被网友戏称「脑王论剑」。

而堪称「转型最成功」的电竞玩家周航,发表了他的看法:

我想要自己训练一套AI系统,战胜以前没有战胜过的对手。

商汤组了「最强大脑」局,正儿八经解释为啥搞起电竞AI「建议收藏」

在量子位的采访中,作为与 AI 直面交锋过的「亲身经历者」,周航表示:

在星际这样一个充了满尔虞我诈的复杂环境,AI 在决策上还是太单纯了。

虽然 AI 在操作上有一定优势,但是对整个游戏没有建立起抽象的认知,容易被欺骗,还有很大提升空间。

但许多人对于类似星际2这样的电竞AI,提出了「公平性」方面的质疑——毕竟机器在某些方面的能力,是远远超越人类的。

对此,周航从「操作」和「信息」两方面做出看法:

在 AI 的操作方面,我个人觉得可以用一个简单的方式去衡量:让这一项目最顶尖的选手,尝试去模仿 AI 的操作,如果人能模仿成功那就是公平的。

而在信息方面,AI 跟人类能获得的信息需要保持一致。

具体到星际上来说,星际每一步是45ms,人做不到在这么短时间观察信息并且做出反应,但是 AI 可以,限制 AI 的操作频率是有必要的。

另外,AI 和人类在与游戏的交互方式上有很大不同。人是通过图像和声音了解的整个地图的局部信息,但是 AI 目前通过星际的游戏接口获取的信息会比人更加全面,这方面也需要加以限制。

当然,目前的电竞 AI 还无法做到100%碾压人类,对于其弱点,周航认为:

目前,星际AI 的弱点还是很明显的。

星际的整个状态空间太大,AI 在训练过程中,有很多的局面都是没经历过的,在这些罕见局面就会出现不会应对的情况,所以在与 AI 对战的过程中,只要你打的天马行空、不按套路出牌就行了。

因此,也可以发现电竞 AI 研究的难点和重点,一方面是增强 AI 的泛化能力,做到像人类一样抽象地思考问题;另一方面是希望能够超越人类的认知,做出比人类更优的决策。

除此之外,对于决策AI,前「脑王」郑林楷也坦言:

其实人做决策经常靠的是直觉,而这方面 AI 仍有很多进化空间。

最后,周航对于电竞 AI 发出了希冀:

我希望做到的是从 AI 模仿人类出发,再到人类去模仿它;我希望AI真正拓展人类的认知,拓宽人类的想象力

入局电竞,发力「决策型AI」

不难看出,近几年的电竞 AI 呈现越发火热的趋势。

其实在这背后,各家的发力点都是较为一致的,那就是「决策型 AI」。

那么,问题就来了,决策型 AI 为什么会受到如此重视,就连深耕计算机视觉的商汤科技也要入局?

在量子位与商汤研究院副院长闫俊杰的专访中,我们得到了一些答案。

过去几年时间中,商汤在计算机视觉的感知层面做了大量的技术积累。通过感知能力,解析了大部分的图片和视频,一定程度上提高了行业的智能化和自动化程度。

但随着感知的能力越来越强,信息的维度越来越高,这就为运营、控制、决策类的问题的提升带来了更多的可能性,但是要求也越来越高。

例如交通的信号灯控制、车辆的调度和管理、封闭空间人流的优化、大规模活动时人力的调度等等。

而在这种情况,决策型 AI 便起到了关键作用,正如闫俊杰所说:

这些问题已经超越了人,甚至专家的能力,需要决策型的AI提供相关辅助,从而走通最终的价值闭环。

但要从感知型 AI 转型为决策型 AI,所面临的问题也是相当困难。

  • 一个问题是现在的方法比较依赖在环境中进行大量的探索和验证,也就是可以几乎无限的试错。但是真实的环境往往很难提供类似的机会。

  • 另外一个问题是可解释性,实际的系统很难完全依赖于一个黑盒的系统,而需要人能进行有效的干预来提供系统的可靠性,这就需要AI决策能进行一些解耦。

而且,在决策型 AI 的研究和应用方面,国外整体还处于更加领先的状态,正如 DeepMind 和 OpenAI 的研究。

那么,在如此「内忧外患」的情况下,商汤又该如何下好「入局电竞 AI」这步棋呢?

闫俊杰表示:

具体的做法跟我们做计算机视觉的思路类似

初期跟不同行业头部客户一起迭代,在满足客户需要的前提下,逐渐完善技术框架,提高技术框架的泛化性能,并进一步用有限的人力服务更多的客户。

而商汤入局决策型 AI,拥有得天独厚的优势——场景和人才。

首先,商汤在前期计算机视觉等技术落地的过程中,已经积累了众多的客户和真实场景,这些客户对决策型AI深化落地有了一定的接受度和预期。

也正如商汤科技研究总监石建萍所介绍,自动驾驶就是一个很好的应用场景。

决策型AI可以用于自动驾驶的驾驶策略,包括三个层面:行为层、规划层、以及控制层。

行为层面,包括是否要换道、是否要减速等;规划层面,主要为本车确定可行驶路线;控制层面,则直接为本车输出油门刹车、方向盘指令。

在仿真环境中,可以为他车、人等交通参与者的行为进行模拟,尤其是在与本车产生交互的场景中(例如本车汇入车流),从而帮助更好地在仿真中验证本车自动驾驶性能。

另外一方面的优势便是人才。

商汤在前几年储备了大量的AI领域的人才,有完善的研发体系和资源,来支撑重点问题的攻关。

最后,闫俊杰对决策型 AI 给出了一个预测:

总体上我们相信,决策型AI的发展会类似几年前计算机视觉领域。

算法效果上每年有指数级别的提升,逐渐能够突破使用的红线,在一两个领域打开局面,然后开始更多的下沉和与行业深入结合。

本文系网易新闻•网易号特色内容激励计划签约账号【量子位】原创内容,未经账号授权,禁止随意转载。

了解AI发展现状,抓住行业发展机遇

如何关注、学习、用好人工智能? 

每个工作日,量子位AI内参精选全球科技和研究最新动态,汇总新技术、新产品和新应用,梳理当日最热行业趋势和政策,搜索有价值的论文、教程、研究等。

同时,AI内参群为大家提供了交流和分享的平台,更好地满足大家获取AI资讯、学习AI技术的需求。扫码即可订阅:

商汤组了「最强大脑」局,正儿八经解释为啥搞起电竞AI「建议收藏」

AI社群 | 与优秀的人交流

商汤组了「最强大脑」局,正儿八经解释为啥搞起电竞AI「建议收藏」

商汤组了「最强大脑」局,正儿八经解释为啥搞起电竞AI「建议收藏」

量子位 QbitAI · 头条号签约作者

վ’ᴗ’ ի 追踪AI技术和产品新动态

喜欢就点「在看」吧 !

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/145683.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)
blank

相关推荐

  • qt多线程编程实例_lgbt

    qt多线程编程实例_lgbt一、线程基础1、GUI线程与工作线程每个程序启动后拥有的第一个线程称为主线程,即GUI线程。QT中所有的组件类和几个相关的类只能工作在GUI线程,不能工作在次线程,次线程即工作线程,主要负责处理GUI线程卸下的工作。2、数据的同步访问每个线程都有自己的栈,因此每个线程都要自己的调用历史和本地变量。线程共享相同的地址空间。二、QT多线程简介QT通过三种形式提供了对线程…

  • JAVA——数组截取——调用库中方法

    JAVA——数组截取——调用库中方法1,使用Java类库中的方法System.arraycopy2,使用Java类库中的方法java.util.Arrays.copyOf3,重写myCopy(一)使用.arraycopy方法使用方法:System.arraycopy(源数组名称,源数组开始点,目标数组名称,目标数组开始点,拷贝长度);说明:将arr1数组中的一部分替换成arr2数组中的一部分可以从任意位置开始截取…

  • micropython教程_md转word

    micropython教程_md转word之前的博客格式不太完美,所以我学习了一下MD编译器相关操作,并把常用的操作总结在这篇博客里面,希望大家可以学习一下,来美观自己的博客

  • 算法的时间复杂度和空间复杂度-总结[通俗易懂]

    算法的时间复杂度和空间复杂度-总结[通俗易懂]算法的时间复杂度和空间复杂度1、时间复杂度(1)时间频度一个算法执行所耗费的时间,从理论上是不能算出来的,必须上机运行测试才能知道。但我们不可能也没有必要对每个算法都上机测试,只需知道哪个算法花费的时间多,哪个算法花费的时间少就可以了。并且一个算法花费的时间与算法中语句的执行次数成正比例,哪个算法中语句执行次数多,它花费时间就多。一个算法中的语句执行次数称为语句频度或时间频度。记为T(

  • kafka应用场景包括_什么是场景理论

    kafka应用场景包括_什么是场景理论1.Kafka概述Kafka是一种高吞吐量的分布式发布订阅消息系统,它可以处理消费者规模的网站中的所有动作流数据。简单地说,Kafka就相比是一个邮箱,生产者是发送邮件的人,消费者是接收邮件的人,Kafka就是用来存东西的,只不过它提供了一些处理邮件的机制。               2.Kafka相关名词分析Broker:Kafka节点,一个Kafka…

    2022年10月14日
  • BigDecimal转String[通俗易懂]

    @特别鸣谢:BigDecimal转Stringpublicstaticvoidmain(String[]args){//浮点数的打印System.out.println(newBigDecimal(“10000000000”).toString());//普通的数字字符串System.out.pr…

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号