围棋之后,人工智能要完爆“星际2”玩家?这正是我们所期待的!

RoboMaster 技术智囊团,用简单的方式带你入门机器人知识,每周日准时更新。

小时候,大人告诉我们,玩游戏的是坏孩子,想当科学家的是好孩子。你有没有想过,有一天,科技公司竟然和游戏公司合作,让机器人去打游戏?

事情真的发生了……去年,DeepMind 和暴雪娱乐宣布合作,让人工智能(简称 AI) 学会玩「星际争霸2」游戏。

DeepMind 是 Alphabet 旗下的子公司,这个公司你可能没听过,但是你一定知道他们做的 AlphaGO,曾经打败了围棋九段李世石。

AlphaGO 与李世石对战

之后,他们立下 Flag 要挑战实时战略的视频游戏,比如「星际争霸2」这种。

「星际争霸2」

Whaaaat?我们不仅能看到 AI 下棋,还能看到 AI 打星际争霸?难不成科技公司经营不下去,要接游戏广告了?

其实不是,这次合作可以说是轰动了整个 AI 界。事情是这样的……

围棋是一种“完全信息博弈”游戏,双方玩家都能看到棋盘,而且有时间慢慢思考和制定策略。

而星际争霸就很有趣了,如果你没有兵力在附近,就看不见对方的行动,而且还要快速做出高级战略决策。这就是“非完全信息博弈”。

AI 眼中的星际争霸

AlphaGo 在围棋这种思维复杂的游戏中压制人类,说明机器学习已经掌握了这种信息推理的棋牌游戏了。

那机器学习能不能在“非完全信息博弈”上打败人类?

这个问题极有学术价值,星际争霸就是一个很好的测试平台,也被视为 AI 进阶的跳板。

人机对战星际争霸

机器学习是什么呢?在之前我们有介绍过,这里带大家简单复习一下。

也可以直接看往期机器学习科普,穿梭门:《机器人如何在复杂的环境下进行视觉识别?》

机器学习就是让机器自己学习知识,通过自己攒经验和学别人的经验,并且总结和优化来提高技能。

机器学习有三个基础属性:

数据、算法、模型

机器学习有几种常用的方法,我们用科科和他的计算机来比喻。

科科有一台计算机,他想教它分辨小猫小狗的图片,于是找到了几种机器学习常用的方法:

第一种,直接告诉计算机图中哪些是猫哪些是狗。

计算机记住了这些被贴了标签的图片后,升级到能够认出图片以外的猫狗,这就是监督学习

监督学习:数据+标签

第二种,丢一大堆未命名的图给计算机,让它自己去总结猫和狗的不同。

聪明的计算机会发现猫狗背后的规律——比如摇着尾巴求抱抱的是狗,瞧不起人的是猫,这就是是非监督学习

非监督学习:数据,无标签

第三种,只指出图中两三只猫狗。

计算机通过这几张照片总结规律,再自己探索其他猫狗,这就是半监督学习

除了上面几种,科科还喜欢一种“残暴”的强化学习法(也叫增强学习)。

就是把计算机丢到一个对它来说完全陌生的环境,或者让它完成一个没接触过的任务,让它试各种手段,跌得满身是伤,最后自己适应环境或者完成这个任务。

这就是 AlphaGo 的学习手段,阿尔法狗也是历经折磨和艰辛才达到今天的水平啊。

AlphaGo 的思考方式

蓝色为可以放置棋子的位置

强化学习通过淘汰机制去选择最优的设计或模型,和优胜劣汰的自然法则很像。

比如发现某一个决策做错了,以后就摒弃它。

DeepMind 就是要用机器学习的方式,让 AI 挑战游戏。

除了“非完全信息博弈”看不到对方的决策,让 AI 玩「星际争霸2」还有其他头疼的问题。

「星际争霸2」不像回合制游戏可以一人一招轮流打,而是要制定长、短线战术,比如选择正面进攻还是偷袭骚扰。

简单的回合制游戏

还要根据最新信息调整计划,比如本来打算偷袭骚扰,结果发现对方正在挂机,于是果断正面进攻。

要让软件同时具备这两种能力是非常难的。所以,大家看到 AI 打「星际争霸」打得很菜的 时候,也不要嘲笑它是人工智障好嘛。

测试 AI 在不同任务中的表现

可以看出,「星际争霸2」更能模拟真实世界的混乱状况,所以如果开发出了一套机器学习系统掌握游戏技巧,那真实世界的复杂任务就可以让 AI 去做了!

无人驾驶就需要应对复杂的交通状况

也就是说,这个研究不是为了让 AI 打游戏,而是教机器人做战略分析。

等到这条路的终点,机器人不再是“机器”,而将是有完整的认知、能够分析决策,甚至可能欺骗的会思考的智能体。

但是,距离这个终点还有很久。因为有人试过,让表现优异的AI和最简单的内置AI对打时,前者以全败告终,连最简单的“人机”都打不过……

不过,AI 打游戏也不是一无是处,它也有操作优势。

之前有一个热门视频,AI 控制虫族的 100 条小狗咬爆了人族的 20 辆坦克,而人类玩家绝对不可能有这种骚操作。

小狗咬爆坦克

它需要一只小狗受到坦克攻击的时候,边上的小狗全部跳开,免得被炮弹范围内的溅射杀死,这个操作给你十只手都不一定能实现。

然而,即使 AI 有微操优势,也还是打不过人类玩家。

人类有各种花招能对付他,可以早期突袭、可以派兵骚扰杀农民、可以空投对方基地捣乱、可以派隐形兵力让对方挨打了还不知道发生了什么……

佯装在矿区进行光子炮台 rush

实则从路口建立阵地

即使人们训练 AI,让它的表现有些提高,但想要达到竞技的目标,还是需要在深度增强学习和相关领域有更多突破。

机器学习那么难,有小伙伴要问,实现人机大战一定要用机器学习吗?普通的编程行不行?

不行!对战非常需要侦察和随机应变,显性地写代码几乎不可能做到。

据估计,「星际争霸2」每场对决有 101685 种可能的配置,鲜明的对比是:阿尔法狗的配置层是 10170。

人类可以趁电脑没有防空,就派空军,可以趁电脑没有防隐形,就派隐形兵种。如果要用一个一个代码去表达所有可能发生的情况,会涉及海量数据,开发难度巨大。

要分析每一种情况,再敲成代码

程序猿的头发再多也难做到啊!

丰富的策略与随机应变正是「星际争霸2」的游戏精髓,用编程的办法很难有出路,还是得让机器自我学习发展出随机应变的能力。

在 ICRA 2018 DJI RoboMaster 人工智能挑战赛中,也面临同样的问题,比赛需要 4 台全自动机器人 2 V 2 对抗。

虽然参赛的角色少,对抗的环境也没那么复杂,但实体的对抗让比赛更加充满不确定性。

比赛机器人

参赛选手可以给机器人设定射击和躲避的程序,但使用机器学习的机器人明显更有优势。

希望了解更多对抗比赛中机器学习技术应用的小伙伴,可以穿梭至:《机器人比赛中,关于机器学习对竞技规则和未来研究的几点思考》

棋手柯洁曾说:“人类已经研究围棋研究了几千年了,然而 AI 却告诉我们,我们甚至连其表皮都没揭开。”如果突破了这项技术,那人类将迎来强 AI 的时代!

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20180312G1QQFQ00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 yunjia_community@tencent.com 删除。

扫码关注云+社区

领取腾讯云代金券