Deep Learning的前世今生

Deep Learning的前世今生

深度学习的发展是极其迅速的。Gartner表示,对深度学习专家开放的相关岗位数量从2014年起由几乎为零增长到了今天的41000个。其中大部分的增长是由于受到当今高科技巨头的影响,例如Facebook,苹果,Netflix,微软,谷歌,和百度。

包括这些公司在内的很多企业都参与了对深度学习项目的巨大投资。除了聘请相关专业人士之外,他们投资支持深度学习项目和实验,并收购与深度学习相关的其他公司。然而这些投资都仅仅只是一个开始。Gartner预测,截止到2008年,百分之八十的数据科学家都将会使用深度学习工具。

深度学习技术旨在模拟生物学上大脑内的神经关系网。它和第一台计算机一样,在二十世纪五十年代出现在人们的视野里。所以,如果说计算机和深度学习是在同一时期开始发展的,为什么深度学习现在才进入计算行业的主流?

通过图像处理装置而增长的处理能力,巨大数量的可用数据,更加先进的算法的发展,都导致了深度学习这一概念的崛起。

深度学习的现状

深度学习是无处不在的。它可以用于确定哪一条在线的广告会被实时的呈现,在照片中给朋友加标签,把你的声音转换成文字,把文字翻译成网页上不同的语言,并且驾驶自动车辆。

深度学习也出现在没有那么引人注意的地方。信用卡公司将深度学习用于检测诈骗;一些企业用它来预测是否你会取消订阅或是提供个人化顾客建议;银行用它来预测破产和贷款风险;医院用它来检测,诊断,并治疗疾病。

深度学习的应用范围几乎是无限的。其他情况还包括文字分析,图像字幕,图像色彩化,X光分析,天气预报,财务预测,以及更多。

深度学习已经被广泛的用于自动化处理过程,提升绩效,发现模型,和解决问题之中。

什么是深度学习?

深度学习可以被归到机械学习的类别当中,属于人工智能的一个分支。广义上说,人工智能包含了模拟人类能力的技术,机械学习算法接纳并适应新的事情。

深度学习是指一项运用人工神经网络算法的技术。专家认为深度学习和人工神经网络是同样的一件事情,并且这两项词条可以进行互换。正如大脑中的神经关系网络一样,人工神经网络的神经元(节点)也与突触(链接)相连。每一个节点都获取数据,完成一项操作,并且把新的数据通过链接传送给下一个节点。这些链接包含的重要信息以及偏差将会影响到下一个节点的操作。

为了阐述节点和链接的角色,想象一个公司试图从两个因素预测一个顾客是否会更新订阅:性别和年龄。这个公司的神经关系网有两个输入节点(每个预测因素一个节点),它们与很多链接相连到一个输出节点。它们的价值已经乘以了之前设置好的链接里的分量。如果年龄是一个比性别更好的预测因素的话,输送年龄数据的链接将会有更大的分量。

输出节点将会把这些在输入节点产生分量变化之后的数据加起来并产生一个最终的预测值。在这个简单的例子中,这个值可以在0到1之间。这个值越接近1,代表该顾客越有可能更新订阅。

在一个真正的项目中,人工神经网络可以包括上千个节点和上十亿个链接。每一个节点属于一个由一组节点组成的层。有一些属于输入层,有一些属于输出层,也有在两者之间的层,也被称作隐藏层。更多的节点,链接和层能增加人工神经网络的准确性。

训练的作用

一旦建立好了,人工神经网络需要很多次的训练来确保工作顺利。未经过训练的人工神经网络总是会失败的。这就是为什么“学习”这个词是深度学习的一部分。

数据科学家可以监督或者不监督训练。在被监督的训练中,人工神经网络处理测试数据中的输入值,并且产生输出值(预测),用于与真实的测试数据中的输出值进行比较。然后,一个用来训练人工神经网络处理的训练算法登场了。只有少数几种训练算法存在,其中最为广泛应用的算法叫做反响传播。反向传播的算法通过从输出节点反向跟踪错误到隐藏层和输入层的办法来识别人工神经网络中不准确的预测。这个过程会被一直重复,直到人工神经网络可以持续性的用测试数据作出准确的预测。然后,这个人工神经网络就准备好处理新的输入数据并且预测未知的输出数据了。

不监督训练的目的是用来模拟数据的结构的分布,而不是作出预测。所以对于不监督训练来说,从人工神经网络开始处理输入数据起,分量就不需要改变了,因为不会有对应的输出数据可以拿来和预测数据比较。

深度学习是旧技术

如果要说到人工智能和深度学习的故事,那最好就是从William McCulloch和Walter Pitts开始说起了。在1943年,他们出版了一本书叫做A Logical Calculus of the Ideas Immanent in Nervous Activity。书中他们罗列了神经网络的第一个计算模型。这本书自此成为了第一个人工神经网络的蓝图。

六年后,Donald Hebb出版了The Organization of Behavior。它提出了使用能加强神经元之间的联系。这个概念证实了人类学习和训练人工神经网络的基本原理。

1954年,Belmont Farley和Wesley Clark,用McCulloch和Pitts的研究开始了第一次人工神经网络的计算机模拟。这些由128个神经元组成的关系网通过训练识别出了简单模型。

在1956年的夏天,计算机科学家遇到了“在推测中行动,任何方面的学习或是智慧的特征都可以准确的描述机器对其的模拟。”这件事,被称为达特茅斯会议,是人工智能的诞生地。

在达特茅地会议之后,人工智能的领域开始腾飞了。1957年,Frank Rosenblatt开始学习一种叫做感知器的神经网络,并可以将Farlry和Clark的两层网络训练方法运用到多层网络中。

1959年,Bernard Widrow和Marcian Hoff发明了一种单层的神经网络叫做ADALINE,它可以通过之前的来电信息预测将要打进的电话。他们的下一项发明,一个多层神经网络叫做MADALINE,可以消除电话里的回音,并被称作人工神经网络的第一个实际的应用。

创新一直持续到六十年代,但是资金,研究,革新却在七十年代慢了下来。人工智能科学家的成就没能迎合媒体的大肆宣传和政府的期望。“人工智能的冬天”随即而来,期间只有极少的资金和研究投入在这个话题上。

从1986年开始,在Geoff Hinton发表Learning Representations by Backpropagating Errors之后,人工智能的研究又再次复活了几年。然而,真正的复活一直没有来,直到2000年代中。今天,深度学习和人工智能正处在鼎盛时期,甚至会被认为是夸大炒作。

所以,为什么人工神经网络现在变得这么有用了呢?

三个因素扩大了深度学习发展的可能性:

1. 可用数据的指数性剧增

根据Cisco表明,1992年全球的互联网流量是100GB每天。在2015年,这个数字翻了17.5百万倍达到20235GB每秒。现在,世界百分之九十的数据都在过去的两年被创造出来。

如果没有这个数据,人工神经网络训练包含上亿链接和上千节点的事情不会发生。要人工神经网络识别一张脸,检测信用诈骗,或者在嘈杂的房间里把声音转换成文字,只需要一点点的测试数据就能有准确的预测。这就是为什么在这个大数据时代,人工神经网络开始盛行。

最好和最可见的运用人工神经网络处理数据的例子就是Google X启动的一个秘密研究发展项目了。在Andrew Ng,在百度搜索工作的一个科学家,谷歌高级人员Jeff Dean的领导之下,这个团队汇聚了16000个中央处理装置,从而将动力供以拥有上亿链接的人工神经网络。

这个人工神经网络通过训练,处理了从youtube视频中随机抽取的一千万份图像。根据众多资料显示,这个人工神经网络将它本身训练成了可以识别猫。实际上,只有人工神经网络中的一个节点负责识别猫的图像。其他的节点可以识别人的脸和身体。二十年前,要想收集一千万份图像来训练人工神经网络是不可能的。

接下来,让我们来看看GPU的兴起。

2. 图形处理器(GPU)的兴起

实现神经网络的提速是十分困难的。成百上千的神经元需要在同一个空间内交互。视具体的情况而定,使用传统的中央处理器( Central Processing Unit, CPU) 来完成人工神经网络 (Artificial Neural Network, ANN)的预测经常需要耗费几周之久。如果使用中央处理器,完成同样的任务只需要几天或几个小时。

英伟达(NVIDIA)是图形处理器的开路者。图形处理器的主要功能为完成视频游戏图像显示的并行操作。2009年,斯坦福大学的吴恩达教授和其他研究人员发现图形处理器可用于实现大范围的深度学习。

为了证明图形处理器的“超能力”,吴恩达教授使用安装了六十四枚图形处理器的十六台电脑来复制由一百一十万亿个网络连接构成的Google X 项目。完成同样的工作量需要一千台电脑和一万六千个图形处理器。虽然就任务完成的速率和质量而言,图形处理器的优势并不十分明显,但是吴恩达教授成功地证明了,在同样的时间内,六十四个图形处理器就能能完成一万六千个中央处理器才能完成的工作量。

3. 高级算法的产生

接连涌现的新发明提升了ANN的能力。其中,Geoffrey Hinton其同事在2006年完成的算法是最重要的转折点。

Hinton介绍了一种可以微调用于训练具有多个隐藏层的ANN的学习过程的算法。其关键在于,使用梯度递降的算法来分别调整ANN的每一层。

Hinton及其同事的功绩在于实现了深度学习的纵深式发展,使其名副其实。据报道,深度学习这个术语就是由其团队提出的,目的在于重新包装人工智能网络这个概念。在2006年的时候,很多投资人和计算机专家对盈利前景差强人意的人工智能网络根本不感兴趣。

其他重要的发现还包括加权值初始设定的优化。这项进步增强了高维数据至低维数据转化的可预测性。

影响

在计算机处理能力大幅提升,数据泛滥,高级神经网络算法不断出现的条件下,计算机科学家已经可以使用深度学习技术来解决停滞了数十年之久的复杂问题。

比如,深度学习可以用来优化自然语言处理工具,实现句子意思的连贯理解,而不仅限于单词词义的理解。比如,如果输入‘take a hike’ (哪儿凉快哪儿呆着去吧)or ‘get lost’ (“滚开”),电脑不会再按着字面意义翻译成“去远足”(‘take a hike’)或者“迷路”(‘get lost’),而是会将短语的语用意义翻译出来。

目标识别软件会越来越流行,越来越准确。比如,面部识别软件的功能已经十分强大。眼下,研究人员正在通过训练深度学习算法来区分相近的物件,比如茶杯和碗,大房子和小木屋,鞋子和靴子,等等。现时的目标识别软件已经可以区分街上的行人和异常的物件,将各种各样的图像和图片拼凑在一起。

缺陷

人工神经网络有一系列的缺陷,比如,黑盒问题和过度拟合等。

“黑盒问题” 指得是使用者无从得知人工神经网络如何完成预测。使用者能够看到输入层和输出层中的数据,进而初步判定输入变量的重要性。然而,预测背后的推理过程被埋藏在隐层之中。因此,商界的管理层人士很少相信未经充分检测的人工神经网络。原因在于他们不知道深度学习算法的人工神经网络是如何得出最终结论的。

“过度拟合” 问题指得是一种算法=对某套数据的适应度过高,而难以适应其他的数据集。这个问题不仅存在于深度学习中,也存在于其他人工神经网络中。

应用

数据科学家可以用一些算法来探测一些潜在数据间的图像和关系。深度学习的算法是最强大的,因为它可以适应各式各样的数据,并且可以让几乎没有统计背景的人去学习一些基本的算法来处理大量的数据集。但是在现实应用中,深度学习对于简单的数据和小的数据集来说有点大材小用。如果你是想要处理大量的或者比较复杂的数据集,可能深度学习的算法是个不错的选择。如果没有什么深度学习的技术可以fit进你的问题的话,就再等等看吧~