01引言:计算机不等于人工智能
2019世界人工智能大会在开幕式上,“钢铁侠”马斯克坚定地表示:“计算机已经在很多方面比人更聪明了,人们和计算机下围棋像你和宙斯斗争一样没有希望的,我们差太远了”,“人类智力的追求在越来越少的方面比计算机好,每个方面以后都会被计算机越来越多的超越,这是肯定的”。
对此,“太极拳七段”马老师则以中国人特有的智慧,风淡云轻地辩驳道:“和电脑比赛下棋是愚蠢的,只有愚蠢的人才会跟汽车比谁跑得快”,“人类发明了计算机,我从来没有看到计算机发明一个人”,“根据科学,人从来无法创造一个比自己更聪明的动物”。
当然,马斯克对马云的观点也“非常不同意”。两人孰对孰错呢?
我们先不说将来AI会不会超越人类,只说两位大佬都用到了同一个词——“计算机”,看来两位“大马哥”都把AI等同于计算机了。如果按照严格的科学定义,把计算机视为一台严格遵照机械程序执行任务的图灵机,那么,计算机究竟能不能模仿人类的全部能力,这在理论上还是存在重大争议的。计算机≠人工智能,这是AI界的主流看法,但人们往往把这两个概念混为一谈。
计算机跟人工智能的关系,远比人们通常理解的更复杂。一部计算机发展史,就是一部人工智能的逐梦史。但现实和梦想之间,却隔着深不可测的海洋。
02图灵机的创世纪
20世纪后半叶,计算机技术的广泛应用,个人计算机(PC)的全球普及,这或许是人类历史上意义最为深远的技术革命,托夫勒称之为“第三次浪潮”,人类社会继农业阶段、工业阶段后,进入到了信息化阶段。通用计算机(图灵机)的发明,就是这一伟大历史转折的关键点。
说到计算机,其实人类很早就使用各种计算装置了。从中国古代的算盘,古希腊安提凯希拉天文计算装置,到17世纪帕斯卡和莱布尼兹设计的“加法机”,19世纪巴贝奇设计的“差分机”,再到20世纪上半叶IBM早期推出的各种机械?电子数字计算机,这些计算装置无一例外有一个共同特点,即它们都是专用计算机而非通用计算机。也就是说,它设计用来做什么,就只能做什么,别的什么都不能做,其程序和计算是分离的。
所以,如果要解决不同的计算任务,就得设计、制作不同的计算装置,硬件、软件都得重新再做。但人类要解决的计算任务是源源不断、无穷无尽的,原则上就得做无穷多台不同的计算机才行。所以,专用计算机是不能普及化的,制作成本就会非常高,只能用于特殊的计算任务,或工业与军事上的重要目标。
而通用计算机的出现就改变了这种技术瓶颈,使得计算机普及化成为可能。什么是通用计算机?简单说,就是一台可以完成任何计算任务的机器。这样一来,我们只要在机器内部装入不同的计算程序,它就可以执行任何计算任务,即只需更换软件,毋须更换硬件。现在我们的个人电脑,既可以听音乐、玩游戏、看视频,也可以做数据分析、文字处理、美术设计,搜索、网购、通讯、远程控制等等,它几乎无处不在,无所不能,一台电脑在,天下任我行。所以,从专用计算机到通用计算机,这是一个历史性的跨越,人类从此进入了计算机时代。
通用计算机的发明,主要归功于两位天才数学家——图灵和冯·诺依曼。图灵被称为“计算机科学之父”, 他做出了通用计算机的数学模型,这就是永垂青史的“图灵机”;冯·诺依曼被称为“现代计算机之父”,在图灵机的基础上,他进一步做出了通用计算机的工程构架,这就是大名鼎鼎的“冯·诺依曼体系”。
直到今天,所有计算机都还严格遵循着图灵和冯·诺依曼的理论设计。通用计算机比专用计算机究竟好在哪呢?我们说一个经典的故事。世界上第一台电子计算机是由莫希利、埃克特在1946年设计的ENIAC(译成中文是“电子数字积分和计算机”),由于它缺乏通用性、可变性与存储程序的机制,因此耗电多、费用高就成为其不可承受之重,而程序与计算分离是其致命的缺陷。据说,当年只要ENIAC一开动,整个费城的灯光都会黯然失色。后来,冯·诺依曼受军方委托,对ENIAC方案进行改进,他根据图灵机的构思,提出了一种新的计算机设计方案EDVAC(译成中文是“离散变量自动电子计算机”),完美地解决了ENIAC的所有难题。这就是著名的“诺依曼机”,也是世界上第一台通用电子计算机。
诺依曼机最大的特点就是“程序内存”,也就是说,它的程序被处理成数据装进了计算机内部,所以计算机就能自动依次执行这些指令,不需要从外部接线来执行指令了。譬如像ENIAC,其程序和计算是分离的,每次更换新的指令时,需要把数百条线路重新接到机器上去,一群接线员要手忙脚乱地忙活几天,才能进行几分钟的运算,这样一来,效率就太低了,能耗非常高。根据诺依曼机的设计方案,只要程序能够内存,它就可以做成芯片装进计算机里了,软件工业由此而兴,这是现代计算机的核心。目前,从就业人数上看,全球硬件工程师人数只有100万左右,但软件工程师人数却过亿,差距非常大。
从专用计算机到通用计算机,不仅是科学的一次飞跃,也是科技的一次革命。如果说蒸汽机是18世纪的通用技术,电力是19世纪的通用技术,那么计算机就是20世纪的通用技术,它不仅改变了人类的社会组织行为,也改变了人类的日常生活方式。
03机器学习的艰难崛起
那么,计算机又是怎么跟人工智能挂上钩的?如果一台通用计算机的功能非常强大,可以用它来模拟人类的所有行为,这个研究方向就是人工智能。按照“人工智能之父”约翰·麦卡锡的解释就是:“(我们的目标)是远离对人类行为的研究,将计算机作为解决某种难题的工具。这样一来,人工智能就会成为计算机而非心理学的分支学科。”
计算机和人工智能的思想先驱都是图灵,他最早提出了用计算机来模拟人类思维的设想。1936年,24岁的图灵就写出了他的成名作《论可计算数及其在可判定性问题上的应用》,给出了“机械计算”的严格定义,这就是“图灵机”的概念。1950年,图灵发表了AI史上的经典论文《计算机器与智能》,开篇就提出“机器能够思维吗?”这一直指本质的问题,文中他特意说明,机器就是指“数字计算机”,并设计了一个模仿游戏来验证机器是否具有思维能力,这就是著名的“图灵测试”。机器能否具备真正的思维能力,这就是图灵给我们留下的思想谜题。
整个人类科学史,差不多就是一部天才们的独创思想史,在浩瀚的宇宙中,其思想光芒犹如璀璨星辰,指引着人类探索的方向。图灵的天才思想激发了后来数学家们对设计“智能机器”的强烈愿望,这就是人工智能的源起,就像麦卡锡定义的那样:“人工智能是研制智能机器的一门科学与技术”。
二战后,在学术界和工业界的共同推动下,AI技术迅速崛起,形成了第一波AI热。1956年,由麦卡锡和马文·明斯基两人发起,举办了意义深远的达特茅斯会议,与会者全是当时计算机科学、认知科学和信息科学的顶尖高手,信息论创始人香农也参加了,IBM赞助了本次会议。麦卡锡在会上首次提出了“人工智能”这一术语,标志着这一门学科的正式诞生。
刚开始,大家对AI技术抱有很大的期望和信心,认为很快就能设计出智能机器。1967年,在接受记者采访时,明斯基还信誓旦旦地表示:“再过3∽8年的时间,我们将创造一台能够达到普通人类总体智力水平的机器。我指的是一台能够阅读莎士比亚著作,给车上润滑油,会耍手腕,能讲笑话,而且还会跟人打上一架的机器。那时,机器能以令人惊奇的速度自学。几个月后以后,它将达到天才水平,而再过上几个月,它的能力将不可估量。”当时这番话几乎是天方夜谭,即使现在也还是遥不可及的目标。
AI领域最先取得重大进展的是机器证明(ATP)。1959年,美籍华裔数学家王浩用计算机证明了罗素《数学原理》中的350条定理,只用了9分钟,但罗素和怀特海合写这部书却花了整整10年的时间。在棋类游戏上,机器也表现出了很高的“智能”,1997年,IBM超级电脑“深蓝”战胜国际象棋世界冠军卡斯帕罗夫,这也是AI史上的一个标志性事件。但除了专家系统,早期AI技术做得都不成功,尤其是在机器翻译、图像识别、语音识别等这些具有商业价值的项目上,当时AI技术根本无法处理,这就导致从20世纪70年代到2005年这长达30多年的“AI寒冬”。
为什么会这样?就是大家的研究方向出了偏差。当时AI的研究方法,主要有“符号主义”和“联结主义”这两种观点。符号主义主张,如果我们把计算机的编程做得非常全面、强大,那么用纯粹逻辑程序的方法,机器就能模拟人类的全部行为,参加达特茅斯会议的科学家几乎都是符号主义的拥趸者。联结主义走的却是另外一条技术路线,它主张模拟人类的神经网络,通过机器学习的方法来实现AI的全部目标。
有意思的是,在漫长的“AI寒冬”里,符号主义曾是绝对的主流,但后来却逐渐销声匿迹了,而联结主义是少数派,只有它熬过了严寒,最终迎来了灿烂盛放的春天。
为什么会这样?现在回过头再去看这段历史,就比较清楚了:符号主义是希望把人类行为的所有问题都设计好,编程好,这是一种确定性的机器认识过程,由一台功能强大的通用计算机就能实现;而联结主义并不是事先就把所有问题都设计好,编程好,而是通过模仿神经元联结方式,去模拟人类学习过程,这就是一种不确定性的机器认识过程,但它也暗示了,神经网络可能根本就不是图灵机。简单讲,就是学习机可以自动编程,而计算机只能人工编程,两者是不同的概念。
符号主义和联结主义的根本分歧点在于:我们根本不可能事先就把所有问题都设计好,编程好,“万能算法”是不存在的,电脑只能像人脑那样,通过模拟复杂的神经网络联结方式,激发出某种“超计算”的自组织行为,它才可能具备真正的思维能力。
其实,在图灵《计算机器与智能》这篇开创性的论文中,就注意到了这个问题,在结尾处还专门写了一章来讨论“学习机”,他指出学习机和数字计算机是有重大区别的:数字计算机的程序是固定的,运算过程也是确定的,而学习机是随机的,运算规则也可以改变。所以,当我们说“基于神经网络的机器学习不是纯粹的图灵机”时,希望大家千万不要大惊小怪,因为图灵自己早就预示过这种结果。
我们再来说基于神经网络的机器学习,其灵魂人物是W.H.匹茨和G.欣顿两人,就像图灵和冯·诺依曼是计算机的灵魂人物一样。匹茨发明了神经网络,欣顿进一步完善了它,并在“AI寒冬”中坚持这个研究方向30多年,最终取得历史性的成功。
匹茨是一位拉马努金式的天才。1943年,匹茨和W.S.麦卡洛克首次提出了“神经网络”的概念,这是一个优美的数学理论,他们采用了链式环状的卡尔纳普语言网络系统,来描述神经元各种联结方式,这是一项开创性的工作,具有非凡的想象力。当时麦卡洛克是芝加哥大学神经生理学教授,而匹茨只是一个在芝加哥大学旁听的流浪少年,还不到20岁,但他通过自学已精通了模数学。在匹茨-麦卡洛克模型的基础上,1957年,罗森布拉特提出了“感知机”模型,这是一个具备初级学习能力的单层神经网络,它可以根据信号汇总强度和阈值之间的误差,来重新调整各项加权,从而达到理想的输出效果。走出第一步看似简单,但这却是“开天辟地”的关键一步,在科学探索上,提出问题比解决问题更重要,开辟新方向比形成体系化更重要。
但遗憾的是,这种单层神经网络,连最简单的XOR问题——即判定一个两位的二进位制数是否仅包含0或1——都不能解决,所以它基本上没有实际用途。直到1974年,欣顿提出多层神经网络模型后,才很好地解决了XOR问题。这一年,还是哈佛大学博士生的沃博斯首次提出了反向传播算法(即BP算法),1986年,欣顿又重新发现这一方法,并首先利用广义反向传播算法来训练多层神经网络,至此,基于多层神经网络的深度学习方法,终于登上了AI的历史舞台。但当时正值“AI寒冬”,这一方法也被“雪藏”了近30年。如果不是欣顿等少数人的坚持,深度学习早就被“冻死”了,哪里还会迎来春暖花开呢?
有趣的是,欣顿是布尔代数创始人G.布尔的玄孙,布尔代数是计算机开关电路设计的数学基础,神经网络看来又成为了学习机开关电路设计的数学基础,欣顿艰难的理论坚持,或许就来源于灵魂深处对“布尔家族”的那份荣誉感。
欣顿后来回忆说,1970年代,他刚提出分层神经网络的想法时,大家都不认可,“传统的思路无疑更受关注和信任”,导师对他也很不看好,这是最艰难的时候。“每周我和导师都会发生激烈争辩,我一直坚持自己的想法,对导师说,‘好吧,再给我六个月,我会证明给你看的’。然后六个月过去了,我会说‘快了快了,再给我半年时间吧’。之后,我索性说‘再给我五年吧’,人们都说,你已经做了五年,但它并不管用。”但欣顿始终坚持自己的思想,熬过了将近30年的漫漫寒冬,这一理论才获得举世公认。
2005年是AI史上的关键一年,欣顿提出了深度学习神经网络的整体构架,这一成就堪比冯·诺依曼体系。随着互联网和大数据的兴起,深度学习也很快获得了富有成效的商业应用,像传统AI技术不能处理的机器翻译、图像识别和语音识别等难题,也取得了突破性的进展。因为,训练神经网络需要海量的数据,这个条件在前互联网时代是不存在的。
现在,谷歌神经机器翻译(GNMT)已经接近人工翻译的水平,IBM 开发的超级计算机“沃森”也以绝对优势赢得了人机辩论赛。特别是,AlphaGo让深度学习一战成名,举世震惊,也让大家看到了神经网络技术的无限潜力。欣顿也被人们誉为“深度学习教父”,成为AI界的神级存在,他后来加入了谷歌公司,现在是谷歌副总裁,2017年他被彭博社评为改变全球商业格局的50人之一。深度学习已俨然成为当前AI研究的绝对主流,广泛应用到自动驾驶、物联网构架、医疗诊断、自然语言理解、科研数据分析、仿生机器人等多个商业领域,推动了全球性的AI热潮。很多人相信,21世纪将是AI时代。
就像深度学习另一位先驱者Y.本希奥总结的:“在经历了人工智能的寒冬之后,深度学习神经网络的强势回归不仅仅代表着技术上的胜利,也给整个科学领域上了一课。回顾人工智能的历史,我们必须意识到,哪怕一些好的想法受到当时的技术状态限制而看似前景渺茫,我们也不应放弃。鼓励多样化的科研课题与方向,或许有一天就会让一时处于低谷的领域迎来复兴。”看上去很美,智能机器似乎即将美梦成真,但人们的怀疑却从未停止过。
04深度学习的理论极限
神经网络究竟是什么?它是计算机,还是学习机?深度学习的工作原理是什么?这些都还是未知之谜。AlphaGo的发明者戴密斯·哈萨比斯博士在乌镇接受记者采访时说过,他并不知道AlphaGo是如何决定下一步棋的。德州农工大学数学家、FAIR 的访问科学家 Boris Hanin 说得更直接:“最接近事实的情况是,我们对神经网络的实际运作方式几乎一无所知,也不知道什么才是真正有洞察力的理论。”欣顿在谷歌 I/O 2019 大会上也表示过,没有人知道神经网络究竟是如何工作的。
尽管深度学习现在看起来红红火火,风光无限,但最近人们对它的反思和质疑也日渐增多起来,大家聚焦点都在一个地方:它本质上只是一种统计方法,并未形成真正的理解能力,因此它还不具备像人类那样学习与认识能力。
欣顿本人其实对深度学习做过许多反思,对反向传播这一核心算法,他表示“深感怀疑”,建议“把它全部抛掉,从头再来”,指出要让神经网络变得更聪明,就必须更好地发展“无监督学习”。
杨立昆(Yann LeCun)是Facebook 首席 AI 科学家,他发明了著名的卷积视觉神经网络,并和欣顿、本希奥共获2018年度图灵奖,这是深度学习的三位先驱者。他非常明确地指出过深度学习的局限性,譬如,需要太多的训练数据,不能推理,也不具备常识,“这些深度学习系统不知道如何整合抽象知识”。
他进一步解释说,“如果你思考一下动物和婴儿是如何学习的,在生命的最初几分钟、几小时、几天里,学很多东西都学得很快,以至于看起来像是天生的,但事实上,他们不需要硬编码,因为它们可以很快学会一些东西。” 他承认,目前还不清楚哪些途径可以帮助深度学习走出低谷。
清华大学人工智能研究院院长张钹院士也认为,目前基于深度学习的AI技术已触及天花板,它做得效果最好的是棋类游戏、图像识别和语音识别这三个领域,但在其他领域很难再出现像AlphaGo这样的奇迹了。他进一步分析说,深度学习要发挥出潜力,必须具备五个条件,即“充分的数据”,“确定性”,“完全的信息”,“静态环境”,“特定领域”,实际上,只要符合这些条件,机器还是在“照章办事”,并不具有“灵活性和创造性”。因此他断言:“现在的深度学习本质上是基于概率统计”,“这个方法本身通常无法找到‘有意义’的规律,它只能找到重复出现的模式,也就是说,你光靠数据,是无法达到真正的智能。”
大佬们讲了这么多深度学习的缺点和缺陷,归根结底,其实就是一条:深度学习只是专用学习机,而不是通用学习机。譬如,你做了一个下围棋的多层神经网络,就不能拿来下象棋;做了一个写诗的深度学习算法,就不能拿来谱曲。也就是说,有多少项学习任务,原则上就得做多少台学习机。这样一来,我们又陷入到图灵之前专用计算机的那种困境中了,因为人类面临的学习任务也是源源不断、无穷无尽的,不可能去做无穷多台不同的学习机。
大道至简,只有专用计算机而没有通用计算机,就做不出来真正的计算机;只有专用学习机而没有通用学习机,也做不出来真正的人工智能。我们还缺乏一种通用学习机的基础理论,这是当前AI研究面临的最大“瓶颈。”
05从通用学习机走向通用人工智能
但是,现在人们讲得最多的是“通用人工智能”(AGI)这个概念,而不是“通用学习机 ”这个概念。哈萨比斯博士在剑桥大学演讲时就说过,其团队的最终目标就是要让AlphaGo实现AGI,即使用一套单独的、灵活的且具有变通能力的算法,就能够真正像人脑系统那样,仅通过原始数据就能从零开始学习如何掌握任意一项任务。
人们对AGI的一般定义是:一种可以模仿人类所有行为的AI,也就是说,机器可以执行人类所有能够完成的任务。这是一种强AI的定义。一般认为,AGI不可能由通用计算机来实现,但它可以由通用学习机来实现。因为,电脑和人脑都一样,绝不可能把所有任务的程序都事先设计好,编程好,必须从数据和经验中去不断学习,不断纠偏纠错、归纳概括,最终自己编程来掌握某项任务。
最早提出“通用学习机”这个概念的,是美国俄亥俄州立大学数学博士熊楚瑜,目前AI界大概只有20几个人在做这件事情,属于极少数派。但如果跟“通用计算机”遥相呼应,“通用学习机”倒是相得映彰的一个新概念,也相当简洁优美。什么是通用学习机?简单说,就是从归零状态开始,通过数据输入,能够对任何学习任务进行自动编程的机器。
所以,我们把机器分成两类,一类是计算机,是人工编程的,其程序是固定好的,一类是学习机,是自动编程的,其程序是可以改变的。深度学习也是从归零状态开始,不断输入数据,不断调整权重参数,通过逐层梯度下降的反向传播,最终收敛到一个最佳匹配的概率分配函数上。所以,深度学习的程序是在不断修改、不断完善的,它不再是一台计算机,而是一台学习机。
无论多么复杂的机器行为,均有其基本的数学原理。下面,我们就用一个最简单的数学模型来说明计算机和学习机的区别。
无论计算机还是学习机,都是一台信息处理器M,当对M输入一个数据x,经内部处理后,M就会输出一个数据y。所谓编程,一般是分两步走:首先,我们要建立起输入x和输出y之间的一种函数关系y=f(x),这一步就叫“数学建模”;然后,就是来求解这个函数f,即用一个图灵机来解这个方程f,如果f有解,那么在有限步骤内,图灵机肯定就会获得确定的结果,我们把这些有限步骤写成代码,这一步就叫“编程”,机器就会按照固定程序来机械地进行运算了。
但是,机器行为的复杂性在于:并非所有的任务都可以数学建模,即建立起输入和输出之间一种确定的函数关系;也并非所有的函数都可求解,即有些任务可以数学建模 ,但却无法求解,写成代码形式。
所谓计算机,就是其模函数f和代码都是人工设计好的,机器按照固定程序进行运算就行。而所谓学习机,其模函数f并不是确定的,而是要根据输入和输出的匹配关系来逐步调整,当最终调整到位时,机器就会确定一个模函数并写成代码,这就是机器的自动编程。专用学习机只能建立、求解某一特殊类型的模函数,而通用学习机可以建立、求解任何类型的模函数。
如果我们能把人工编程这一套机制装进机器内部,让机器通过自我学习,形成自动编程的能力,我们认为机器就具备了真正的思维能力,这是人工智能的本质。从专用计算机到通用计算机,从通用计算机再到专用学习机,从专用学习机再飞跃到通用学习机,这就是近百年计算机和人工智能发展走过的崎岖道路。
历史总是惊人地相似,我们已超越了图灵时代,正处在一个巨大的历史转折点上。就像图灵提出通用计算机的数学模型,开辟了20世纪人类的计算机时代,我们只有提出通用学习机的数学模型,给出AGI工程构架体系,21世纪人类才能真正迈进人工智能时代。通用学习机就是AGI的“图灵机”。