DNN解释,dnn是啥意思网络

http://www.itjxue.com  2023-01-23 08:14  来源:未知  点击次数: 

CNN、RNN、DNN的一般解释

CNN(卷积神经网络)、RNN(循环神经网络)、DNN(深度神经网络)的内部网络结构有什么区别?

转自知乎 科言君 ?的回答

神经网络技术起源于上世纪五、六十年代,当时叫 感知机 (perceptron),拥有输入层、输出层和一个隐含层。输入的特征向量通过隐含层变换达到输出层,在输出层得到分类结果。早期感知机的推动者是Rosenblatt。 (扯一个不相关的:由于计算技术的落后,当时感知器传输函数是用线拉动变阻器改变电阻的方法机械实现的,脑补一下科学家们扯着密密麻麻的导线的样子…)

但是,Rosenblatt的单层感知机有一个严重得不能再严重的问题,即它对稍复杂一些的函数都无能为力(比如最为典型的“异或”操作)。连异或都不能拟合,你还能指望这货有什么实际用途么o(╯□╰)o

随着数学的发展,这个缺点直到上世纪八十年代才被Rumelhart、Williams、Hinton、LeCun等人(反正就是一票大牛)发明的 多层感知机 (multilayerperceptron)克服。多层感知机,顾名思义,就是有多个隐含层的感知机(废话……)。好好,我们看一下多层感知机的结构:

图1 上下层神经元全部相连的神经网络——多层感知机

多层感知机可以摆脱早期离散传输函数的束缚,使用sigmoid或tanh等连续函数模拟神经元对激励的响应,在训练算法上则使用Werbos发明的反向传播BP算法。对,这货就是我们现在所说的 神经网络 NN ——神经网络听起来不知道比感知机高端到哪里去了!这再次告诉我们起一个好听的名字对于研(zhuang)究(bi)很重要!

多层感知机解决了之前无法模拟异或逻辑的缺陷,同时更多的层数也让网络更能够刻画现实世界中的复杂情形。相信年轻如Hinton当时一定是春风得意。

多层感知机给我们带来的启示是, 神经网络的层数直接决定了它对现实的刻画能力 ——利用每层更少的神经元拟合更加复杂的函数[1]。

(Bengio如是说:functions that can be compactly

represented by a depth k architecture might require an exponential number of

computational elements to be represented by a depth k ? 1 architecture.)

即便大牛们早就预料到神经网络需要变得更深,但是有一个梦魇总是萦绕左右。随着神经网络层数的加深, 优化函数越来越容易陷入局部最优解 ,并且这个“陷阱”越来越偏离真正的全局最优。利用有限数据训练的深层网络,性能还不如较浅层网络。同时,另一个不可忽略的问题是随着网络层数增加, “梯度消失”现象更加严重 。具体来说,我们常常使用sigmoid作为神经元的输入输出函数。对于幅度为1的信号,在BP反向传播梯度时,每传递一层,梯度衰减为原来的0.25。层数一多,梯度指数衰减后低层基本上接受不到有效的训练信号。

2006年,Hinton利用预训练方法缓解了局部最优解问题,将隐含层推动到了7层[2],神经网络真正意义上有了“深度”,由此揭开了深度学习的热潮。这里的“深度”并没有固定的定义——在语音识别中4层网络就能够被认为是“较深的”,而在图像识别中20层以上的网络屡见不鲜。为了克服梯度消失,ReLU、maxout等传输函数代替了sigmoid,形成了如今DNN的基本形式。单从结构上来说, 全连接的 DNN 和图 1 的多层感知机是没有任何区别的 。

值得一提的是,今年出现的高速公路网络(highway network)和深度残差学习(deep residual learning)进一步避免了梯度消失,网络层数达到了前所未有的一百多层(深度残差学习:152层)[3,4]!具体结构题主可自行搜索了解。如果你之前在怀疑是不是有很多方法打上了“深度学习”的噱头,这个结果真是深得让人心服口服。

图2 缩减版的深度残差学习网络,仅有34 层,终极版有152 层,自行感受一下

如图1所示,我们看到 全连接 DNN 的结构里下层神经元和所有上层神经元都能够形成连接 ,带来的潜在问题是 参数数量的膨胀 。假设输入的是一幅像素为1K*1K的图像,隐含层有1M个节点,光这一层就有10^12个权重需要训练,这不仅容易过拟合,而且极容易陷入局部最优。另外,图像中有固有的局部模式(比如轮廓、边界,人的眼睛、鼻子、嘴等)可以利用,显然应该将图像处理中的概念和神经网络技术相结合。此时我们可以祭出题主所说的卷积神经网络CNN。对于CNN来说,并不是所有上下层神经元都能直接相连,而是 通过“卷积核”作为中介。同一个卷积核在所有图像内是共享的,图像通过卷积操作后仍然保留原先的位置关系。 两层之间的卷积传输的示意图如下:

图3 卷积神经网络隐含层(摘自Theano 教程)

通过一个例子简单说明卷积神经网络的结构。假设图3中m-1=1是输入层,我们需要识别一幅彩色图像,这幅图像具有四个通道ARGB(透明度和红绿蓝,对应了四幅相同大小的图像),假设卷积核大小为100*100,共使用100个卷积核w1到w100(从直觉来看,每个卷积核应该学习到不同的结构特征)。用w1在ARGB图像上进行卷积操作,可以得到隐含层的第一幅图像;这幅隐含层图像左上角第一个像素是四幅输入图像左上角100*100区域内像素的加权求和,以此类推。同理,算上其他卷积核,隐含层对应100幅“图像”。每幅图像对是对原始图像中不同特征的响应。按照这样的结构继续传递下去。CNN中还有max-pooling等操作进一步提高鲁棒性。

图4 一个典型的卷积神经网络结构,注意到最后一层实际上是一个全连接层(摘自Theano 教程)

在这个例子里,我们注意到 输入层到隐含层的参数瞬间降低到了 100*100*100=10^6 个 !这使得我们能够用已有的训练数据得到良好的模型。题主所说的适用于图像识别,正是由于 CNN 模型限制参数了个数并挖掘了局部结构的这个特点 。顺着同样的思路,利用语音语谱结构中的局部信息,CNN照样能应用在语音识别中。

全连接的DNN还存在着另一个问题——无法对时间序列上的变化进行建模。然而, 样本出现的时间顺序对于自然语言处理、语音识别、手写体识别等应用非常重要 。对了适应这种需求,就出现了题主所说的另一种神经网络结构——循环神经网络RNN。

在普通的全连接网络或CNN中,每层神经元的信号只能向上一层传播,样本的处理在各个时刻独立,因此又被成为前向神经网络(Feed-forward Neural Networks)。而在 RNN 中,神经元的输出可以在下一个时间戳直接作用到自身 ,即第i层神经元在m时刻的输入,除了(i-1)层神经元在该时刻的输出外,还包括其自身在(m-1)时刻的输出!表示成图就是这样的:

图5 RNN 网络结构

我们可以看到在隐含层节点之间增加了互连。为了分析方便,我们常将RNN在时间上进行展开,得到如图6所示的结构:

图6 RNN 在时间上进行展开

Cool, ( t+1 )时刻网络的最终结果O(t+1) 是该时刻输入和所有历史共同作用的结果 !这就达到了对时间序列建模的目的。

不知题主是否发现,RNN可以看成一个在时间上传递的神经网络,它的深度是时间的长度!正如我们上面所说, “梯度消失”现象又要出现了,只不过这次发生在时间轴上 。对于t时刻来说,它产生的梯度在时间轴上向历史传播几层之后就消失了,根本就无法影响太遥远的过去。因此,之前说“所有历史”共同作用只是理想的情况,在实际中,这种影响也就只能维持若干个时间戳。

为了解决时间上的梯度消失,机器学习领域发展出了 长短时记忆单元 LSTM ,通过门的开关实现时间上记忆功能,并防止梯度消失 ,一个LSTM单元长这个样子:

图7 LSTM 的模样

除了题主疑惑的三种网络,和我之前提到的深度残差学习、LSTM外,深度学习还有许多其他的结构。举个例子,RNN既然能继承历史信息,是不是也能吸收点未来的信息呢?因为在序列信号分析中,如果我能预知未来,对识别一定也是有所帮助的。因此就有了 双向 RNN 、双向 LSTM ,同时利用历史和未来的信息。

图8 双向RNN

事实上, 不论是那种网络,他们在实际应用中常常都混合着使用,比如 CNN 和RNN 在上层输出之前往往会接上全连接层,很难说某个网络到底属于哪个类别。 不难想象随着深度学习热度的延续,更灵活的组合方式、更多的网络结构将被发展出来。尽管看起来千变万化,但研究者们的出发点肯定都是为了解决特定的问题。题主如果想进行这方面的研究,不妨仔细分析一下这些结构各自的特点以及它们达成目标的手段。入门的话可以参考:

Ng写的Ufldl: UFLDL教程 - Ufldl

也可以看Theano内自带的教程,例子非常具体: Deep Learning Tutorials

欢迎大家继续推荐补充。

当然啦,如果题主只是想凑个热闹时髦一把,或者大概了解一下方便以后把妹使,这样看看也就罢了吧。

参考文献:

[1]

Bengio Y. Learning Deep

Architectures for AI[J]. Foundations Trends? in Machine Learning, 2009,

2(1):1-127.

[2]

Hinton G E, Salakhutdinov R R.

Reducing the Dimensionality of Data with Neural Networks[J]. Science, 2006,

313(5786):504-507.

[3]

He K, Zhang X, Ren S, Sun J. Deep

Residual Learning for Image Recognition. arXiv:1512.03385, 2015.

[4]

Srivastava R K, Greff K,

Schmidhuber J. Highway networks. arXiv:1505.00387, 2015.

KDD2018精选(3)用引导特征反演解释基于DNN的预测

1.? ? 原文: Towards Explanation of DNN-based Prediction with Guided Feature Inversion

作者来自德州农机大学

关键词:机器学习解释;深度学习;中间层;引导特征反演

1.1? 引言

DNN通常可解释性不高且易受原始数据偏误影响,提高模型可解释性可优化上述两个问题。模型层面通常解释一组神经元的行为,实例层面通常解释一组数据的特征,后者比前者直观。传统实例层面通常使用局部表示方法,仅观察输入输出的相应变化,这忽略了对内部层的解释且可能导致网络本身的变化。常用的比如CNN的特征反演又不够精确。通过添加类依赖约束和利用中间激活值作为掩码的集成,本文提出了一种有监督的实例层面的DNN特征反演。

1.2? 相关工作

通过特征反演可视化DNN特征表示和基于DNN的预测的实例级解释是本文最相关的两条工作。Mahendran和Vedaldi按顺序反转来自不同层的中间CNN特征来表示对CNN的工作机制的认知。现有解释方法的很大一部分基于灵敏度分析,即根据输入计算分类输出的灵敏度。基于梯度的方法使用反向传播计算类别得分相对于输入图像的偏导数。基于扰动的解释的思路是扰乱原始输入并观察DNN模型的预测概率变化。除了这两种解释之外,最近的一些工作提出通过调查DNN隐藏层来提供解释。

1.3? 基于DNN的预测解释

这里介绍了解释基于DNN的预测的解释框架:主要思路是识别同时编码目标对象的位置信息并匹配原始图像的特征表示的图像区域。

1.3.1? ? ?问题阐述

找出输入x中的导致DNN进行预测的因素,并在图像识别上做验证:具有较高分数的像素表示分类任务的较高相关性。

1.3.2? ? ?通过特征反演进行解释

来自前几层特征的重建结果几乎保留了所有详细的图像信息,而来自最后几层的反演仅包含原始图像的粗略形状。在层1_0处反转特征表示的过程可以被视为计算表示f_l0(xa)的近似反演f-1。反演结果和原始数据的差距应尽可能小:

用于量化输入像素和输出之间的相关性的贡献分数可以从反演结果确定,预期的反转图像表示被重新表示为原始图像x_a和另一个噪声背景图像p的加权和:

这里不是直接找到反演图像表示,而是优化权重向量m。该方程不仅创建了与第1_0层的内部特征表示相匹配的图像Φ(x_a,m),而且还保留了m中的对象定位信息:

1.3.3? ? ?类区分解释

前述方法没有利用其他层的信息,也未作本地特征间的区分。为此,我们渲染引导特征重建结果Φ(xa)以强烈激活给定目标标签c的CNN的最后隐藏层L处的softmax概率值fL c,并减少对其他类的激活。

1.3.4? ? ?利用中间层的正则化

上述方法仍然具有产生不希望的伪特征的弱点,而没有对优化过程施加正则化。为了解决这个问题,我们通过利用CNN的中间激活特征在之前施加更强的自然图像。这里优化如下:

在应用于目标函数之前,我们仍然需要将掩模从小分辨率放大到与原始输入相同的分辨率,我们期望引导的反演表示Φ(x_a,m)和背景表示Φbд(x_a,m)变得不太可能受到伪像的影响。

1.4? 实验

首先,本文在模型体系结构的各种设置下可视化ImageNet数据集上的解释结果,在实验设置和可视化之后,展示在对抗性攻击下的不同CNN网络的解释结果。

其次,本文通过将其应用于弱监督对象本地化任务来测试本地化性能,在不同显著性下测试每种网络不同层的本地结果。

第三,本文讨论了算法的类可辨性,在指向游戏中的性能与Grad,Grad-CAM和基线方法中心进行比较,该中心利用图像中心作为最大点。

最后,本文通过将其应用于显着对象检测任务来评估所提出方法的引导特征反演部分,基于量化的弱监督显著物体检测。

1.5 在显著性检测中,本文在精度召回和MAE上取得了比SS和SIM更好的得分。

dnn 的泛化能力如何理解

DNN 的泛化能力较强,但是为什么强呢,其实目前也较难说清楚。只能说多看看别人怎么说,加深理解。

深度网络的本质在于找到了问题的有效描述,比如图像的生成网络,可看作其所表述的图像子空间的投影操作,这个表述能力由网络结构和网络参数来确定,其中网络结构决定了数据的复杂度和整体统计分布,网络参数决定图像局部特征。

可以理解为,训练帮助网络提取了数据子空间的有效描述,从而导致了泛化能力。

如果是考察迁移能力,则大致可以归结为不同数据或问题,其子空间的复杂度和结构有统计相似性,所以从一类数据上获得的描述也可以通过简单映射来描述另一组数据。

说一下个人对于泛化的浅薄见解。所有的问题都可以是X空间到Y空间的映射。这两个空间可以是无限的。但用来描述映射的规则是有限的。这个规则就学习的目标。对于无限的XY空间来说,无论我们有多少样本都是有限的。但假使我们碰巧得出了真实分布的规则。那么模型对于所有新的X都是有效的。得出真实的概率分布,问题越复杂,难度越大,而模型所谓的学习就是让自身表示的概率分布尽可能的逼近真实的概率分布。这就是我理解的泛化能力,用有限的规则解释无限的实体关系。至于如何去逼近真实概率分布,前面的大佬已经说的很明白了,就不赘述了。

更深层次理解:

深度神经网络dnn怎么调节参数

深度神经网络(DNN)目前是许多现代AI应用的基础。

自从DNN在语音识别和图像识别任务中展现出突破性的成果,使用DNN的应用数量呈爆炸式增加。这些DNN方法被大量应用在无人驾驶汽车,癌症检测,游戏AI等方面。

在许多领域中,DNN目前的准确性已经超过人类。与早期的专家手动提取特征或制定规则不同,DNN的优越性能来自于在大量数据上使用统计学习方法,从原始数据中提取高级特征的能力,从而对输入空间进行有效的表示。

然而,DNN超高的准确性是以超高的计算复杂度为代价的。

通常意义下的计算引擎,尤其是GPU,是DNN的基础。因此,能够在不牺牲准确性和增加硬件成本的前提下,提高深度神经网络的能量效率和吞吐量的方法,对于DNN在AI系统中更广泛的应用是至关重要的。研究人员目前已经更多的将关注点放在针对DNN计算开发专用的加速方法。

鉴于篇幅,本文主要针对论文中的如下几部分详细介绍:

DNN的背景,历史和应用

DNN的组成部分,以及常见的DNN模型

简介如何使用硬件加速DNN运算

DNN的背景

人工智能与深度神经网络

深度神经网络,也被称为深度学习,是人工智能领域的重要分支,根据麦卡锡(人工智能之父)的定义,人工智能是创造像人一样的智能机械的科学工程。深度学习与人工智能的关系如图1所示:

图1:深度神经网络与人工智能的关系

人工智能领域内,一个大的子领域是机器学习,由Arthur Samuel在1959年定义为:让计算机拥有不需要明确编程即可学习的能力。

这意味着创建一个程序,这个程序可以被训练去学习如何去做一些智能的行为,然后这个程序就可以自己完成任务。而传统的人工启发式方法,需要对每个新问题重新设计程序。

高效的机器学习算法的优点是显而易见的。一个机器学习算法,只需通过训练,就可以解决某一领域中每一个新问题,而不是对每个新问题特定地进行编程。

在机器学习领域,有一个部分被称作brain-inspired computation。因为人类大脑是目前学习和解决问题最好的“机器”,很自然的,人们会从中寻找机器学习的方法。

尽管科学家们仍在探索大脑工作的细节,但是有一点被公认的是:神经元是大脑的主要计算单元。

人类大脑平均有860亿个神经元。神经元相互连接,通过树突接受其他神经元的信号,对这些信号进行计算之后,通过轴突将信号传递给下一个神经元。一个神经元的轴突分支出来并连接到许多其他神经元的树突上,轴突分支和树突之间的连接被称为突触。据估计,人类大脑平均有1014-1015个突触。

突触的一个关键特性是它可以缩放通过它的信号大小。这个比例因子可以被称为权重(weight),普遍认为,大脑学习的方式是通过改变突触的权重实现的。因此,不同的权重导致对输入产生不同的响应。注意,学习过程是学习刺激导致的权重调整,而大脑组织(可以被认为是程序)并不改变。

大脑的这个特征对机器学习算法有很好的启示。

神经网络与深度神经网络

神经元的计算是输入值的加权和这个概念启发了神经网络的研究。这些加权和对应于突触的缩放值以及神经元所接收的值的组合。此外,神经元并不仅仅是输入信号的加权和,如果是这样的话,级联的神经元的计算将是一种简单的线性代数运算。

相反的是,神经元组合输入的操作似乎是一种非线性函数,只有输入达到某个阈值的时候,神经元才会生成输出。因此,通过类比,我们可以知道神经网络在输入值的加权和的基础上应用了非线性函数。

图2(a)展示了计算神经网络的示意图,图的最左边是接受数值的“输入层”。这些值被传播到中间层神经元,通常也叫做网络的“隐藏层”。通过一个或更多隐藏层的加权和最终被传播到“输出层”,将神经网络的最终结果输出给用户。

图2:神经网络示意图

在神经网络领域,一个子领域被称为深度学习。最初的神经网络通常只有几层的网络。而深度网络通常有更多的层数,今天的网络一般在五层以上,甚至达到一千多层。

目前在视觉应用中使用深度神经网络的解释是:将图像所有像素输入到网络的第一层之后,该层的加权和可以被解释为表示图像不同的低阶特征。随着层数的加深,这些特征被组合,从而代表更高阶的图像特征。

例如,线可以被组合成形状,再进一步,可以被组合成一系列形状的集合。最后,再训练好这些信息之后,针对各个图像类别,网络给出由这些高阶特征组成各个对象的概率,即分类结果。

推理(Inference)与训练(Training)

既然DNN是机器学习算法中的一员,那么它的基本编程思想仍然是学习。DNN的学习即确定网络的权重值。通常,学习过程被称为训练网络(training)。一旦训练完成,程序可以使用由训练确定的权值进行计算,这个使用网络完成任务的操作被被称为推断(inference)。

接下来,如图3所示,我们用图像分类作为例子来展示如何训练一个深度神经网络。当我们使用一个DNN的时候,我们输入一幅图片,DNN输出一个得分向量,每一个分数对应一个物体分类;得到最高分数的分类意味着这幅图片最有可能属于这个分类。

训练DNN的首要目标就是确定如何设置权重,使得正确分类的得分最高(图片所对应的正确分类在训练数据集中标出),而使其他不正确分类的得分尽可能低。理想的正确分类得分与目前的权重所计算出的得分之间的差距被称为损失函数(loss)。

因此训练DNN的目标即找到一组权重,使得对一个较大规模数据集的loss最小。

图3:图像分类

权重(weight)的优化过程类似爬山的过程,这种方法被称为梯度下降(gradient decent)。损失函数对每个权值的梯度,即损失函数对每个权值求偏导数,被用来更新权值(例:第t到t+1次迭代:,其中α被称为学习率(Learning rate)。梯度值表明权值应该如何变化以减小loss。这个减小loss值的过程是重复迭代进行的。

梯度可以通过反向传播(Back-Propagation)过程很高效地进行计算,loss的影响反向通过网络来计算loss是如何被每个权重影响的。

训练权重有很多种方法。前面提到的是最常见的方法,被称为监督学习,其中所有的训练样本是有标签的。

无监督学习是另一种方法,其中所有训练样本都没有标签,最终目标是在数据中查找结构或聚类。半监督学习结合了两种方法,只有训练数据的一小部分被标记(例如,使用未标记的数据来定义集群边界,并使用少量的标记数据来标记集群)。

最后,强化学习可以用来训练一个DNN作为一个策略网络,对策略网络给出一个输入,它可以做出一个决定,使得下一步的行动得到相应的奖励;训练这个网络的过程是使网络能够做出使奖励(即奖励函数)最大化的决策,并且训练过程必须平衡尝试新行为(Exploration)和使用已知能给予高回报的行为(Exploitation)两种方法。

用于确定权重的另一种常用方法是fine-tune,使用预先训练好的模型的权重用作初始化,然后针对新的数据集(例如,传递学习)或新的约束(例如,降低的精度)调整权重。与从随机初始化开始相比,能够更快的训练,并且有时会有更好的准确性。

什么是深度学习与机器视觉

深度学习框架,尤其是基于人工神经网络的框架可以追溯到1980年福岛邦彦提出的新认知机[2],而人工神经网络的历史更为久远。1989年,燕乐存(Yann LeCun)等人开始将1974年提出的标准反向传播算法[3]应用于深度神经网络,这一网络被用于手写邮政编码识别。尽管算法可以成功执行,但计算代价非常巨大,神经网路的训练时间达到了3天,因而无法投入实际使用[4]。许多因素导致了这一缓慢的训练过程,其中一种是由于尔根·施密德胡伯(Jürgen Schmidhuber)的学生赛普·霍克赖特(Sepp Hochreiter)于1991年提出的梯度消失问题[5][6]。与此同时,神经网络也受到了其他更加简单模型的挑战,支持向量机等模型在20世纪90年代到21世纪初成为更加流行的机器学习算法。

“深度学习”这一概念从2007年前后开始受到关注。当时,杰弗里·辛顿(Geoffrey Hinton)和鲁斯兰·萨拉赫丁诺夫(Ruslan Salakhutdinov)提出了一种在前馈神经网络中进行有效训练的算法。这一算法将网络中的每一层视为无监督的受限玻尔兹曼机,再使用有监督的反向传播算法进行调优[7]。在此之前的1992年,在更为普遍的情形下,施密德胡伯也曾在递归神经网络上提出一种类似的训练方法,并在实验中证明这一训练方法能够有效提高有监督学习的执行速度[8][9].

自深度学习出现以来,它已成为很多领域,尤其是在计算机视觉和语音识别中,成为各种领先系统的一部分。在通用的用于检验的数据集,例如语音识别中的TIMIT和图像识别中的ImageNet, Cifar10上的实验证明,深度学习能够提高识别的精度。

硬件的进步也是深度学习重新获得关注的重要因素。高性能图形处理器的出现极大地提高了数值和矩阵运算的速度,使得机器学习算法的运行时间得到了显著的缩短[10][11]。

基本概念[编辑]

深度学习的基础是机器学习中的分散表示(distributed representation)。分散表示假定观测值是由不同因子相互作用生成。在此基础上,深度学习进一步假定这一相互作用的过程可分为多个层次,代表对观测值的多层抽象。不同的层数和层的规模可用于不同程度的抽象[1]。

深度学习运用了这分层次抽象的思想,更高层次的概念从低层次的概念学习得到。这一分层结构常常使用贪婪算法逐层构建而成,并从中选取有助于机器学习的更有效的特征[1].

不少深度学习算法都以无监督学习的形式出现,因而这些算法能被应用于其他算法无法企及的无标签数据,这一类数据比有标签数据更丰富,也更容易获得。这一点也为深度学习赢得了重要的优势[1]。

人工神经网络下的深度学习[编辑]

一部分最成功的深度学习方法涉及到对人工神经网络的运用。人工神经网络受到了1959年由诺贝尔奖得主大卫·休伯尔(David H. Hubel)和托斯坦·威泽尔(Torsten Wiesel)提出的理论启发。休伯尔和威泽尔发现,在大脑的初级视觉皮层中存在两种细胞:简单细胞和复杂细胞,这两种细胞承担不同层次的视觉感知功能。受此启发,许多神经网络模型也被设计为不同节点之间的分层模型[12]。

福岛邦彦提出的新认知机引入了使用无监督学习训练的卷积神经网络。燕乐存将有监督的反向传播算法应用于这一架构[13]。事实上,从反向传播算法自20世纪70年代提出以来,不少研究者都曾试图将其应用于训练有监督的深度神经网络,但最初的尝试大都失败。赛普·霍克赖特(Sepp Hochreiter)在其博士论文中将失败的原因归结为梯度消失,这一现象同时在深度前馈神经网络和递归神经网络中出现,后者的训练过程类似深度网络。在分层训练的过程中,本应用于修正模型参数的误差随着层数的增加指数递减,这导致了模型训练的效率低下[14][15]。

为了解决这一问题,研究者们提出了一些不同的方法。于尔根·施密德胡伯(Jürgen Schmidhuber)于1992年提出多层级网络,利用无监督学习训练深度神经网络的每一层,再使用反向传播算法进行调优。在这一模型中,神经网络中的每一层都代表观测变量的一种压缩表示,这一表示也被传递到下一层网络[8]。

另一种方法是赛普·霍克赖特和于尔根·施密德胡伯提出的长短期记忆神经网络(long short term memory,LSTM)[16]。2009年,在ICDAR 2009举办的连笔手写识别竞赛中,在没有任何先验知识的情况下,深度多维长短期记忆神经网络取得了其中三场比赛的胜利[17][18]。

斯文·贝克提出了在训练时只依赖梯度符号的神经抽象金字塔模型,用以解决图像重建和人脸定位的问题[19]。

其他方法同样采用了无监督预训练来构建神经网络,用以发现有效的特征,此后再采用有监督的反向传播以区分有标签数据。辛顿等人于2006年提出的深度模型提出了使用多层隐变量学习高层表示的方法。这一方法使用斯摩棱斯基于1986年提出的受限玻尔兹曼机[20]对每一个包含高层特征的层进行建模。模型保证了数据的对数似然下界随着层数的提升而递增。当足够多的层数被学习完毕,这一深层结构成为一个生成模型,可以通过自上而下的采样重构整个数据集[21]。辛顿声称这一模型在高维结构化数据上能够有效低提取特征[22]。

吴恩达和杰夫·迪恩(Jeff Dean)领导的谷歌大脑(英语:Google Brain)团队创建了一个仅通过YouTube视频学习高层概念(例如猫)的神经网络[23] [24]。

其他方法依赖了现代电子计算机的强大计算能力,尤其是GPU。2010年,在于尔根·施密德胡伯位于瑞士人工智能实验室IDSIA的研究组中,丹·奇雷尚(Dan Ciresan)和他的同事展示了利用GPU直接执行反向传播算法而忽视梯度消失问题的存在。这一方法在燕乐存等人给出的手写识别MNIST数据集上战胜了已有的其他方法[10]。

截止2011年,前馈神经网络深度学习中最新的方法是交替使用卷积层(convolutional layers)和最大值池化层(max-pooling layers)并加入单纯的分类层作为顶端。训练过程也无需引入无监督的预训练[25][26]。从2011年起,这一方法的GPU实现[25]多次赢得了各类模式识别竞赛的胜利,包括IJCNN 2011交通标志识别竞赛[27]和其他比赛。

这些深度学习算法也是最先在某些识别任务上达到和人类表现具备同等竞争力的算法[28]。

深度学习结构[编辑]

深度神经网络是一种具备至少一个隐层的神经网络。与浅层神经网络类似,深度神经网络也能够为复杂非线性系统提供建模,但多出的层次为模型提供了更高的抽象层次,因而提高了模型的能力。深度神经网络通常都是前馈神经网络,但也有语言建模等方面的研究将其拓展到递归神经网络[29]。卷积深度神经网络(Covolutional Neuron Networks, CNN)在计算机视觉领域得到了成功的应用[30]。此后,卷积神经网络也作为听觉模型被使用在自动语音识别领域,较以往的方法获得了更优的结果[31]。

深度神经网络[编辑]

深度神经网络(deep neuron networks, DNN)是一种判别模型,可以使用反向传播算法进行训练。权重更新可以使用下式进行随机梯度下降求解:

其中,为学习率,为代价函数。这一函数的选择与学习的类型(例如监督学习、无监督学习、增强学习)以及激活函数相关。例如,为了在一个多分类问题上进行监督学习,通常的选择是使用Softmax函数作为激活函数,而使用交叉熵作为代价函数。Softmax函数定义为,其中代表类别的概率,而和分别代表对单元和的输入。交叉熵定义为,其中代表输出单元的目标概率,代表应用了激活函数后对单元的概率输出[32]。

深度神经网络的问题[编辑]

与其他神经网络模型类似,如果仅仅是简单地训练,深度神经网络可能会存在很多问题。常见的两类问题是过拟合和过长的运算时间。

深度神经网络很容易产生过拟合现象,因为增加的抽象层使得模型能够对训练数据中较为罕见的依赖关系进行建模。对此,权重递减(正规化)或者稀疏(-正规化)等方法可以利用在训练过程中以减小过拟合现象[33]。另一种较晚用于深度神经网络训练的正规化方法是丢弃法("dropout" regularization),即在训练中随机丢弃一部分隐层单元来避免对较为罕见的依赖进行建模[34]。

反向传播算法和梯度下降法由于其实现简单,与其他方法相比能够收敛到更好的局部最优值而成为神经网络训练的通行方法。但是,这些方法的计算代价很高,尤其是在训练深度神经网络时,因为深度神经网络的规模(即层数和每层的节点数)、学习率、初始权重等众多参数都需要考虑。扫描所有参数由于时间代价的原因并不可行,因而小批量训练(mini-batching),即将多个训练样本组合进行训练而不是每次只使用一个样本进行训练,被用于加速模型训练[35]。而最显著地速度提升来自GPU,因为矩阵和向量计算非常适合使用GPU实现。但使用大规模集群进行深度神经网络训练仍然存在困难,因而深度神经网络在训练并行化方面仍有提升的空间。

深度信念网络[编辑]

一个包含完全连接可见层和隐层的受限玻尔兹曼机(RBM)。注意到可见层单元和隐层单元内部彼此不相连。

深度信念网络(deep belief networks,DBN)是一种包含多层隐单元的概率生成模型,可被视为多层简单学习模型组合而成的复合模型[36]。

深度信念网络可以作为深度神经网络的预训练部分,并为网络提供初始权重,再使用反向传播或者其他判定算法作为调优的手段。这在训练数据较为缺乏时很有价值,因为不恰当的初始化权重会显著影响最终模型的性能,而预训练获得的权重在权值空间中比随机权重更接近最优的权重。这不仅提升了模型的性能,也加快了调优阶段的收敛速度[37]。

深度信念网络中的每一层都是典型的受限玻尔兹曼机(restricted Boltzmann machine,RBM),可以使用高效的无监督逐层训练方法进行训练。受限玻尔兹曼机是一种无向的基于能量的生成模型,包含一个输入层和一个隐层。图中对的边仅在输入层和隐层之间存在,而输入层节点内部和隐层节点内部则不存在边。单层RBM的训练方法最初由杰弗里·辛顿在训练“专家乘积”中提出,被称为对比分歧(contrast divergence, CD)。对比分歧提供了一种对最大似然的近似,被理想地用于学习受限玻尔兹曼机的权重[35]。当单层RBM被训练完毕后,另一层RBM可被堆叠在已经训练完成的RBM上,形成一个多层模型。每次堆叠时,原有的多层网络输入层被初始化为训练样本,权重为先前训练得到的权重,该网络的输出作为新增RBM的输入,新的RBM重复先前的单层训练过程,整个过程可以持续进行,直到达到某个期望中的终止条件[38]。

尽管对比分歧对最大似然的近似十分粗略(对比分歧并不在任何函数的梯度方向上),但经验结果证实该方法是训练深度结构的一种有效的方法[35]。

卷积神经网络[编辑]

主条目:卷积神经网络

卷积神经网络(convolutional neuron networks,CNN)由一个或多个卷积层和顶端的全连通层(对应经典的神经网络)组成,同时也包括关联权重和池化层(pooling layer)。这一结构使得卷积神经网络能够利用输入数据的二维结构。与其他深度学习结构相比,卷积神经网络在图像和语音识别方面能够给出更优的结果。这一模型也可以使用反向传播算法进行训练。相比较其他深度、前馈神经网络,卷积神经网络需要估计的参数更少,使之成为一种颇具吸引力的深度学习结构[39]。

卷积深度信念网络[编辑]

卷积深度信念网络(convolutional deep belief networks,CDBN)是深度学习领域较新的分支。在结构上,卷积深度信念网络与卷积神经网络在结构上相似。因此,与卷积神经网络类似,卷积深度信念网络也具备利用图像二维结构的能力,与此同时,卷积深度信念网络也拥有深度信念网络的预训练优势。卷积深度信念网络提供了一种能被用于信号和图像处理任务的通用结构,也能够使用类似深度信念网络的训练方法进行训练[40]。

结果[编辑]

语音识别[编辑]

下表中的结果展示了深度学习在通行的TIMIT数据集上的结果。TIMIT包含630人的语音数据,这些人持八种常见的美式英语口音,每人阅读10句话。这一数据在深度学习发展之初常被用于验证深度学习结构[41]。TIMIT数据集较小,使得研究者可以在其上实验不同的模型配置。

方法

声音误差率 (PER, %)

随机初始化RNN 26.1

贝叶斯三音子GMM-HMM 25.6

单音子重复初始化DNN 23.4

单音子DBN-DNN 22.4

带BMMI训练的三音子GMM-HMM 21.7

共享池上的单音子DBN-DNN 20.7

卷积DNN 20.0

图像分类[编辑]

图像分类领域中一个公认的评判数据集是MNIST数据集。MNIST由手写阿拉伯数字组成,包含60,000个训练样本和10,000个测试样本。与TIMIT类似,它的数据规模较小,因而能够很容易地在不同的模型配置下测试。Yann LeCun的网站给出了多种方法得到的实验结果[42]。截至2012年,最好的判别结果由Ciresan等人在当年给出,这一结果的错误率达到了0.23%[43]。

深度学习与神经科学[编辑]

计算机领域中的深度学习与20世纪90年代由认知神经科学研究者提出的大脑发育理论(尤其是皮层发育理论)密切相关[44]。对这一理论最容易理解的是杰弗里·艾尔曼(Jeffrey Elman)于1996年出版的专著《对天赋的再思考》(Rethinking Innateness)[45](参见斯拉格和约翰逊[46]以及奎兹和赛杰诺维斯基[47]的表述)。由于这些理论给出了实际的神经计算模型,因而它们是纯计算驱动的深度学习模型的技术先驱。这些理论指出,大脑中的神经元组成了不同的层次,这些层次相互连接,形成一个过滤体系。在这些层次中,每层神经元在其所处的环境中获取一部分信息,经过处理后向更深的层级传递。这与后来的单纯与计算相关的深度神经网络模型相似。这一过程的结果是一个与环境相协调的自组织的堆栈式的转换器。正如1995年在《纽约时报》上刊登的那样,“……婴儿的大脑似乎受到所谓‘营养因素’的影响而进行着自我组织……大脑的不同区域依次相连,不同层次的脑组织依照一定的先后顺序发育成熟,直至整个大脑发育成熟。”[48]

深度结构在人类认知演化和发展中的重要性也在认知神经学家的关注之中。发育时间的改变被认为是人类和其他灵长类动物之间智力发展差异的一个方面[49]。在灵长类中,人类的大脑在出生后的很长时间都具备可塑性,但其他灵长类动物的大脑则在出生时就几乎完全定型。因而,人类在大脑发育最具可塑性的阶段能够接触到更加复杂的外部场景,这可能帮助人类的大脑进行调节以适应快速变化的环境,而不是像其他动物的大脑那样更多地受到遗传结构的限制。这样的发育时间差异也在大脑皮层的发育时间和大脑早期自组织中从刺激环境中获取信息的改变得到体现。当然,伴随着这一可塑性的是更长的儿童期,在此期间人需要依靠抚养者和社会群体的支持和训练。因而这一理论也揭示了人类演化中文化和意识共同进化的现象[50]。

公众视野中的深度学习[编辑]

深度学习常常被看作是通向真正人工智能的重要一步[51],因而许多机构对深度学习的实际应用抱有浓厚的兴趣。2013年12月,Facebook宣布雇用燕乐存为其新建的人工智能实验室的主管,这一实验室将在加州、伦敦和纽约设立分支机构,帮助Facebook研究利用深度学习算法进行类似自动标记照片中用户姓名这样的任务[52]。

2013年3月,杰弗里·辛顿和他的两位研究生亚历克斯·克里泽夫斯基和伊利娅·苏特斯科娃被谷歌公司雇用,以提升现有的机器学习产品并协助处理谷歌日益增长的数据。谷歌同时并购了辛顿创办的公司DNNresearch[53]。

批评[编辑]

对深度学习的主要批评是许多方法缺乏理论支撑。大多数深度结构仅仅是梯度下降的某些变式。尽管梯度下降已经被充分地研究,但理论涉及的其他算法,例如对比分歧算法,并没有获得充分的研究,其收敛性等问题仍不明确。深度学习方法常常被视为黑盒,大多数的结论确认都由经验而非理论来确定。

也有学者认为,深度学习应当被视为通向真正人工智能的一条途径,而不是一种包罗万象的解决方案。尽管深度学习的能力很强,但和真正的人工智能相比,仍然缺乏诸多重要的能力。理论心理学家加里·马库斯(Gary Marcus)指出:

就现实而言,深度学习只是建造智能机器这一更大挑战中的一部分。这些技术缺乏表达因果关系的手段……缺乏进行逻辑推理的方法,而且远没有具备集成抽象知识,例如物品属性、代表和典型用途的信息。最为强大的人工智能系统,例如IBM的人工智能系统沃森,仅仅把深度学习作为一个包含从贝叶斯推理和演绎推理等技术的复杂技术集合中的组成部分[54]。

(责任编辑:IT教学网)

更多

相关网络赚钱文章

推荐网络赚钱文章