分享

看了这篇文章才发现,之前对深度学习的了解太浅了

 东西二王 2019-08-15

看了这篇文章才发现,之前对深度学习的了解太浅了

来源:freepik

读过一些科普文章的人都会知道,所谓的深度学习就是一种利用深度人工神经网络来进行自动分类、预测和学习的技术。因此,深度学习就等于深度人工神经网络,如图1 所示。

看了这篇文章才发现,之前对深度学习的了解太浅了

图1 深度人工神经网络示意图

图中黑色的圆圈表示一个人工神经元,连线表示人工神经突触。信息从网络最左侧的节点传入,经过中间层节点的加工,最终由最右侧4 个节点输出给外界。神经网络从左到右排成多少列就称为有多少层。多少层算深呢?通常情况下,我们认为超过三层以上的神经网络都可以叫作深度神经网络。而目前人们已经可以实现深达1000 多层的人工神经网络了。

不过,对深度学习的以上认识虽然没有错误,但并不全面,我们还需要从深度学习与人工智能的关系及其历史渊源等多个方面来充分理解什么是深度学习。

深度学习与人工智能

首先,深度学习属于一种特殊的人工智能技术,它与人工智能及机器学习的关系如图2 所示。

看了这篇文章才发现,之前对深度学习的了解太浅了

图2 人工智能、机器学习、人工神经网络、深度学习之间的关系

人工智能的覆盖面非常广,包括自动推理、联想、学习等。机器学习则是人工智能的一个重要分支,它在20 世纪八九十年代才逐渐发展起来,主要研究如何让计算机具有能够自我学习的能力。事实上,机器学习的算法有上千种,包括决策树算法(decision tree)、支持向量机(support vector machine,SVM)、遗传算法(genetic algorithm),等等。

近些年来,基于人工神经网络的机器学习算法日益盛行起来,逐渐呈现出取代其他机器学习算法的态势,这主要是因为人工神经网络中有一种叫作反向传播算法的关键性技术。该算法可以精确地调整人工神经网络出现问题的部件,从而快速降低网络进行分类或预测的错误率,这使得人工神经网络在诸多机器学习算法中胜出。所以,反向传播算法是人工神经网络的核心。

在应用层面,与一般的机器学习技术相比,深度学习最大的特色是可以处理各种非结构化数据——特指图像、视频、文本、音频,等等。而一般的机器学习更适合处理结构化数据,即可以用关系型数据库进行存储、管理和访问的数据。

通过对比深度学习与人工智能及一般机器学习技术之间的区别和联系,我们可以从横向的、多学科的角度来理解深度学习;另外,我们还需要从纵向的、历史渊源的角度进一步了解深度学习。

深度学习的历史渊源

尽管人工神经网络的诞生比人工智能还要早上十多年,但是在人工智能的历史上,人工神经网络却一直是一个旁支,它被人们称为人工智能的“连接学派”。这一旁支曾经迎来过短暂的辉煌,但是真正爆发还是近些年的事情。

从感知机到人工神经网络

人工智能诞生于1956 年的达特茅斯会议,而人工神经网络的诞生比人工智能还早,可以追溯到1943 年。当时,第一个人工神经元被发明了出来,这就是著名的麦克洛克皮茨(McCulloch-Pitts)模型。

麦卡洛克-皮特斯模型,简称MP模型一种神经元网络模型。它是在1943年,由美国心理学家麦卡洛克(McCulloch, W. S. )和数学家皮特斯((Puts , W.)等提出的利用神经元网络对信息进行处理的数学模型,从此人们开始了对神经元网络的研究。该模型的主要目的是完成对神经元状态的描述。

通过对大脑的分析,人们发现,从信息处理的功能看,神经元由以下特点:

1.多输入单输出.

2.突触(传递神经冲动的地方)兼有兴奋和抑制两种性能.

3.能时间加权和空间加权.

4.可产生脉冲.

5.脉冲进行传递

6.非线性(有I}值).

——百度百科

不过,他们的工作并未引起业内重视,人工神经网络的研究一直进展缓慢。直到1957 年,弗兰克·罗森布莱特(Frank Rosenblatt)提出了感知机模型(Perceptron),才点燃了人们探索人工神经网络的热情,并使其成为业界探索人工智能的另类路径。这种方法并不是直接从功能的角度模拟人类的智能,而是尝试构建一个类似于大脑神经网络的装置,然后通过结构模拟的方法来解决问题。

对感知机感兴趣的小伙伴可以阅读:《深度学习入门:基于Python的理论与实现》第2章。

《深度学习入门》第 2 章 感知机 笔记:http://www./article/507311

然而,好景不长。1969 年,马文·闵斯基(Marvin Lee Minsky)与西摩尔·派普特(Seymour Aubrey Papert)在其合著中开宗明义地指出了感知机模型的局限性:它甚至连极其简单的XOR(异或)问题都无法解出来,何况更高级的智能呢?所谓XOR 问题就是将输入的两个二进制串按照每一个位进行比较,相同的位就输出1,否则输出0。例如,输入的两个二进制串是1001 和0111,则XOR 就会输出0001。显然,XOR 问题是一个基础、简单的问题。然而把1001 及0111输入给感知机神经网络,无论如何变换参数,如何训练,它都不能输出正确的答案。就这样,人工神经网络被打入了冷宫。碍于马文·闵斯基在人工智能圈中的地位和声势,研究者几乎不敢再发表有关感知机和神经网络的文章了,这种局面一直持续了将近20 年。

历史的进程需要一名拯救者来挽回连接学派的颓势,而他就是大名鼎鼎的杰弗里·辛顿(Geoffrey Everest Hinton)。1986 年,辛顿与合作者大力发展了人工神经网络的反向传播算法,从而可以构造两层以上的人工神经网络,并且可以有效地进行学习与训练。对闵斯基XOR 问题的回应就在于深度。两层以上的神经网络可以很轻松地解决XOR 问题,从而打破了闵斯基的诘难。

不仅如此,多层人工神经网络配备上反向传播算法还能帮助人们解决大量的模式识别和预测问题。尽管当时的精度还有待提高,但是人工神经网络作为一种通用的算法,在20 世纪80 年代末到90 年代初曾经风靡一时,它已经演化成为可以与经典的人工智能符号学派和新兴的人工智能行为学派并驾齐驱的连接学派。

然而好景不长,人工神经网络并没有继续沿着深度的方向发展下去。这一方面是受限于当时的计算能力,另一方面则是因为缺乏大规模高质量的训练数据。而且,神经网络本身就是一个黑箱,谁也不敢保证神经网络在深度这个方向就一定能够取得更好的结果和精度。于是,学术界的焦点朝向了另一个方向发展:寻找神经网络的基础理论。

到了20 世纪90 年代末,在两位俄罗斯裔数学家弗拉基米尔·万普尼克(Vladimir Naumovich Vapnik)和亚历克塞·泽范兰杰斯(Alexey Yakovlevich Chervonenkis)的大力推进下,统计学习理论蓬勃发展了起来,它不仅奠定了模式识别问题的数学基础,而且创造出了支持向量机这种极其实用简洁的工具。与传统神经网络希望通过加深网络来提升精度相反,支持向量机的解决方案是将数据的维度提升,在高维空间中寻找能够将数据进行精准划分的方法,这种方法在数据量不是很大的情况下非常奏效。就这样,支持向量机成为20 世纪90 年代到21 世纪初的宠儿。

然而,真理似乎总是掌握在少数人手中。在主流学术圈关注支持向量机的时候,辛顿仍然在默默地坚持着深度网络的方向。2006 年,辛顿在《科学》杂志上发表了一篇题为《利用神经网络进行数据的维度约减》的文章,提出了深度神经网络(deep neural network,DNN)模型,并指出如果我们能够将神经网络的层数加深,并且精心设计训练网络的方式,那么这样深层次的神经网络就会具有超强的表达能力和学习能力。

虽然很多人很早就猜想深度的神经网络也许能够大大提高分类的准确度,但是没有人真正地严格验证过这个结论。原因在于当时的硬件水平和数据量都远远无法与深度的神经网络相匹配,再加上深度网络需要特殊的训练技巧,这就阻碍了人们往深度方向去探索。而辛顿始终坚持着深度的梦想,终于在2006 年实现了突破,向世人证明了“深度”的作用。

深度学习时代

辛顿有关深度神经网络的研究激励了大量的学者朝着这个方向前进。借助辛顿的深度网络模型,人们首先在语音领域取得了突破。微软的邓力邀请辛顿加入语音识别的深度神经网络模型的开发,使识别的准确度有了大幅度的提升。然而,辛顿并不想止步于此,他需要一个更大的数据集来训练超深度的网络,从而向世人展示深度的神奇威力。然而,这么大规模的数据集到哪里去找呢?

此时,一位华裔女科学家走上了历史的舞台,她就是美国斯坦福大学的机器视觉专家李飞飞。2006 年,李飞飞还是一个名不见经传的小人物。然而,她却怀揣着一个不小的梦想:构造一个大规模的有关图像的数据库,她将其命名为ImageNet,以仿效自然语言处理领域中的WordNet,为上千种物体的图像进行标注。但是,当她写报告申请经费的时候却遭到了无情的拒绝。然而,李飞飞并未放弃梦想,最终找到了亚马逊的众包平台——“亚马逊土耳其机器人”(Amazon Mechanical Turk),借助大量网友的力量构造出了ImageNet 这样一个大规模、高精度、多标签的图像数据库。

到了2010 年,ImageNet 已经收录了一百多万张图像。如此巨大的数据量应该能促进计算机视觉领域的大发展,于是李飞飞开始举办每年一次的图像识别大赛:ImageNet 竞赛。正是这样的竞赛为辛顿提供了一个完美的舞台。那时,他早已准备好要让深度神经网络大显身手了。2012 年,辛顿和他的两个学生阿莱克斯·克里兹维斯基(Alex Krizhevsky)和伊利亚·索特思科瓦(Ilya Sutskever)采用了一个深层次的卷积神经网络(AlexNet),在ImageNet 竞赛的分类任务中表现突出,技压群雄,将分类错误率从25%降到了17%。其实,卷积神经网络(convolutional neural network,CNN)也不是新东西,它于20 世纪80 年代发展起来,最早用于模仿动物视觉皮层的结构。到了1998 年,这种网络被杨·乐昆(Yann LeCun)等人成功应用到了手写数字的识别上,大获成功。然而将卷积神经网络做到8 层,而且不需要任何预处理就能将图像分类任务做到这么好,这还是头一次。从此,深度神经网络就成为了ImageNet 竞赛的标配,从AlexNet 到GoogleNet,人们不断增加网络的深度,识别准确率直线提升。2012 年以后,深度学习开始在学术圈流行起来。

巨头之间的角逐

然而,深度学习更大范围的应用和工业界是分不开的。2011 年,谷歌X 实验室的杰夫·迪恩(Jeffrey Adgate Dean)和吴恩达等人采用深度学习技术,让谷歌大脑深度神经网络观看了从YouTube 中提取出来的30 万张图像,并让机器自动进行精炼。结果,谷歌大脑自己学出了一张“猫”脸,如图3 所示。这张猫脸具有鲜明的“机器烙印”。第二天,这张猫脸便出现在了各大网站的头条位置,深度学习开始引起工业界的关注。

看了这篇文章才发现,之前对深度学习的了解太浅了

图3 谷歌大脑从30 万张图像中自学出来的“猫”脸

在看到深度学习技术的发展前景后,以谷歌为代表的各大公司开始疯狂并购人工智能、深度学习初创公司和团队。这不仅引发了人工智能人才的全球争夺战,也促使更多的人才和创业公司投入到人工智能大潮之中。

深度学习技术在语音和图像领域的成功应用激发了人们将该技术扩展到自然语言处理领域的热情。首先,2013 年谷歌的托马斯·米科洛夫(Tomas Mikolov)提出了Word2Vec 技术,它可以非常快捷有效地计算单词的向量表示,这为大规模使用人工神经网络技术处理人类语言奠定了重要的基础。

2014 年,谷歌开始尝试利用深度的循环神经网络(recurrent neural networks,RNN)来处理各种自然语言任务,包括机器翻译、自动对话、情绪识别、阅读理解等。尽管目前深度学习技术在自然语言类任务上的表现还无法与图像类任务相媲美,但已取得了长足的进步。2016 年,谷歌的机器翻译技术取得重大突破,采用了先进的深度循环神经网络和注意力机制的机器翻译在多种语言上已经基本接近人类的水平。

除了在语音、图像和自然语言处理等传统任务上的发展,科学家还在不断地拓宽深度学习的应用范围。在与强化学习这一古老的机器学习技术联姻后,深度学习在计算机游戏、博弈等领域同样取得了重大进展。2015 年,被谷歌收购的DeepMind 团队研发了一种“通用人工智能”算法,它可以像人类一样,通过观察计算机游戏的屏幕进行自我学习,利用同一套网络架构和超参数,从零开始学习每一款游戏,并最终打通了300 多款雅达利游戏,在某些游戏上的表现甚至超越了人类。

2016 年3 月,DeepMind 团队又在博弈领域取得了重大突破。AlphaGo 以4∶1 的大比分战胜人类围棋冠军,让计算机围棋这一领域的发展提前了至少十年。2017 年10 月,DeepMind 团队创造的AlphaGo 升级版AlphaGo Zero 再一次取得了重大突破,它可以完全从零开始学习下围棋,而无须借鉴任何人类的下棋经验。仅经过大约3 天的训练,AlphaGo Zero 就达到了战胜李世石的棋力水平;而到了21 天以后,世界上已经没有任何人类或程序可以在围棋上战胜它了。AlphaGo的成功不仅标志着以深度学习技术为支撑的新一代人工智能技术的大获全胜,更暗示着人工智能的全新时代已经到来。

我们列出了人工神经网络以及深度学习历史上的大事件,绘制了一条时间轴,方便读者查看,如图4 所示。

看了这篇文章才发现,之前对深度学习的了解太浅了

图4 人工神经网络、深度学习大事件

深度学习的影响因素

影响深度学习爆发的主要因素有3 个,分别是大数据、深度网络架构和GPU。

大数据

前面已经提到,深度神经网络并不算新技术,早在20 世纪八九十年代,人们就提出了加深神经网络的深度以获得更高准确度的设想,但是由于当时硬件发展速度跟不上,人们很难实现深度的神经网络。当然,更主要的原因是当时根本没有足够大量的数据输入给深度神经网络,因此自然也就无法发挥深度的作用。伴随着网络深度的增加,待拟合的参数自然也会增加,如果没有与其相匹配的海量数据来训练网络,这些参数就完全变成了导致网络过拟合的垃圾,无法发挥作用。

然而,到了21 世纪的第二个十年,一切都不一样了。有数据显示,2014 年,整个互联网上每秒钟就有60 万条信息在脸书上分享,2 亿封邮件、10 万条推文被发送,571 个新网站被建立,1.9E(1018)字节的数据被交换[1]。随着互联网特别是移动互联网时代的到来,我们每一个动作都会被网络服务器记录下来,这些数据促使人类一下子进入了大数据时代。

大数据时代的到来为深度神经网络的大规模应用铺平了道路,加深网络带来更高精度的设想终于可以在海量数据的基础上得以验证。图1.5 所示的曲线很好地说明了数据量的大小对深度神经网络分类和预测准确度的影响。

看了这篇文章才发现,之前对深度学习的了解太浅了

图5 机器学习模型的预测精度随数据量的提升曲线

图中横坐标表示的是输入神经网络模型的数据规模大小,纵坐标表示的是模型所能达到的分类或预测准确度。实曲线对应的是采用了深度学习技术的神经网络模型,虚曲线代表的则是未采用深度学习技术的模型(例如SVM算法)。对比这两条曲线,我们可以清晰地看到,随着数据量的增加,采用了深度学习方法的模型可以持续不断地提高准确度,而传统算法则会很快地遇到精确度方面的瓶颈。

由此可见,大数据与深度学习技术的搭配才是促使人工智能突飞猛进发展的关键因素。

深度网络架构

有人说,如今的深度学习革命完全是拜大数据所赐,只要拥有海量的数据,随便调试一个深度学习模型,就可以获得很好的预测结果。这种认识是非常片面的,虽然大部分深度学习技术早在20 世纪八九十年代就发展了起来,但是当面对一个具体问题时,应该采用什么样的网络架构,如何选取超参数,如何训练这个网络,仍然是影响学习效率和解决问题的重要因素。

所谓的深度网络架构,就是整个网络体系的构建方式和拓扑连接结构,目前主要分为3 种:前馈神经网络、卷积神经网络和循环神经网络。

1. 前馈神经网络

前馈神经网络也叫全连接网络(fully connected neural network)。在这种结构中,所有的节点都可以分为一层一层的,每个节点只跟它的相邻层节点而且是全部节点相连(也就是全连接的)。这些层一般分为输入层(例如图1.1 中最左侧的一列节点)、输出层(图1.1 中最右侧的4 个节点)以及介于二者之间的隐含层[2]。这种前馈神经网络是目前应用最多的一类神经网络。

2. 卷积神经网络

另外一种常见的网络架构就是卷积神经网络,它一般用于对数字图像进行处理,其架构通常如图6 所示。

看了这篇文章才发现,之前对深度学习的了解太浅了

图6 卷积神经网络架构示意图

图中每一个立方体都是一系列规则排列的人工神经元集合。每个神经元到上一层次的连接称为卷积核,它们都是一种局域的小窗口。图中的小锥形可以理解为从高层的某一个神经元到低层多个神经元之间的连接。这个小锥形在立方体上逐像素的平移就构成了两层次之间的所有连接。到了最后两层,小立方体被压缩成了一个一维的向量,这就与普通的前馈神经网络没有任何区别了。

CNN 这种特殊的架构可以很好地应用于图像处理,它可以使原始的图像即使在经历过平移、缩放等变换之后仍然具有很高的识别准确性。正是因为具有这样特殊的架构,CNN 才成功应用于计算机视觉、图像识别、图像生成,甚至AI 下围棋、AI 打游戏等广阔的领域。

3. 循环神经网络

还有一种常见的网络架构,就是被广泛应用于自然语言处理任务中的循环神经网络,如图7 所示。

看了这篇文章才发现,之前对深度学习的了解太浅了

图7 循环神经网络架构示意图

图的左侧为输入节点,右侧为输出节点,中间的隐含层节点互相连接。可以看到,这种网络与普通的三层前馈神经网络非常相似,只不过隐含层彼此之间还具有大量的连接。

RNN 这种特殊架构使得网络当前的运行不仅跟当前的输入数据有关,而且还与之前的数据有关。因此,这种网络特别适合处理诸如语言、音乐、股票曲线等序列类型的数据。整个网络的循环结构可以很好地应付输入序列之中存在的长程记忆性和周期性。

4. 更多的新型网络架构

最近几年,研究人员提出了越来越多的新型网络架构类型,从而使深度学习的性能得到了大幅提升。在此,我们仅举两个例子进行说明。

第一个例子来源于机器翻译。人们发现,如果将两个RNN 在时间步上串联,就能以相当可观的精度完成机器翻译任务。在这样的架构中,第一个RNN 被看作编码器,它的任务是将输入的源语言编码成RNN 的隐含层节点状态;第二个RNN 被看作解码器,它可以将编码器的隐含状态解码成翻译的目标语言,整体架构如图8 所示。

看了这篇文章才发现,之前对深度学习的了解太浅了

图8 机器翻译的编码器—解码器架构(EOS 表示句子结束,SOS 表示句子起始)

图中,左侧的方块表示一个时刻的编码器,它是一个多层的RNN 网络;右侧的方块表示一个时刻的解码器,它也是一个多层的RNN 网络。从左到右表示时间上从前到后。开始的时候,编码器运作,它一步步地读入待翻译的源语言;到了源语言句子结束的时候(读入EOS),解码器开始工作,它一步步地输出翻译的目标语言,并将每一次预测的单词输入给下一时刻的解码器,从而输出整个句子。

另一个例子是可微分计算机(或称为神经图灵机),它是谷歌DeepMind 的研究人员提出的一种融合了神经网络和冯·诺依曼体系式计算机的计算架构,它既可以模仿计算机的工作,又可以通过训练的方式进行学习,如图9 所示。

看了这篇文章才发现,之前对深度学习的了解太浅了

图9 可微分计算机的架构示意图(图片来源:Graves A, et al. Hybrid Com

在这种架构中,整个网络由控制器(a)、读写头(b)、存储器(c),以及存储器运作中的临时连接(d)构成。在控制器中,从输入到输出的映射由一个RNN 网络相连,它调控着读写头,会产生一组权重,用于从存储器部分读取或者写入数据。存储器就像我们计算机中的内存,它也可以被看作一组规则排列的神经元。

这种装置可以用于复杂的推理、阅读理解等高级计算任务,因为它不仅仅是一个神经网络,还结合了冯·诺依曼式体系架构,在问题求解、自然语言处理等任务上的能力已经超越了RNN。

5. 训练方式如何影响深层网络

除了架构会影响深度网络的表现以外,训练的方式也会对结果产生很大的影响。

有两篇文章可以说明训练方式的重要性。第一篇文章是约书亚·本吉奥(Yoshua Bengio)的

《课程学习》(“Curriculum Learning”)[3],该文指出当我们用数据训练人工神经网络时,不同的顺序会对网络学习速度的快慢和最终的表现性能产生重要的影响。我们如果先将少量特定标签的数据输入网络,然后再拿剩下的数据去训练它,就会比一股脑儿地把所有标签的数据都输入给它要更加有效,从而提高网络的“学习”能力。这就像人类学习一样,我们有步骤地学习会比一股脑儿地记下所有的知识更好。该学习方式将帮助机器学习吸取人类学习的优点,提升机器的学习效果,协助其跳出局部极优,获得更好的泛化能力。

第二篇文章是《在深度神经网络中特征是如何变成可迁移的》(“How Transferable areFeatures in Deep Neural Network?”)[4],该文详细地比较了不同的训练方式如何影响网络的学习效率。有了更有效的学习,我们就可以通过迁移学习(参见第6 章)将训练好的神经网络迁移到新的小数据集中,从而得到很好的表现。

AlphaGo 的复杂训练流程也向我们展示了训练方式和训练路径对于一个深度学习系统的重要性。首先,AlphaGo 团队根据人类的下棋经验快速训练了一个小的网络——快速走棋网络,在此基础上,再根据人类下棋的棋谱训练一个大的网络——监督学习走棋网络;其次,又在这个网络的基础上,让AlphaGo 通过自己和自己对抗下棋得到一个强化学习走棋网络;最后,在此基础上得到价值网络。整个训练流程非常复杂却又十分精巧,包含了无数训练技巧。

GPU

影响深度学习性能的最后一个因素就是GPU 了。GPU 就是图形处理单元(graphics processing unit),和CPU 一样,都是做计算的基本单元,只不过GPU 是镶嵌在显卡上的,而CPU 则是镶嵌在主机主板上的。

我们知道,深度神经网络的训练过程需要耗费大量的计算时间。如果没有GPU 的加速,我们就不可能在可接受的时间内训练好一个深度的神经网络。那为什么GPU 可以帮助深度神经网络加速呢?原因就在于GPU 非常擅长大规模的张量运算,并且可以为这种运算加速,对包含多个数值的张量运算所需要的平均时间远远低于对每个数字运算的时间。

原来,GPU 是在大规模3D 计算机游戏这个庞大市场的刺激下发明的。我们知道,3D 图像的渲染需要进行大规模的矩阵运算。GPU 的出现可以让这种运算并行化,从而让计算机图形渲染画面异常地流畅和光滑。

无巧不成书,后来人们认识到,GPU 这种对矩阵运算的并行性可以帮助我们快速实现对神经网络的训练,因为训练的运算过程可以全部转化成高阶矩阵(一般称为张量)的运算过程,而这正是GPU 所擅长的。

因此,大数据、深度网络架构和GPU 这三驾马车凑齐了以后,我们就可以踏上深度学习的康庄大道了。

深度学习为什么如此成功

深度学习为什么如此成功?要回答这个问题,就要了解深度学习的本质特色,那就是对所学特征的“表达能力”(representation)。 换句话说,深度学习重要的本领在于它可以从海量的数据中自动学习,抽取数据中的特征。

特征学习

深度神经网络的一个特性是会把不同的信息表达到不同层次的网络单元(权重)之中,并且这一提炼过程完全不需要手工干预,全凭机器学习过程自动完成,这就是我们常说的特征学习(representation learning)。深度学习的本质就是这种自动提取特征的功能。

例如,CNN 在做图像识别的时候,可以自动提炼出数字图像中的低尺度和高尺度特征。如图10 所示,低层(离输入端比较近)的神经元可以提取图像中的边缘、棱角等小尺度信息;中间层单元可以提取数据中更高一层的尺度信息;而到了更高层,它就可以提取图像中大尺度信息(例如整张人脸)的特征。

看了这篇文章才发现,之前对深度学习的了解太浅了

图10 使用深层CNN 提取图像中不同尺度的信息

事实上,从原始数据中提炼出最基本的特征一直是困扰科学家的一大难题。例如要实现人脸识别,早期的方法是需要手工从原始图像中提取出边缘、棱角等基础性信息,然后将这些信息传递给一个普通的神经网络做分类。但是,这一过程相当费时费力,并且和领域知识高度相关,因此,手工特征提取成为了整个流程的瓶颈。

如今,基于深度学习的算法可以将特征提取的过程自动学习出来。我们只需要将包含人脸的原始图像数据输入网络,它通过反复的有监督学习就可以一点一点地在各个层面将重要的特征学出来,这无疑大大解放了生产力。

迁移学习

除此之外,深度神经网络的另一个重要特性就在于特征提取之后的迁移学习(transfer learning)。我们可以像做脑外科手术一样把一个训练好的神经网络切开,然后再把它拼合到另一个神经网络上。正如我们刚才所说的,神经网络可以在各个层编码表示数据中不同尺度的特征。

也就是说,前几层神经网络就好像一个特征提取器,作用就是提炼特征,而后面部分的网络会根据这些特征进行分类或者预测。

于是,当把神经网络组合拼接之后,我们就可以用前面部分的神经网络进行特征提取,再将这个特征提取器与后面的网络进行拼接,去解决另一个完全不同的问题,这就叫迁移学习。

例如,我们可以组合CNN 和RNN 两种神经网络,从而得到一个全新的看图说话网络,如图11 所示。

看了这篇文章才发现,之前对深度学习的了解太浅了

图11 将CNN 和RNN 进行迁移、拼接

在这个实验中,我们首先训练一个CNN,让它能够对图像进行准确分类。之后,我们将前面一半网络(矩形框中的部分)切下来,作为一个特征提取器。然后,我们在它的后面连接上一个RNN(这个网络可以事先训练好,使它可以生成自然语言)。最后,只要对拼接起来的新网络稍加训练,就可以让它完成看图说话的任务了。

这就是深度神经网络之所以如此深受欢迎的重要原因。有了特征提取和迁移学习,我们就能够实现各种端到端(end to end)式的学习,也就是说可以直接输入原始数据,让深度网络输出最终的结果。所有的中间处理环节,我们都不需要关心,整个网络会自动学习到一种最优的模式,从而使模型可以精确地输出预测值。

这种端到端的机器学习方式有一个迷人之处:它可以通过不断吸收大量数据而表现得越来越专业,甚至在训练神经网络的过程中不需要所解决问题的领域知识。于是,端到端的深度学习给大量的初创公司快速占领市场提供了足够丰富的机会。这或许是大家看好并投身深度学习的一个原因。

总结

本文对深度学习进行了简明扼要的介绍。首先,从深度学习与其他学科的关系、历史渊源这两个层面介绍了什么是深度学习。其次,讨论了导致深度学习爆发的三大本质因素:大数据、深度网络架构以及GPU。在这三大因素中,我们着重强调了深度网络架构的重要性,将流行的网络架构分成了前馈神经网络、卷积神经网络和循环神经网络三大类。最后,讨论了深度学习取得成功的原因:一是深度神经网络可以自动学习表征,避免了大量的人工工作,使得端到端的机器学习成为了可能;二是我们可以对深度神经网络实施类似于脑外科手术一样的迁移和拼接,这不仅实现了利用小数据完成高精度的机器学习,也让我们的网络能够像软件模块一样进行拼接和组装,这无疑会对深度学习以及人工智能技术的应用与普及产生深刻的影响。

——本文内容来源《深度学习原理与PyTorch实战》,由国内领先人工智能研究团体集智俱乐部著作。

看了这篇文章才发现,之前对深度学习的了解太浅了

这是一本系统介绍深度学习及开源框架PyTorch的入门书,它通过丰富的案例和清晰的讲解,带你找到良好的深度学习修炼路线,直达获得最佳学习状态,而不必像随机梯度下降般迂回绕路。

通过阅读本书,可以轻松入门深度学习,学会构造一个图像识别器,生成逼真的图画,让机器理解单词与文本,让机器作曲,教会机器玩游戏,还可以实现一个简单的机器翻译系统。

全书注重实战,每章围绕一个有意思的实战案例展开,不仅循序渐进地讲解了PyTorch的基本使用、神经网络的搭建、卷积神经网络和循环神经网络的实现,而且全面深入地介绍了计算机视觉、自然语言处理、迁移学习,以及最新的对抗学习和深度强化学习等前沿技术。

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多