对于人类来说,现在最重要的就是发明一个真正的人工智能:一个在绝大多数情况下可以独立思考并采取行动的机器或者软件。一旦这种人工智能出现,它就能帮助我们处理其他形形色色的问题。
幸运的是,有数千名研究者在进行人工智能方面的工作。虽然他们中的大多数都在尝试用已知算法解决新问题,但是,有些人正在研究人工智能的首要问题。我兼顾两者。在我看来,解决应用问题刺激了新算法的产生,而且有了新算法,我们就可能解决新问题。为了取得进步,有必要找一些试着用人工智能加以解决的具体问题;如果试着发明人工智能,却没有它适合用来解决的问题,你会感到无从下手。我选择的领域是游戏,而且我也会解释为什么这是最相关的研究领域,如果你认真对待人工智能的话。
但是,首先,让我们承认人工智能近期已然受到广泛的关注了,尤其深度学习这方面的研究遭到热捧,各大主流媒体争相报道,大公司巨额收购相关的初创公司。这几年人工智能也取得了许多令人瞩目的成就:识别场景中的物件、理解演讲内容、名字和人脸的配对、翻译文本。通过一些措施,近期ImageNet比赛的赢家在正确识别图片中的物件方面甚至做的比人更好。有时我会觉得Facebook的算法比我更善于在照片中认出我的好友。
深度神经网络的拿手绝活儿就是所谓的模式识别问题,鲜有例外。基本上就是输入大量数据(一张图片、一首歌、一段文字),输出某些其他(通常小很多)的数据,比如一个名字、分类、另一张图或者其他语言的一段文字。为了学会这一技能,机器需要读取极大量的数据,找到其中模式。易言之,神经网络正在学习大脑感知系统所做的事:视觉、听觉、触觉等等。在较小范围内,他们也能做一部分我们大脑语言中枢的工作。
但是,这并不是智能的全部。人类并不会一天到晚坐在那里看东西。我们会有所作为:决策、执行以解决问题。我们对周边产生影响。(当然,我们有时候会在床上赖一天,但其他的大多数时候,我们总是以某种方式自主活动着的)。智能不断进化,帮助我们在一个充满危险的世界生存下去,而且做到这些需要与周边环境互动,规划行动复杂后果,也要不断适应变化中的环境。模式识别——识别物件或人脸、理解演说等功能——是智能很重要的一部分,但这只是一个不断思忖接下来怎么做的完整体系的一部分。想要研发人工智能,却只专注于模式认知,如同研发汽车却只专注轮胎。
为了建立一个完整的人工智能架构,我们就要建立一个体系,这个体系会涉及某种环境下的对应措施。怎样实现这一点呢?或许最显而易见的方法就是用[机器人]具身化人工智能(embodyAIinrobots)。而且实际上,我们也看到了,哪怕是那些最平凡的事情,比如随地形走路、拿起形状奇怪的物品,对机器人来说,都是很难完成的任务。80年代,机器人研究再度大量关注这类「简单」问题,也推动了应用领域的进步,也改善了人们对何为智能的理解。近数十年的机器人进步促使了自驾汽车的产生,这可能会成为人工智能在不久将来将要颠覆的社会领域之一。
如今,[机器人]的研究接触久了便清楚认识到它的局限。机器人价格昂贵,结构复杂,推进很慢。当我刚开始攻读博士学位时,我的计划是研发一套从错误中自我学习的机器人系统,加速复杂性智能性。但很快发现,为了让我的机器人从他们的经验中自我学习,很多的任务不得不重复上千次,每次又需要好几分钟。这意味着,一项简单的任务就需要花上几天的时间,这还是在机器运行良好、电池散热正常的情况下。如果想要更近一步研发复杂的智能任务,我需要制造一个比以前更复杂的[传感器]和致动器,这极大增加了系统崩溃的风险。我也需要研发一个复杂的环境从而让复杂技能得以习得。以上种种很快就超出了能力范围。这大概就是为什么进化机器人还没有能扩展到更复杂智能领域的原因。
我这次太迫不及待了,我渴望看到能从经验中自我学习的智能系统。于是我把主要精力投入到了电脑游戏领域。
游戏和人工智能有很悠久的渊源。早在人工智能被定义成一个专业范畴时,早期的计算机科学家就试图通过游戏编程来测试计算机是否能通过某种形式的「智能」来解决游戏中的问题。阿兰·图灵,计算机科学论证的奠基人,(重新)发明了极值算法并用它来下国际象棋(当时他还是用纸笔演算因为那时候还没有计算机);阿瑟·缪瑟尔(ArthurSamuel)第一个发明了学习机器的形式即现在的强化学习模型,他将这个程序用于跳棋游戏的自我对战。后来,IBM的深蓝计算机靠此战胜了国际象棋的卫冕冠军卡斯帕罗夫。如今,很多研究者力图研发更好的程序进行围棋竞技,但是仍旧没办法超过最好的人类选手。
经典棋盘类游戏,比如象棋,跳棋还有围棋很适合也很容易用来做研究,因为很容易用代码模拟它们,而且模拟速度也相当快——在一台现代电脑上,你可以轻易实现每秒上百万步棋招——对许多人工智能来说,这也是必不可少的。要玩转这类游戏也需要思考,具有「学会仅需一分钟,精通却需一辈子」的特点。情况确实如此,游戏与学习密切相关,而且好的游戏能够不断教会我们游戏技巧。实际上,某种程度上说,玩游戏的乐趣就是在于不断学习它,当再没什么东西可学之时,我们基本上就会对这款游戏失去兴趣。这意味着,一款设计精良的游戏很适合作为人工智能的基准。但是,鉴于如今已经出现(相对简单的)会下棋的计算机程序,比人类还厉害,很明显,玩转这些游戏不需要你真的像人们普遍认为的那样聪明。当你下棋思考时,它们锻炼的只是人类思考技巧中非常小的一部分。
但是,我们身边的游戏远远不止这些,尽管祖父年代的人们可能一度这样认为。除了我们熟知的棋牌类,角色扮演类游戏外,还有视频游戏。视频游戏很着广大的粉丝,因为它能充分调动人们的各种感官。就拿超级玛丽来说,这款游戏不仅要求你有敏捷的反应,视觉理解和动作协调性,还需要你对路径的判断力,对于风险奖励的取舍能力,对敌人和角色接下来的预测能力,对在规定时间通关的掌控能力。还有一些游戏要求你对信息的获取能力(比如星际);剧情的理解能力(比如天际);或者长久的规划力(比如文明)。
综上所述,视频游戏可以在计算机中的不同可控环境下运行,而且不少游戏可以在自身的速度上进行加速。开始一款游戏并不复杂也不昂贵,并且在极短的时间内可以运行上千种变化,给学习算法创造了条件。
因此,近期,人工智能研究人员逐渐将视频游戏作为人工智能基准也就不足为奇了。研究人员,比如我自己,已经采用了许多电子游戏作为人工智能基准。我们已经组织过多次竞赛,比赛中,研究人员可以提交他们最棒的游戏人工智能(game-playingAI),通过与其他研究人员最好人工智能竞争,测试自己作品的水平;基于同一款游戏反复竞赛能够让参赛者们精炼自己的研究的进路和方法,以期来年获胜。这些用来测试的游戏有超级玛丽,星际(论文),TORCS赛车游戏(论文),MsPac-Man(论文),一款街头霸王类的格斗游戏(agenericStreetFighter-stylefigthinggame)(论文),愤怒的小鸟(论文),UnrealTournament(论文)和其他等。几乎在所有比赛中,我们都发现每次比赛中,获胜人工智能玩家的表现都有提高。在促进圈内研究方面,这些竞赛也发挥了重要作用,每年发表了许多论文,竞赛软件也被用来作为一些新人工智能方法基准。因此,我们通过游戏竞赛来推进人工智能。
刚才的描述中有个问题,你能指出来吗?
就是那个。游戏特殊性。问题在于,提高人工智能玩家玩某款特定游戏的表现,并不必然有助于我们从总体上提升人工智能水平。事实是,在上述绝大多数以游戏为基础的比赛中,我们已经看到,参赛人工智能每次表现都更好了。但是,在绝大多数情况下,表现的提高并不是因为改善了人工智能算法,而是因为针对某些具体问题使用这些算法的方式更加聪明了。有时,这意味着人工智能的角色更加边缘化。比如,在第一年的赛车比赛中,几乎都是采用演化算法训练神经网络,让汽车跑在赛道上的人工智能。后来,大多数最好的参赛者使用了手动的「笨」方法让车跑在赛道上,但是使用了学习算法学习轨道的形状,调整行驶。这是一个解决特殊工程问题的聪明方法,但是,几乎没有一般智能方面的建树。
为了确定这种竞赛是在测试接近人工智能的对象,我们需要重塑问题。为此,定义我们试图测量的对象——一般智能(generalintelligence)——是个不错的主意。ShaneLegg与MarcusHutter提出了一个非常有用的关于智能的定义,大致就是一个代理(agent)在所有可能问题上的平均成绩。(在它们的最初方程中,每个对平均成绩有贡献的问题都会依据其简易性而被赋予权重,但是,让我们暂时忽略这一点)。很显然,在所有可能的问题上测试人工智能并不可能,因为问题是无限的。但是,也许我们可以用大量不同的问题来测试人工智能。例如,用大量不同的电子游戏?
想到的第一件事就是利用现有的一堆游戏机游戏,最好是能轻易模拟且能加速到实时速度许多倍的游戏,并搭建一个以此为基准的人工智能。这就是ArcadeLearningEnvironment(ALE)所做的事情。ALE可以让你在一百多个上世纪七十年代为复古雅达利2600游戏机发布的游戏上测试你的人工智能。人工智能代以像素级别来认识屏幕,必须用操纵杆来回答。ALE被用于大量实验,包括框架的最初研发人员做的实验。也许,最著名的就是谷歌DeepMind在《Nature》上所发表的一篇论文,介绍了他们如何利用深度学习这样非凡的技能来学习不同游戏(基于深层卷积神经网络的Q型学习)。
ALE是一个很好的人工智能基准,但是,有一个致命的局限性。利用Atari2600电子游戏的问题在于,游戏数量是有限的,而且研发新游戏是一个麻烦的过程。Atari2600编程之难,臭名昭著,而且游戏机的硬件局限性也妨碍了可加使用的游戏类别。更重要的是,既有游戏全部都是家喻户晓的,每个人也可以弄得到。这就有可能针对每一个特定游戏来调适你的人工智能。不仅可以针对每个游戏训练你的人工智能(DeepMind取得的成果就是靠每种游戏玩上成千上万次来训练系统),还可以为了在将要训练的游戏上表现更好,调适整个系统。