1.7 再一次腾飞
就像黑暗中的钻石等到光线照射的时候就会无比绚烂一样,人工智能终于等到了蓬勃发展的历史时机,沉默耕耘了多年的研究者们成了这一次大潮的弄潮儿。
AI的这一次腾飞也不是无缘无故发生的,而是依赖于下面几个主要的因素。
1.7.1 计算机综合计算能力的大幅提升
计算机从诞生至今,经过人们的不断努力,各方面能力得到了大幅的提升。其中与人工智能发展紧密相关的包括5个方面。
• 计算机进行计算与处理的核心——CPU的处理速度以2010年与1975年相比增长了6~7个数量级(106~107),并且多核CPU的出现,事实上进一步提升了CPU的处理能力。
• GPU(Graphics Processing Unit,图形处理单元,也就是显卡中的主要功能部件)的出现,大幅提升了计算机的科学运算能力。GPU的产生主要是为了高速处理大量的图形图像,而这需要大量的浮点数(一般所说的小数)运算,CPU处理整数运算速度尚可但对浮点数的运算能力很一般,而GPU设计时的主要目标之一就是应对浮点数的运算;另外,由于图形处理要求巨量数据超高速的运算,因此GPU一般均采用大量的并发运算单元来进行同时运算以满足其要求。而浮点数运算能力和大量并发运算能力恰恰是人工智能(尤其是神经网络)运算最需要的能力。因此,GPU的出现和其能力的快速提升,可以说是大大促进了人工智能发展的速度。从图1.7中可以看出,从2002年到2014年,GPU的理论浮点计算能力已经上升了数千倍。
图1.7 CPU、GPU浮点运算能力理论峰值图
• 神经网络的计算需要大量的存储数据,包括训练数据、计算过程中间数据和输出数据等,例如,现在自然语言处理的原始训练数据一般均在几百兆字节至几个吉字节(在计算机存储中,一般1TB≈1000GB,1GB≈1000MB,1MB≈1000KB,1KB≈1000B,B代表Byte,即字节,1个字节代表一个8位的二进制数字);而进行较大分辨率的图像识别所需的数据就更多,往往有几十个GB到1TB以上,这就要求计算机内存和外存(主要是硬盘)足够大,另外还要访问速度足够快,才能支持神经网络的运算。幸好,计算机的发展超出了我们的期望,一般计算机的内存从20世纪70年代的几十KB大小快速发展到现在常见的几十GB,访问速度也有了指数级的提升。
• 计算机软件发展至今,已经非常成熟,人们对于软件的驾驭能力也越来越成熟。计算机软件方面值得一提的是,现在在人工智能领域最常用的计算机语言Python。Python于1989年发明,到现在已经成为最受欢迎的语言。2017年IEEE(Institute of Electrical and Electronics Engineers,电气和电子工程师协会)发布的年度编程语言排行榜中,Python高居首位。Python由于其免费、开源的特点,受到开发人员的喜爱,许多开发者为其编写了不同用途的第三方代码包和库,使其功能在基本的计算机语言功能基础上迅速扩充;另外,由于Python易于上手、编写方便,许多科学研究者也喜欢使用Python来进行科学计算。因此,Python逐步成为人工智能领域中最热门的语言,而Python语言的越来越成熟也反过来推动了人工智能的发展。
• 云计算技术的出现与GPU的出现类似,也大幅提升了计算机系统的计算能力。云计算的核心本质是调度网络上具备运算能力的计算机,并行协同处理某些计算任务,以求实现人们所能掌控的计算能力不再被计算机所处的地理位置和单台计算机的运算能力所限制。
1.7.2 大数据的出现
大数据(BigData)概念的出现,无疑也是推动人工智能(尤其是机器学习领域)发展的重要因素,甚至可以说是捅破的最后一层窗户纸也不为过。
以前的人工智能研究,即使有了理论方法也很难研制出有实际价值的系统,其主要原因之一就是缺少大量的训练数据。尤其是机器学习,更需要用海量的训练数据来进行训练才能够使系统的准确率达到实用的要求。
经过IT行业几十年的发展,人们对于数据的存储和管理水平不断进步。这期间,大型关系数据库技术为人们积累数据、运用数据提供了重要的支撑。现在数据库技术经过几代发展,已经向多元化、多型态化进一步发展。数据存储与管理技术的进步,促进了大型应用系统的实用化,例如政府部门的政务处理系统、银行的金融管理系统、电信行业的营业系统和计费系统、企业内部的资源管理系统等,都得到了大范围的应用;这反过来也推进了海量资源和用户数据的积累。据测算,人类在2013年的数据存储总量已经达到80EB(1EB≈1000PB,1PB≈1000TB),而到了2015年,已经达到了300EB;预计到2020年,人类数字化的数据总量将达到35ZB(1ZB≈1000EB)。海量的数据让研究人员不再缺乏机器学习训练数据的来源。
人们在大数据技术的发展过程中,并非仅仅得到了数据本身,还成功提升了自己处理数据、从数据中进行发掘/发现、对数据进行分类合并、快速从原始数据中提取有效的训练数据的能力。
1.7.3 神经网络研究的成熟化
现代社会某项科技的发展,离不开其研究者和关注者心态的成熟,这一点在人工智能这个领域体现得尤其明显。人工智能经历了两次寒冬,但寒风抹去泡沫对这个领域的发展并非坏事,留下来的人们都谨慎了许多,也务实了许多,把研究向更能体现人工智能价值的方向进行,例如图像识别、自然语言处理等。这期间,对于后来人工智能腾飞起到重大作用的事件包括以下几个。
• 反向传播学习算法研究进一步成熟,在前面所介绍的1986年提出的反向传播算法基础上,人们又对其在神经网络中多层、多个不同类型的隐藏层等情况下,进行了大量的实验验证,并改进了其随机性和适应性。如前所述,反向传播算法对于神经网络的训练是具有历史性意义的,因为它大幅缩减了神经网络训练所需要的时间。
• 在20世纪60年代就有了卷积网络的最初思想,但到1989年,Yann LeCun发明了具有实际研究价值的第一个卷积神经网络(Convolutional Neural Network,CNN)模型LeNet。卷积网络是前馈神经网络中的一种类型,最主要的特点是引入了卷积层、池化层这些新的隐藏层类型。卷积层特别适合对图像这种不同位置的像素点之间存在关联关系的数据进行特征提取,而池化层则用于对图片降低分辨率以便减少计算量。因此卷积神经网络的发明对于图像识别具有重要意义;由于卷积层具有特征提取和特征抽象能力,它对于后面深度学习的发明也有重要的启发意义。
• 早在20世纪80年代,已经有了循环神经网络(Recurrent Neural Network,RNN)的思想,这种网络与原来的纯前馈神经网络不同,引入了时序的概念,信号在神经网络中传递时,在下一时刻可以反向往回传递,也就是说,某一时刻某个神经元的输出,在下一时刻可能成为同一神经元的输入,这就是它命名中“循环”两个字的由来。循环神经网络特别适合解决与出现顺序有关的问题,例如自然语言处理中的语音识别,因为一句话中后一个单词是什么往往与之前已出现的词语有很大关系,所以判断人说的某个词往往要根据前面出现的词来辅助。但后来人们又发现,这种关系与单词之间的距离或者说时间顺序的联系并不是固定的,有时候距离很远也有很大影响,有时候距离很近但影响不大。因此,1997年,赛普·霍克赖特(Sepp Hochreiter)和于尔根·施米德胡贝(Jürgen Schmidhuber)提出了能够控制时间依赖性长短的新型循环神经网络——长短期记忆网络(Long Short-Term Memory Network,LSTMN),成功解决了这一类问题。2000年,菲力克斯·热尔(Felix Gers)的团队提出了一种改进的方案。
• 2006年,辛顿等人提出了深度学习的概念。深度学习并非是一种单一的技术或理论,而是结合了神经网络多项理论和成果的一套综合性方法,简单地说可以用一句话概括:深度学习是在多层的神经网络中,从原始数据开始,通过机器自主进行学习并获得解决问题的知识的方法。深度学习最主要的特点是机器自主从原始数据开始逐步将低层次的特征提取、组合成高层次的特征,并在此基础上进行训练学习,获得预测同类问题答案的能力。也就是说,AI已经具备了自主发现特征的能力,原来必须依靠人类指导来进行学习的机器,终于可以自己去学习了,这是人工智能发展史上一个划时代的进步,是最激动人心的成果之一。现在,深度学习已经成为人工智能领域中最活跃的方向。
• 以卷积网络和深度学习理论的出现为基础,人工智能的研究者们敏锐地找到了最合适的突破点:计算机视觉。计算机视觉是指人工智能系统进行的图像识别与分类、视频中的动作识别、图片中的物体分界、图像视频理解与描述文字生成、图像内容抽取与合成、图画风格替换、网络图片智能搜索等一系列与图形或视频处理等有关的行为。由于计算机视觉需要处理的都是海量数据,人脑难以应付这么大量而又需要高速处理的任务,而这正是卷积网络和深度学习理论上最擅长的方向,并且又具备了前面所述的软硬件条件,所以在后面可以看到,很多人工智能取得的成就都是与计算机视觉紧密相关的。
在上面所说的各种因素的合力推进下,沉寂已久的人工智能在21世纪第一个十年前后突然爆发了,这可以说在大多数人意料之外,但回过头看也在情理之中。
广泛被界内认可是,这一次人工智能大发展的起点为2012年,在ImageNet工程举办的年度图像识别大赛(Annual ImageNet Large Scale Visual Recognition Challenge)上,包括亚历克斯·克里泽夫斯基(Alex Krizhevsky)和辛顿等人在内的团体推出的AlexNet神经网络,获得了当年的冠军。ImageNet项目是一个大量收集图片数据用于智能图像识别研究的可视化数据库项目。从2010年开始,ImageNet每年都举办这个年度图像识别大赛。2012年,AlexNet在比赛中识别图像的top-5错误率(即系统给出的可能性最高的前5个预测结果全部错误)仅有16%左右,远远低于其他参赛的系统,距第二名足有10个百分点以上。AlexNet就是一个采用了深度学习技术的、使用了GPU并发运算加速的多层卷积神经网络,这也是在这项比赛中第一个采用了深度学习技术的系统。AlexNet在训练时,使用的CPU能力相较于1998年LeNet使用的高了1000倍以上,并且使用了GPU进行加速,使用的训练数据量较LeNet高了107倍,可以说在充分利用了之前的各项人工智能研究成果之外,也有当时各项客观支撑条件发展的功劳。AlexNet取得一鸣惊人的成功后,在人工智能界引起了巨大反响和关注,很多大公司和有实力的研究团队加入到深度学习的研发领域中来,在后来的新系统中,已经将top-1错误率(只判断一次的错误概率)从AlexNet的50%~60%提升到80%以上。
如果说AlexNet的出现还仅仅是在IT业界获得了较大反响,那么让人工智能的能力广泛为世人所知,无疑是2016年,谷歌旗下DeepMind公司研发的AlphaGo成为第一个击败围棋世界冠军的人工智能系统。2016年3月,AlphaGo与围棋世界冠军、职业九段李世石进行了五番棋大战,最后4比1取胜。之后,AlphaGo在网络上与中、日、韩等多国围棋高手进行了几十局对弈,无一败绩。2017年中,经过进一步训练的AlphaGo与世界排名第一的柯洁对战3局,全部取胜。现在,几乎所有围棋选手都承认无法战胜人工智能,并且看不到胜机,甚至有围棋界元老认为AlphaGo可以对目前人类最高水平的选手让两子以上。然而,人工智能的研究并没有止步,2017年10月,DeepMind团队公布了AlphaGo的最新进化版本AlphaGoZero。之前的AlphaGo是以职业棋手棋谱作为训练的主要数据来源之一进行了大量的训练而成的;而AlphaGoZero已经摒弃了人类的知识,仅在知晓下棋基本规则的情况下,从零开始训练(这也是名称中Zero的由来之因),经过不到1天训练,就能对战围棋、国际象棋、日本将棋等最高水平的人类选手,甚至是AlphaGo这个它的前任实现完胜。
AlphaGo就是采用了深度学习的分支——增强学习技术来训练的神经网络系统。AlphaGo的出现,完全激发起了世人对人工智能的关注,让人深深感觉到人工智能的强大实力。围棋与国际象棋不同,每一步的下法以现在计算机的能力,也难以在正常时间内穷举来判断优劣,人类研究的人工智能在围棋领域实现的突破,具有极大的象征意义,代表着人工智能不仅已经可以有实用的、有价值的系统应用,而且已经可以超越人类自身的极限,对人类生活和社会的发展必将带来巨大的影响。于是,科技界的巨头公司也纷纷投入或加大投入到人工智能的研发中来。
现在,人工智能尤其是深度学习的热潮方兴未艾。在指纹识别、人脸识别、网络图像视频鉴别、疾病诊断、天气预报、无人驾驶、无人机、机器人、机器翻译、客户关怀等方向上,取得了大量成果,并迅速应用于实际生活中。这也是这一次人工智能腾飞与前几次AI泡沫相比最大的不同,即出现了真正有价值的系统而不仅仅是实验成果。也因此,这一次AI的大发展给人以更坚实、更有底气的感觉,它的发展前景一片光明。