人工智能进化史
一次传奇聚会
人工智能这个词第一次出现是在1956年。在美国东部一个名为达特茅斯的小镇的一次聚会上,与会者用人工智能来表示能像人类一样思考的人工产物。在人工智能领域研究者之间,这次聚会已经成了一个传奇。
这次会上诞生了世界上最初的人工智能程序“逻辑理论家”,它的演示给人们带来了极大震撼。逻辑理论家是一个自动证明数学原理的程序。说起来,它就相当于东大机器人解答数学题的祖先。在当时那个时代,计算机的体型还非常庞大。随着硬件的进步,其计算速度会不断提升,由此带来的卓越计算能力总有一天会超越人类,人们为这个想法而群情激昂。这次聚会引发了后续各种充满野心的研究。这就是第一次人工智能研究热潮,从20世纪50年代后期一直持续到了20世纪60年代。
这一时期,大多数研究者都在研究如何通过推理和搜索来解决问题。他们痴迷于解决复杂的迷宫和各种智力。这就是人工智能中被称作“规划”的分支的原型,这条路线上后来发展出了因击败国际象棋世界冠军而震惊世界的超级电脑深蓝。不过推理和搜索终究只能解决迷宫和智力,而无法用于那些包含迷宫和智力所无法比拟的复杂现象的现实问题,如诊断疾病并提示治疗方法,或者分析经济及社会形势并提出热销产品的开发方案等。
在国际象棋或日本象棋等规则明确的游戏中,推理和搜索能够借助其超乎寻常的计算能力发挥作用,但在无法简单地限定条件的现实问题面前,只靠推理和搜索则明显力不从心。这种情况被称为“框架问题”,是如今仍在阻碍人工智能发展的课题之一。这个难题使人们对人工智能的过度期待急剧萎缩,相关研究也不再受到社会的关注。
在这一时期,已经有人开始研究对话系统。在1964年问世的人机对话系统“ELIZA”中输入“我头疼”,计算机就会反过来询问“你为什么会头疼”,虽然当时只能实现极为简单的对话往来,但对话系统这一构想却成为雏形,衍生出LINE和推特上的BOT等进一步发展。
专家系统
20世纪80年代,人工智能研究进入了一个新的时代,这就是第二次人工智能热潮。在这一时期,让计算机学习专业知识并解决问题的思路获得了长足进展。人们开始研发专门用于某一类问题的人工智能,而不是任何问题都能解决的万能型人工智能。这一时期出现了很多被称为专家系统的实用型系统,例如让计算机学习法律知识,在事先给定的规则下进行推理和搜索,像律师等相关领域的专家一样运行。
不过专家系统很快就遇到了障碍。我们稍微考虑一下就能发现,法律专家并不是只凭借法律条文和过去的判例来工作的。在提供法律咨询或在法庭展开辩论时,他们需要依据法律以外的社会规范和常识以及人类情感等因素做出综合判断,才能得出最妥善的解决方案。对专家系统来说,常识或人类情感方面的知识都是难题。人们可以不断输入法律条文和过去的判例,却无法让计算机学会常识和人们在各种情况下的情感等。
还有一个例子。对于用于医疗诊断的专家系统来说,模棱两可或无法数值化的表达方式都是难题。例如患者的主诉是“肚子刺痛”,但把这句话输入系统,系统却无法理解。肚子是指胃,还是指大肠或小肠,又或者是指腹部附近的其他器官,系统无法应对这些没有明确定义的内容。此外疼痛也是一个难题,因为疼痛是无法客观衡量并实现数值化的。
除此之外,专家系统还有许多课题亟待解决。前文提到的很多常识都是没有形成文字的知识,这也是课题之一。没有专门著作系统论述过的知识必须通过咨询专家等方式形成体系,用语言表达出来,才能让计算机学习,这需要耗费庞大的人力物力。此外,即使不惜成本投入巨大的时间和资金,也有可能再次遇到常识或模糊的表达方式的阻碍,未必能研发出真正实用的系统。此外还有其他各种难以攻克的课题横在面前,人们很快便对专家系统的研发也失去了热情。就这样,在发现解决问题所需的知识难以全部表述出来之后,原想通过将知识逐一输入计算机来解决问题的20世纪80年代第二次人工智能热潮也逐渐沉寂下来。
接下来,第三次人工智能热潮就发生在我们生活的当今时代。搜索引擎在20世纪90年代后期问世之后,互联网得到了爆炸式发展和普及。进入21世纪以后,互联网领域不断深入和扩大,大量数据在网上急剧增加。于是,人们又开始关注20世纪出现的“机器学习”的想法,可以说这个导火索引燃了21世纪前十年中期以来的第三次人工智能热潮。后来,机器学习中深度学习这一分支又进一步助长了此次热潮。
机器学习
前两次人工智能热潮都认为我们是依据逻辑进行“思考”的,认为“如果在A的情况下B为真,在B的情况下C为真,那么在A的情况下C为真”这种三段论法的积累才是思考的基础。但仅凭这些,我们无法解释为什么人能区分出狗和猫,以及为什么人在看到草莓时就知道它是草莓。狗绝不可能懂得三段论法,但狗也能区分出狗和猫的不同,所以不能说人类所有判断都是以逻辑为基础的。
词典乃至逻辑对于人们知道草莓是“草莓”并不会发挥很大作用。无论把“草莓”这个条目读上多少遍,都解决不了这个问题。人们必须实际看到草莓,并且有人告诉他“这是草莓”才行。机器学习就是让人工智能实现同样的过程。
正如前文介绍的,人工智能只能在特定课题的框架之内运行,所以首先必须设定一个明确的课题。例如我们假设现在的目标是物体识别,让人工智能“看到”照片之后,以较高精度判断出照片上的物体是什么。也就是说,被出示草莓的照片时,人工智能必须能回答出“照片上的是草莓”。
草莓有一些明显的特征,例如形状接近圆锥形,红色,表面带有细小的凹凸,在光照下能看到光泽等。不过仔细观察可以发现,草莓并不都是圆锥形的,不太成熟的草莓颜色也会淡得多。对这些细节,人们能够根据各种经验做出综合判断,极为灵活地识别出对象到底是不是草莓。没有一个孩子必须看过100万个草莓才能认出草莓,他们只要看过十来个就够了。但人工智能却很难学会这种灵活性。
要让没有灵活性的机器具备与人类相当的物体识别能力,就必须有大数据。大数据到底要多“大”,既不是几百也不是几千。不同的课题会有所不同,不过要实现可以实际应用的精度,最少也需要几万,有时甚至需要数以亿计的数据。正因为这个原因,机器学习的实用化必须等到我们这个能以极低成本获得无限数据的时代才有可能实现。此外,并不是只要收集到足够的数据,人工智能就能输出答案。
首先需要收集大量各种各样的图像。其中必须包含大量草莓的图像,否则就无法对所有图像中的草莓进行统计,这一点非常重要。因为除了整体数据,还需要对象物体的大量样本,只有这样才能顺利进行统计。
接下来,还要教人工智能认识草莓。为此需要制作草莓的数据,这叫作训练数据。训练数据会对含有草莓的图像做出标注。大多数情况下,图像中会包含各种物体,所以还要标注在图像的哪个部分的是什么。一般来说,训练数据要由人来制作。因此,制作大量训练数据需要耗费庞大的人力和资金。为了达到一定精度,需要数以万计的数据。在普通图像识别领域,斯坦福大学的研究团队整理了一个名为ImageNet的数据集。全世界的研究者可以利用这个数据集来挑战更高的精度。至此,机器学习的准备工作终于完成了。
在数字世界中,图像中“在什么位置、有什么颜色、辉度是多少”都是用“0”和“1”来表示的。“0”和“1”组成的庞大数列叫作像素值矩阵。人工智能需要根据其上下左右关系来掌握图像中包含哪些要素。种子与果肉的颜色和辉度对比、种子的阴影等,这些特征都必须尽可能识别出来,并根据包含草莓的数据和不包含草莓的数据,将这些特征对于判断对象是否是草莓的重要程度用数值体现出来。每一种特征都要被赋予“权重”。例如果肉的红色与绿色果蒂之间的对比度的权重是0.7,种子与果肉的对比度为0.5等。这个不断调整权重的过程叫作“学习”。
在机器学习的过程中,计算机通过反复学习给定的数据,自动识别出数据中的模式、经验及其重要程度。尤其需要注意的一个关键是,图像可以表示为构成画面的各特征量之间较为简单的加总。特征量的总和越大,这张图像就越像草莓,只要超过某个标准,就可以将其判断为草莓。
因此,如何设计特征量非常重要。如果特征量能更好地反映现实世界,机器学习的判断精度就会提高,否则增加再多的数据也无法提高精度。到几年前为止,主流的方法一直是由人类预先设计特征量。这是十分考验手艺的工作,程序员需要花费几年的时间来设计特征量,然后为了提高1%的精度,还要再花上一年的时间来调整设计。过于依赖直觉,人们有时就会受到盲信的误导,有时也会出现意想不到的纰漏。
深度学习
深度学习极大地提高了这种由资深程序专家设计特征量的机器学习的效率。深度学习让机器(人工智能)自己去研究应该关注哪些特征,类似于一种全凭机器算力的力气活儿。深度学习不再依靠简单的加总,而是将多个特征量组合起来表示“弧度”或“放射状”等略为抽象的概念,分几个阶段来判断其在图像中的存在方式。这样一来,原本需要依靠直觉的特征量设计就可以自动实现最优化了。实际上,深度学习已经通过这种方式在很短时间内实现了物体识别精度的飞跃性提升。
要解析数量庞大的数据,就无法处理过于复杂的运算。对于擅长加法的计算机来说,图像所有部分加起来就是整体这一特征十分有利。而语言表达就不会这么简单。例如“太郎喜欢花子”和“花子喜欢太郎”这两句话的组成部分完全一致,但意思却截然不同。
图像还有其他一些特殊性质。例如图像中处于任何位置的草莓都是草莓,不会出现类似“位于图像中央时是草莓,位于右上角时则是香蕉”的情况。无论旋转,还是扩大或缩小,草莓就是草莓,即使分辨度降低了,草莓也还是草莓。可能有的读者会觉得我何必强调这些理所当然的事情,但这一点非常重要。制作训练数据集通常需要庞大成本,但对图像可以把同一张训练数据旋转、扩大或缩小,用这种方法就能迅速增加大量数据。内行人把这种做法叫作“掺水”。
很多人误以为深度学习就是只要提供大量数据,人工智能就能自动学习,输出连人类也未曾掌握的真正答案,但其实并没有这么先进。深度学习是指在一定框架之内提供足够的训练数据,人工智能便会根据数据对过去由人类手工从事的尝试和摸索等加以调整,从而以较低的成本达到与传统机器学习相当或者更高的精度。读到这里,相信大家多少能明白近乎幻想的误解有多大危害了吧。
强化学习
前文提到在机器学习的过程中,制作训练数据比设计特征量还要费时费力,不过也有一些课题可以不用训练数据,完全交给机器运行。强化学习就是其中最典型的一种。有些读者可能看过一个演示视频,几辆机器人车辆经过几天的学习,便可以在舞台的轨道上随意开动而不会彼此撞到一起。我们还听说日本象棋或者围棋计算机相互对弈仅需几秒,它们能通过多次进行数量庞大的对局自动切磋从而提高实力。这些事例甚至会让我们觉得,在不久的将来可能就不再需要人类制作的训练数据了。
有些目的、目标以及制约条件能明确表述出来的课题确实可以通过强化学习实现最优化。例如我们可以给汽车设定尽快到达目的地的目标和不能撞到障碍物的制约条件,让它自己去试错。机器人车辆最初会互相碰撞,或在中途停下,但一段时间之后便能在维持良好秩序的同时顺畅行驶了。此外,大型工厂的能源效率最优化等课题也很适合强化学习。不过也有一些情况看似适合强化学习,但实际却并非如此。例如在大规模灾害现场救助被困人员等任务,就不能只是“在尽量尝试所有可能性的过程中找到适当方法”。因为“所有可能性”太多了,至少要在“物体会向下坠落”等物理法则的基础上去探索才能解决问题。
经常有人问我“会不会有一天,人们再也不用从事提供训练数据和设定目的及制约条件等作业了”。我认为这些工作可能变得更省力,但不会完全消失。因为人工智能和机器人必须为人类社会贡献力量,而只有人类才知道怎样才算是贡献力量,必须通过某种方式把正确答案告诉人工智能。
我还经常看到一些观点,误以为“深度学习就是模仿大脑,因此能像人脑一样判断”。其实不对,深度学习并不是模仿大脑,而是模仿大脑构建出数理模型。无论猴子还是老鼠都有大脑,但谁也不能确定老鼠能区分出自行车和电动车或者癌细胞与正常细胞的不同。
最近,还有个别社会学家说“让人工智能从政说不定会更好”,不知道是不是因为他对现实的政治过于绝望造成的。想让人工智能管好政治,至少必须通过数理模型说明什么是好的。能源消耗量等能够数值化的问题可以优化,但管好政治是无法数值化的,因为人们的幸福无法用数值来衡量。作为数学家,这一点我可以肯定地告诉大家:现代数学无法用数值衡量幸福。无视这个科学事实,把什么都交给人工智能来判断的话,恐怕只会造成超乎人们想象的史无前例的恐怖政治局势。
至此为止,我简要回顾了人工智能的发展史,也消除了很多人对人工智能的误解。接下来,我会详细介绍“机器人能考上大学吗”这个挑战展现的人工智能最前沿情况,也就是在较近的将来,人工智能拥有的可能和局限。