深度学习在人工智能领域的前世今生
这两年人工智能(Artificial Intelligence)领域热闹非凡,不仅科技巨头纷纷发力AI取得技术与产品的突破,还有众多初创企业获得风险资本的青睐,几乎每周都可以看到相关领域初创公司获得投资的报道。AiphaGo在围棋游戏中大胜李世石使人们对AI刮目相看的同时也引发了对AI将如何改变我们生活的思考。
其实,人工智能从上世纪40年代诞生至今,经历了一次又一次的繁荣与低谷,下面我们就来回顾下过去半个世纪里人工智能的发展历程。
|人工智能发展的七个阶段
1.起源阶段:人工智能真正诞生于20世纪的40 - 50年代。这段时间里,大量从事数学、工程、计算机等研究领域的科学家们开始探讨“人工大脑”的可能性。1950年阿兰 图灵(Alan Turing)发表了题为“机器能思考吗”的著名论文,提出了著名的图灵测试来定义机器智能。他说只要有30%的人类测试者在5分钟内无法分辨出被测试对象究竟是人类还是机器,就可以认为机器通过了图灵测试。
图1:图灵测试
2.第一次黄金时期:专业术语“人工智能”(Artificial Intelligence)诞生于1956年的达特矛斯会议,由计算机科学家John McCarthy首次正式提出。达特矛斯会议之后的十多年是人工智能的第一次黄金时代,科学家们对人工智能的前景满怀激情,大批研究者扑向这一新领域,一些顶尖高校建立的人工智能项目获得了ARPA等机构的大笔经费,甚至有研究者认为机器很快就能替代人类完成一切工作。
3.第一次低谷:到了70年代,由于计算机性能瓶颈、计算复杂性的增长以及数据量的不足,很多人工智能科研项目的承诺无法兑现,比如计算机视觉根本找不到足够的数据库进行训练,智能也就无从谈起。因此,学界将人工智能分为两种:难以实现的强人工智能和可以尝试的弱人工智能。强人工智能就是能像人类一样执行通用任务;弱人工智能则只能处理单一问题。很多项目的进度停滞不前也影响了资助资金的走向,AI陷入了长达数年之久的低谷。
4.专家系统的出现:70年代之后,学术界逐渐接受新的思路:人工智能不光要研究算法,还得引入知识。于是,专家系统诞生了。它利用数字化的知识去推理,模仿某一领域的专家去解决问题。“知识处理”开始成为人工智能的研究重点。,1977年世界人工智能大会提出“知识工程”的启发,rb的第五代计算机计划、英国的阿尔维计划、欧洲的尤里卡计划和mg的星计划相继出台,带来专家系统的高速发展。
5.第二次经费危机:20世纪90年代之前的大部分人工智能项目都是靠zf机构资助,经费走向直接影响着人工智能的发展。80年代中期,苹果和IBM的台式机性能已经超过了运用专家系统的通用型计算机,专家系统的风光随之褪去,人工智能研究再次遭遇经费危机。
6.IBM的深蓝和Watson:专家系统之后,机器学习成为了人工智能的焦点,其目的是让机器具备自动学习的能力,通过算法使得机器能够从大量历史数据中学习规律并对新的样本作出判断识别。。在这一阶段,IBM无疑是人工智能领域的领袖,1996年IBM公司的AI系统“深蓝”战胜了国际象棋世界冠军卡斯帕罗夫,2011年IBM公司的AI系统Watson在电视问答节目中战胜人类选手。后者涉及到放到现在仍然是难题的自然语言理解,成为机器理解人类语言的里程碑事件。
7.深度学习的强势崛起:深度学习是机器学习的第二次浪潮。2013年4月,《麻省理工学院技术评论》将深度学习列为2013年十大突破性技术之首。其实,深度学习并非新事物,它是传统神经网络(Neural Network)的发展,两者采用了相似的分层结构,不同之处在于深度学习采用了不同的训练机制,具备强大的表达能力。传统神经网络曾经在机器学习领域火过一阵子,但后来由于参数难于调整和训练速度慢等问题逐渐淡出了人们的视野。
但是有一位叫Geoffrey Hinton的多伦多大学老教授非常执着于神经网络的研究,并和Yoshua Bengio、Yann LeCun一起提出了可行的深度学习方案。2012年Hinton的学生在图片分类竞赛ImageNet上打败了Google,顿时让学术界和工业界哗然,吸引了工业界对深度学习的大规模投入。2012年Google Brain用16000个CPU核的计算平台训练10亿神经元的深度网络,无外界干涉下自动识别出了“Cat”;Hinton的DNN初创公司被Google收购,Hinton个人也加入了Google;而另一位大牛LeCun加入Facebook,出任AI实验室主任。不仅科技巨头们加大对AI的投入,一大批初创公司乘着深度学习的东风涌现,使得人工智能领域热闹非凡。
|人工智能之主要引擎:深度学习
机器学习发展分为两个阶段,起源于上世纪20年代的浅层学习(ShallowLearning)和最近几年才火起来的深度学习(Deep Learning)。浅层学习的算法中最先被发明的是神经网络的反向传播算法(back propagation)。为什么称之为浅层呢,因为当时的训练模型是只含有一层隐含层的浅层模型。这种模型有个很大的弱点,那就是有限参数和计算单元,特征表达能力弱。
上世纪90年代,学术界提出一系列的浅层机器学习模型,包括风行一时的支撑向量机Support Vector Machine,Boosting等。这些模型相比传统神经网络在效率和准确率上都有所提升。但后来人们发现,识别精度到达一定程度后,即使训练再多的数据,再怎么调整参数,精度也无法继续提高。
在此期间,Hinton教授一直执着于多隐层神经网络的算法研究。多隐层神经网络其实就是浅层神经网络的深度版本,试图使用更多的神经元来表达特征,其实现难点主要在于以下三方面:
BP算法中误差的反向传播随着隐层的增加而衰减;很多时候只能达到局部最优解;
模型参数增加,对训练数据的量有很高要求,如果不能提供庞大的标识数据,可能会导致过度复杂;
多隐层结构的参数多,训练数据的规模大,需要消耗很多计算资源。
图2:传统神经网络与多隐层神经网络
2006年,Hinton和他的学生R.R. Salakhutdinov成功训练出多层神经网络,在《Science》上发表文章(Reducingthe dimensionality of data with neural networks),改变了整个机器学习的格局。这篇文章有两个主要观点:1)多隐层神经网络有更强大的学习能力,可以表达更多特征来描述对象;2)训练深度神经网络时,可通过降维(pre-training)来实现。Hinton教授设计的Autoencoder网络能够快速找到好的全局最优点,采用无监督的方法先分开对每层网络进行训练,然后再进行微调。
图3:图像的与训练,编码→解码→微调
从图3我们可以看到,深度神经网络是逐层进行预训练,得到每一层的输出;同时引入编码器和解码器,通过原始输入与编码→再解码之后的误差来训练,这两步都是无监督训练过程;最后引入有标识样本,通过有监督训练来进行微调。逐层训练的好处是让模型处于一个接近全局最优的位置去获得更好的训练效果。
以上就是Hinton在2006年提出的著名的深度学习框架,而我们实际运用深度学习网络的时候,不可避免的会碰到卷积神经网络(Convolutional Neural Networks, CNN)。CNN的原理是模仿人类神经元的兴奋过程:大脑中的一些神经细胞只有在特定方向的边缘存在时才能做出反应。打个比方,当我们非常近距离地观察一张人脸图片时,这时候我们的大脑中只有一部分神经元是被激活的,我们也只能看到人脸上的像素级别点,当我们把距离一点点拉开,大脑其他部分的神经元将会被激活,我们也就可以观察到人脸的线条→图案→局部→整个人脸,这就是一步步获得高层特征的过程。
图4:基本完整的深度学习流程
深度学习的好处是显而易见的 – 特征表达能力强,有能力表示大量的数据;预训练是无监督训练,节省大量人力标识工作;相比传统的神经网络,通过逐层训练的方法降低了训练难度,如信号衰减的问题。深度学习在很多领域比浅层学习算法往往有20-30%的提高,驱使研究者发现新大陆一般涌向深度学习这一领域。
|深度学习的重要发展领域
深度学习首先在图像、声音和语义识别取得了长足的进步,特别是在图像和声音领域相比传统算法大大提升了识别率。其实也很容易理解,深度学习是模仿人类大脑神经感知外部世界的算法,而最常见的外部自然信号莫过于图像、声音和文字(非语义)。
图像识别:图像是深度学习最早尝试的领域。YannLeCun早在1989年就开始了卷积神经网络的研究,取得了在一些小规模(手写字)的图像识别的成果,但在大像素图片识别上迟迟没有突破,直到2012年Hinton和他学生在ImageNet上的突破,才使识别精度提高了一大截。2014年,xg中文大学教授汤晓鸥领导的计算机视觉研究组开发了名为DeepID的深度学习模型,在人脸识别上获得了99.15%的识别率,超过了人类肉眼的的识别率(97.52%)。
语音识别:语音识别长期以来都使用混合高斯模型来建模,尽管降低了语音识别的错误率,但在有噪音的实际自然环境中达不到可用的级别。直到深度学习的出现,使得识别错误率在以往最好的基础上相对下降30%以上,达到商业可用的水平。
自然语言处理(NLP):即使到现在,深度学习在NLP领域并没有取得像图像识别或者语音识别领域那样的成就,基于统计的模型仍然是NLP的主流,先通过语义分析提取关键词、关键词匹配、算法判定句子功能(找出距离这个句子最近的标识好的句子),最后再利用提前准备的数据库提供用户输出结果。显然,这明显谈不上智能,只能算一种搜索功能的实现,而缺乏真正的语言能力。
为什么深度学习在NLP领域进展缓慢?这是因为,对语音和图像来说,其构成元素(轮廓、线条、语音帧)不用经过预处理都能清晰反映出要识别的对象,可以直接放到神经网络里进行识别。而语义识别大不相同:人说的每句话并非自然信号,含有丰富多变的语义,对它的理解需要参考上下文语境的,有时候还会涉及到大量的文化背景知识。因此,仿人类大脑识别机制建立的深度学习,对经过我们人类大脑处理的文字信号的理解,效果反而差强人意。根本上来说,现在的算法还属于弱人工智能,可以去帮人类快速的自动执行(识别),却不能理解这件事情本身。
|深度学习的挑战和发展方向
受益于计算能力的提升和大数据的出现,深度学习在计算机视觉和语音识别领域成就斐然,不过我们也看到了一些深度学习的局限性,亟待解决:
深度学习在学术领域取得了不错的成果,但在商业上对企业帮助并不明显。因为深度学习是一个映射的过程,从输入A映射到输出B,而在企业活动中如果我已经拥有了这样的A→B映射,为什么还需要机器学习来推断呢?让机器自己在数据中寻找这种映射关系或者进行yc,目前还存在很大难度。
缺乏理论基础,这是困扰着研究者的问题。比如说,AlphaGo这盘棋赢了,你很难弄懂它是怎么赢的。可以说,深度学习是一个黑箱子,神经网络需要多少个隐层来训练,到底需要多少有效的参数等,都没有很好的理论解释。
深度学习需要大量的训练样本。由于深度学习的多层网络结构,模型的参数也会增加,如果训练样本不够大是很难实现的,需要海量的标记数据,避免产生过拟合现象(overfitting)而不能很好的表示整个数据。
深度学习在NLP领域还面临很大挑战,目前的模型缺乏理解及推理能力。
因此,深度学习将来的发展方向也将涉及到以上问题的解决。Hinton、LeCun和Bengio三位AI领袖曾在合著的一篇论文(Deep Learning)的结尾提出了深度学习的未来发展方向:
无监督学习。虽然监督学习在深度学习中表现不俗,超过了无监督学习在预训练中的效果,但人类和动物的学习都是无监督学习方式,我们感知世界都是通过我们自己的观察,因此若要更加接近人类大脑的学习模式,无监督学习需要得到更好的发展。
强化学习。增强学习指的是从外部环境到行为映射的学习,通过基于回报函数的试错来发现最优行为。由于在实际运用中数据量是递增的,在新数据中能否学习到有效的数据并做出修正非常重要,深度+强化学习可以提供奖励的反馈机制让机器自主的学习,典型案例是AlphaGo。
理解自然语言。老教授们说:赶紧让机器读懂人类的语言吧!
迁移学习。把利用大数据训练好的模型迁移运用到有效数据量小的任务上,也就是把学到的知识有效的解决不同但相关领域的问题。这事情看起来很美好,但难点在于已训练好的模型存在自我偏差,需要高效算法去消除这些偏差。根本上来说,就是让机器像人类一样具备快速学习新知识的能力。
自深度学习被Hinton在《Science》发表以来,短短的不到10年时间里,带来了人工智能在视觉、语音等领域的突破性进步,再一次掀起来人工智能的热潮。虽然目前仍然存在很多差强人意的地方,距离强人工智能还有很大差距,但深度学习是目前最接近人类大脑运作原理的算法。相信在将来,随着算法的完善以及数据的积累,甚至硬件层面仿人类大脑神经元材料的出现,深度学习将会更进一步推动人工智能的发展。