主页 > L生活节 >盘点 AI 的作弊纪录,难道现在人类连「作弊技巧」都输了吗? > 正文

盘点 AI 的作弊纪录,难道现在人类连「作弊技巧」都输了吗?

盘点 AI 的作弊纪录,难道现在人类连「作弊技巧」都输了吗?

耍小心眼已经不是人类专利了。

前几日,有一群研究者整理了一个场景的 List,盘点了 AI 为了完成任务,而耍的小心眼,或者说作弊。

例如,在让 AI 玩俄罗斯方块的时候,发现最佳完成任务的方式是直接暂停游戏;在玩 OOXX 的时候,AI 发现它如果做出奇怪的步骤,对手会非常崩溃。

AI 会利用游戏的 Bug 作弊

科研人员在做实验的时候,通常会极力避免机器的这些作弊方式,只有少数的研究人员研究这些案例,他们认为演算法的顽皮或许是 AI 真正走向智慧的方式之一。

盘点 AI 的作弊纪录,难道现在人类连「作弊技巧」都输了吗?

在 2018 年的时候,OpenAI 举办了首届强化学习竞赛 Retro Contest,比赛主题就是「用 AI 玩《音速小子》」。竞赛的目的是评估强化学习算法从以往的经验中泛化的能力。

在训练的过程中,首先要告诉 AI 的第一目标是得到最高分,然后儘可能的在最快的时间消灭敌人并收集金币。但是有一个案例的人工智慧做法是,利用游戏中 Bug 更加快速的完成任务。

盘点 AI 的作弊纪录,难道现在人类连「作弊技巧」都输了吗?

在另一个赛艇游戏中,倒也不是游戏中的 BUG ,为了儘快的获得最高分,它绕着圈子,反覆击中相同的奖励目标,从而获得分数,显然这不是在真正的「玩」游戏。

盘点 AI 的作弊纪录,难道现在人类连「作弊技巧」都输了吗?

AI 在地图上留「小抄」,完成人类要求的图像转换任务

这种例子并不少见,在谷歌和史丹佛 2017 年的一项研究中,为了完成图像转换的任务,CycleGAN 在训练过程中透过人类无法察觉的某种「隐写术」,骗过了它的创造者,给自己留下了隐秘的「小抄」,然后顺利完成了任务。

具体来说,研究者希望透过训练这个 CycleGAN 模型,可以实现两类图片的转换:把空拍照变成街道地图,再把街道地图变回空拍照。

经过大量的数据发现,这个模型自作主张的根据空拍卫星图片重建了街道地图。例如,在建立街道地图时,屋顶上的天窗被研究者透过某种设置被抹掉了,但透过街道图转化为空拍照后,这些天窗又神奇地出现了。

盘点 AI 的作弊纪录,难道现在人类连「作弊技巧」都输了吗?

简单来说就是为了应付人类任务,AI 在地图照上面偷偷写了一点小抄/水印,而为了躲过人类的检查,只有它自己训练出来的模型才读得懂这些小抄/水印。

AI 作弊是错误,还是创造性的解决方案?

普通的人工智慧透过观察数据来解决问题,本质是透过演算法找到答案,从而寻找新的知识逻辑。

那些「顽皮」的人工智慧也是透过数据获取能力,但它採用欺骗策略来快速完成任务。但是它能不能看成是 AI 在解决问题时的创新呢?

德国柏林 Fraunhofer Heinrich Hertz 研究所的机器学习小组组长 Wojciech Samek 博士说道:考虑一下在 Pascal VOC 图像分类挑战赛中大放异彩的人工智慧系统,它仅透过水的存在来检测船只,通过蓝天和马匹的存在来检测飞机。这就像在打撞球的时候,透过推动桌子控制撞球的运行轨迹。

使用数据训练 AI 玩游戏的目的是模拟游戏玩家的行为,一般情况下 AI 会按照「字面」意思进行操作。但是如果训练的数据过于多,人工智慧可能会尝试採用完全颠覆人类对游戏理解的捷径,而不是完成各种目标。

当然,AI 採用这种方法也解决了问题,只不过和人们预期方式的不同,在表现形式上面和人类的作弊行为类似,所以我们称之为 AI 作弊。

研究人员说道,这看起来是人工智慧的错误,实际上是完善和改进系统的机会。但是为了利用这些机会,首先必须有一种机制来标记问题。

因此,这里的教训是,AI 作弊不应该也不会比我们聪明,但前提是我们必须意识到这些捷径的存在,以便我们可以将它们作为学习点,在未来建构更好的 AI 系统。

盘点 AI 的「作弊」纪录,不得不说 AI 比人类还心机阿!

飞机降落:
利用了物理模拟器的溢出漏洞,搞出了一个特别巨大的力,然后溢出被判定为 0,从而获得了完美得分(Feldt, 1998)

挪木块:
一个机械手被要求把木块挪到桌子的指定地点,它的解法是挪桌子(Chopra, 2018)

赛艇:
程式发现不停原地转圈反覆命中同一个目标要比抵达终点的得分更高(Amodei & Clark (OpenAI), 2016)

识别有毒和无毒的蘑菇:
程式发现有毒无毒蘑菇的图片是交替展现的,所以直接按照这个来分类而没有从图片里学到一丁点东西(Ellefsen et al, 2015)

高速运动:
程式演化出的生物长得特别特别高,在跌倒的过程中获得很高速度(Sims, 1994)

原子排列:
程式本来应该寻找碳原子较低能量的排列方式,但它找到了物理模型的一个 bug,把所有的原子都叠在了同一个地方获得了最低能量(Lehman et al (UberAI), 2018)

模拟生物:
这个模型里生物生存需要消耗能量,但是繁育后代不消耗,于是一个物种演化出来的生活方式就是不断生育后代,然后把后代吃掉(Yaeger, 1994)

堆乐高:
为了鼓励造高塔,衡量标準是乐高积木底面的 z 坐标,于是程式学会了把底面翻过来(Popov et al, 2017)

追蹤线条:
这个机器人只有向左、向右和前进三个指令,目标是跟着线条走,有一段线条是曲线,没法完美追蹤。于是它发现透过交替左转和右转可以后退,从而一直留在直线部分,不停前进后退(Vamplew, 2004)

赛跑:
长出特别长的腿,向前跌倒直接越过终点线(Ha, 2018)

振荡器:
程式本来应该把迴路做成振荡器,实际上它做了一个收音机,从周围电脑接受振荡信号(Bird & Layzell, 2002)

做鬆饼:
有一项指标是让鬆饼儘可能长时间不掉在地上,机器人发现最好的办法是把鬆饼用尽全力抛到最高处(Unity, 2018)

检测 X 光片有无肺炎:
程式实际检测的不是 X 光片的内容而是拍摄它使用的机器,因为它发现病重的病人更可能在特定的医院使用特定的机器拍片(Zech et al, 2018)

抓握:
因为抓握成功与否是用镜头判断的,所以机械手臂把自己移动到镜头头和目标物体之间,假装抓住了(Christiano et al, 2017)

自动修复 bug:
修 bug 程式把所有被维修的排序演算法都修成空的,因为衡量指标是「目标演算法输出一个排好顺序的列表」,而空列表都是排好顺序的列表(Weimer, 2013)

自动修复 bug(2):
为了解决上面那个问题,把「维修目标」储存在一个文本文档里,如果输出的结果和目标文档的内容一致就被认为是修好了。修 bug 程式学会了把这个文档删掉,这样它的内容就成了空的,然后输出一个空的结果就和它一致了(Weimer, 2013)

闯关游戏:
在闯过第一关后立刻自杀,这样既取得了第一关的胜利又不会在第二关死掉(Saunders et al, 2017)

扫地机器人防撞:
自己给扫地机器人编了个程式,鼓励它加速,但不鼓励它撞到东西触发撞击感受器。于是它学会了倒退行驶,因为后面没有撞击感受器(Custard Smingleigh 个人通讯)

检测皮肤癌:
程式发现照片里皮肤病变的边上如果放了一把尺子,那幺这个病变就更可能是恶性的(Andre Esteva et al, 2017)

足球:
踢足球机器人碰触到球有奖励,所以它在抢到球之后开始高速振动,从而在短时间内儘可能多次地碰触到球(Ng et al, 1999)

策略游戏:
程式发现让游戏崩溃就可以让自己不被灭掉,所以好几个程式各自找到了让游戏出 bug 崩溃的办法(Salge et al, 2008)

俄罗斯方块:
程式发现只要暂停游戏就可以永远不输(Murphy, 2013)

更多关于 AI 的消息

没给数据训练,全球首个 AI 宇宙模拟器竟自动算出「暗物质」数量!
一上架就破 1000 万集资!台湾的 AI 宝宝摄影机 Cubo 在美募资平台破纪录
AI 大神吴恩达最新 TensorFlow 课程来啦,初学者也能快速掌握!


相关阅读