导航:首页 > 网络营销 > 选择神经网络深度需要考虑哪些

选择神经网络深度需要考虑哪些

发布时间:2022-09-22 14:50:53

如何训练深度神经网络

deeplearinig就是神经网络的一类,就是解决的训练问题的深层神经网络,所以你这问题“深度学习会代替神经网络‘就不对,BP么,BP有自己的优势,也是很成熟的算法,做手写识别等等效果已经商用化了,不会被轻易替代。deeplearning远比BP要复杂,用来解决的问题也不是一个层面,所以也没有替代的必要。Deeplearning所涉及的问题大多数BP都没法解决的。

度学习的概念源于人工神经网络的研究。含多隐层的多层感知器就是一种深度学习结构,通过组合低层特征形成更加抽象的高层表示属性类别或特征,以发现数据的分布式特征表示。深度学习的概念由Hinton等人于2006年提出,基于深信度网(DBN)提出非监督贪心逐层训练算法,为解决深层结构相关的优化难题带来希望,随后提出多层自动编码器深层结构。深度学习是机器学习研究中的一个新的领域,其动机在于建立、模拟人脑进行分析学习的神经网络,它模仿人脑的机制来解释数据,例如图像,声音和文本。
系统地论述了神经网络的基本原理、方法、技术和应用,主要内容包括:神经信息处理的基本原理、感知器、反向传播网络、自组织网络、递归网络、径向基函数网络、核函数方法、神经网络集成、模糊神经网络、概率神经网络、脉冲耦合神经网络、神经场理论、神经元集群以及神经计算机。每章末附有习题,书末附有详细的参考文献。神经网络是通过对人脑或生物神经网络的抽象和建模,研究非程序的、适应性的、大脑风格的信息处理的本质和能力。它以脑科学和认知神经科学的研究成果为基础,拓展智能信息处理的方法,为解决复杂问题和智能控制提供有效的途径,是智能科学和计算智能的重要部分。

Ⅱ 神经网络优缺点,

优点:

(1)具有自学习功能。例如实现图像识别时,只在先把许多不同的图像样板和对应的应识别的结果输入人工神经网络,网络就会通过自学习功能,慢慢学会识别类似的图像。

自学习功能对于预测有特别重要的意义。预期未来的人工神经网络计算机将为人类提供经济预测、市场预测、效益预测,其应用前途是很远大的。

(2)具有联想存储功能。用人工神经网络的反馈网络就可以实现这种联想。

(3)具有高速寻找优化解的能力。寻找一个复杂问题的优化解,往往需要很大的计算量,利用一个针对某问题而设计的反馈型人工神经网络,发挥计算机的高速运算能力,可能很快找到优化解。

缺点:

(1)最严重的问题是没能力来解释自己的推理过程和推理依据。

(2)不能向用户提出必要的询问,而且当数据不充分的时候,神经网络就无法进行工作。

(3)把一切问题的特征都变为数字,把一切推理都变为数值计算,其结果势必是丢失信息。

(4)理论和学习算法还有待于进一步完善和提高。

(2)选择神经网络深度需要考虑哪些扩展阅读:

神经网络发展趋势

人工神经网络特有的非线性适应性信息处理能力,克服了传统人工智能方法对于直觉,如模式、语音识别、非结构化信息处理方面的缺陷,使之在神经专家系统、模式识别、智能控制、组合优化、预测等领域得到成功应用。

人工神经网络与其它传统方法相结合,将推动人工智能和信息处理技术不断发展。近年来,人工神经网络正向模拟人类认知的道路上更加深入发展,与模糊系统、遗传算法、进化机制等结合,形成计算智能,成为人工智能的一个重要方向,将在实际应用中得到发展。

将信息几何应用于人工神经网络的研究,为人工神经网络的理论研究开辟了新的途径。神经计算机的研究发展很快,已有产品进入市场。光电结合的神经计算机为人工神经网络的发展提供了良好条件。

神经网络在很多领域已得到了很好的应用,但其需要研究的方面还很多。其中,具有分布存储、并行处理、自学习、自组织以及非线性映射等优点的神经网络与其他技术的结合以及由此而来的混合方法和混合系统,已经成为一大研究热点。

由于其他方法也有它们各自的优点,所以将神经网络与其他方法相结合,取长补短,继而可以获得更好的应用效果。目前这方面工作有神经网络与模糊逻辑、专家系统、遗传算法、小波分析、混沌、粗集理论、分形理论、证据理论和灰色系统等的融合。

参考资料:网络-人工神经网络

Ⅲ 神经网络为什么要深

因为深度神经网络的参数特别多(可以达到上亿,目前已经可以支持到万亿参数)。参数多,表示模型的搜索空间就越大,必须有足够的数据才能更好地刻画出模型在空间上的分布

Ⅳ 深度学习中的神经网络编写需要设计到哪些算法

涉及到的算法有很多,比如反向传播算法、前向传播、卷积算法、矩阵远点的算法、梯度优化的算法、评估算法等等。单纯用算法来描述过于笼统,一般都是直接用对应的数学原理和公式去描述神经网络的编写过程的。首先,定义网络结构,诸如神经元个数、隐层数目、权重、偏置等,其次根据梯度下降进行前向传播,再次反向传播更新梯度,最后是循环往复直到网络最优。

Ⅳ 分析影响一个神经网络模型是否达到要求的因素有哪些

我模型的是否达到要求的因素应该就是他的思维状态和他现在的各种情况。

Ⅵ 神经网络浅谈

人工智能技术是当前炙手可热的话题,而基于神经网络的深度学习技术更是热点中的热点。去年谷歌的Alpha Go 以4:1大比分的优势战胜韩国的李世石九段,展现了深度学习的强大威力,后续强化版的Alpha Master和无师自通的Alpha Zero更是在表现上完全碾压前者。不论你怎么看,以深度学习为代表的人工智能技术正在塑造未来。

下图为英伟达(NVIDIA)公司近年来的股价情况, 该公司的主要产品是“图形处理器”(GPU),而GPU被证明能大大加快神经网络的训练速度,是深度学习必不可少的计算组件。英伟达公司近年来股价的飞涨足以证明当前深度学习的井喷之势。

好,话不多说,下面简要介绍神经网络的基本原理、发展脉络和优势。

神经网络是一种人类由于受到生物神经细胞结构启发而研究出的一种算法体系,是机器学习算法大类中的一种。首先让我们来看人脑神经元细胞:

一个神经元通常具有多个树突 ,主要用来接受传入信息,而轴突只有一条,轴突尾端有许多轴突末梢,可以给其他多个神经元传递信息。轴突末梢跟其他神经元的树突产生连接,从而传递信号

下图是一个经典的神经网络(Artificial Neural Network,ANN):

乍一看跟传统互联网的拓扑图有点类似,这也是称其为网络的原因,不同的是节点之间通过有向线段连接,并且节点被分成三层。我们称图中的圆圈为神经元,左边三个神经元组成的一列为输入层,中间神经元列为隐藏层,右边神经元列为输出层,神经元之间的箭头为权重。

神经元是计算单元,相当于神经元细胞的细胞核,利用输入的数据进行计算,然后输出,一般由一个线性计算部分和一个非线性计算部分组成;输入层和输出层实现数据的输入输出,相当于细胞的树突和轴突末梢;隐藏层指既不是输入也不是输出的神经元层,一个神经网络可以有很多个隐藏层。

神经网络的关键不是圆圈代表的神经元,而是每条连接线对应的权重。每条连接线对应一个权重,也就是一个参数。权重具体的值需要通过神经网络的训练才能获得。我们实际生活中的学习体现在大脑中就是一系列神经网络回路的建立与强化,多次重复的学习能让回路变得更加粗壮,使得信号的传递速度加快,最后对外表现为“深刻”的记忆。人工神经网络的训练也借鉴于此,如果某种映射关系出现很多次,那么在训练过程中就相应调高其权重。

1943年,心理学家McCulloch和数学家Pitts参考了生物神经元的结构,发表了抽象的神经元模型MP:

符号化后的模型如下:

Sum函数计算各权重与输入乘积的线性组合,是神经元中的线性计算部分,而sgn是取符号函数,当输入大于0时,输出1,反之输出0,是神经元中的非线性部分。向量化后的公式为z=sgn(w^T a)(w^T=(w_1,w_2,w_3),a=〖(a_1,a_2,a_3)〗^T)。

但是,MP模型中,权重的值都是预先设置的,因此不能学习。该模型虽然简单,并且作用有限,但已经建立了神经网络大厦的地基

1958年,计算科学家Rosenblatt提出了由两层神经元组成(一个输入层,一个输出层)的神经网络。他给它起了一个名字–“感知器”(Perceptron)

感知器是当时首个可以学习的人工神经网络。Rosenblatt现场演示了其学习识别简单图像的过程,在当时引起了轰动,掀起了第一波神经网络的研究热潮。

但感知器只能做简单的线性分类任务。1969年,人工智能领域的巨擘Minsky指出这点,并同时指出感知器对XOR(异或,即两个输入相同时输出0,不同时输出1)这样的简单逻辑都无法解决。所以,明斯基认为神经网络是没有价值的。

随后,神经网络的研究进入低谷,又称 AI Winter 。

Minsky说过单层神经网络无法解决异或问题,但是当增加一个计算层以后,两层神经网络不仅可以解决异或问题,而且具有非常好的非线性分类效果。

下图为两层神经网络(输入层一般不算在内):

上图中,输出层的输入是上一层的输出。

向量化后的公式为:

注意:

每个神经元节点默认都有偏置变量b,加上偏置变量后的计算公式为:

同时,两层神经网络不再使用sgn函数作为激励函数,而采用平滑的sigmoid函数:

σ(z)=1/(1+e^(-z) )

其图像如下:

理论证明: 两层及以上的神经网络可以无限逼近真实的对应函数,从而模拟数据之间的真实关系 ,这是神经网络强大预测能力的根本。但两层神经网络的计算量太大,当时的计算机的计算能力完全跟不上,直到1986年,Rumelhar和Hinton等人提出了反向传播(Backpropagation,BP)算法,解决了两层神经网络所需要的复杂计算量问题,带动了业界使用两层神经网络研究的热潮。

但好景不长,算法的改进仅使得神经网络风光了几年,然而计算能力不够,局部最优解,调参等一系列问题一直困扰研究人员。90年代中期,由Vapnik等人发明的SVM(Support Vector Machines,支持向量机)算法诞生,很快就在若干个方面体现出了对比神经网络的优势:无需调参;高效;全局最优解。

由于以上原因,SVM迅速打败了神经网络算法成为主流。神经网络的研究再一次进入低谷, AI Winter again 。

多层神经网络一般指两层或两层以上的神经网络(不包括输入层),更多情况下指两层以上的神经网络。

2006年,Hinton提出使用 预训练 ”(pre-training)和“微调”(fine-tuning)技术能优化神经网络训练,大幅度减少训练多层神经网络的时间

并且,他给多层神经网络相关的学习方法赋予了一个新名词–“ 深度学习 ”,以此为起点,“深度学习”纪元开始了:)

“深度学习”一方面指神经网络的比较“深”,也就是层数较多;另一方面也可以指神经网络能学到很多深层次的东西。研究发现,在权重参数不变的情况下,增加神经网络的层数,能增强神经网络的表达能力。

但深度学习究竟有多强大呢?没人知道。2012年,Hinton与他的学生在ImageNet竞赛中,用多层的卷积神经网络成功地对包含一千类别的一百万张图片进行了训练,取得了分类错误率15%的好成绩,这个成绩比第二名高了近11个百分点,充分证明了多层神经网络识别效果的优越性。

同时,科研人员发现GPU的大规模并行矩阵运算模式完美地契合神经网络训练的需要,在同等情况下,GPU的速度要比CPU快50-200倍,这使得神经网络的训练时间大大减少,最终再一次掀起了神经网络研究的热潮,并且一直持续到现在。

2016年基于深度学习的Alpha Go在围棋比赛中以4:1的大比分优势战胜了李世石,深度学习的威力再一次震惊了世界。

神经网络的发展历史曲折荡漾,既有被捧上神坛的高潮,也有无人问津的低谷,中间经历了数次大起大落,我们姑且称之为“三起三落”吧,其背后则是算法的改进和计算能力的持续发展。

下图展示了神经网络自发明以来的发展情况及一些重大时间节点。

当然,对于神经网络我们也要保持清醒的头脑。由上图,每次神经网络研究的兴盛期持续10年左右,从最近2012年算起,或许10年后的2022年,神经网络的发展将再次遇到瓶颈。

神经网络作为机器学习的一种,其模型训练的目的,就是使得参数尽可能的与真实的模型逼近。理论证明,两层及以上的神经网络可以无限逼近真实的映射函数。因此,给定足够的训练数据和训练时间,总能通过神经网络找到无限逼近真实关系的模型。

具体做法:首先给所有权重参数赋上随机值,然后使用这些随机生成的参数值,来预测训练数据中的样本。假设样本的预测目标为yp ,真实目标为y,定义值loss,计算公式如下:

loss = (yp -y) ^2

这个值称之为 损失 (loss),我们的目标就是使对所有训练数据的损失和尽可能的小,这就转化为求loss函数极值的问题。

一个常用方法是高等数学中的求导,但由于参数不止一个,求导后计算导数等于0的运算量很大,所以常用梯度下降算法来解决这样的优化问题。梯度是一个向量,由函数的各自变量的偏导数组成。

比如对二元函数 f =(x,y),则梯度∇f=(∂f/∂x,∂f/∂y)。梯度的方向是函数值上升最快的方向。梯度下降算法每次计算参数在当前的梯度,然后让参数向着梯度的反方向前进一段距离,不断重复,直到梯度接近零时截止。一般这个时候,所有的参数恰好达到使损失函数达到一个最低值的状态。下图为梯度下降的大致运行过程:

在神经网络模型中,由于结构复杂,每次计算梯度的代价很大。因此还需要使用 反向传播 (Back Propagation)算法。反向传播算法利用了神经网络的结构进行计算,不一次计算所有参数的梯度,而是从后往前。首先计算输出层的梯度,然后是第二个参数矩阵的梯度,接着是中间层的梯度,再然后是第一个参数矩阵的梯度,最后是输入层的梯度。计算结束以后,所要的两个参数矩阵的梯度就都有了。当然,梯度下降只是其中一个优化算法,其他的还有牛顿法、RMSprop等。

确定loss函数的最小值后,我们就确定了整个神经网络的权重,完成神经网络的训练。

在神经网络中一样的参数数量,可以用更深的层次去表达。

由上图,不算上偏置参数的话,共有三层神经元,33个权重参数。

由下图,保持权重参数不变,但增加了两层神经元。

在多层神经网络中,每一层的输入是前一层的输出,相当于在前一层的基础上学习,更深层次的神经网络意味着更深入的表示特征,以及更强的函数模拟能力。更深入的表示特征可以这样理解,随着网络的层数增加,每一层对于前一层次的抽象表示更深入。

如上图,第一个隐藏层学习到“边缘”的特征,第二个隐藏层学习到“边缘”组成的“形状”的特征,第三个隐藏层学习到由“形状”组成的“图案”的特征,最后的隐藏层学习到由“图案”组成的“目标”的特征。通过抽取更抽象的特征来对事物进行区分,从而获得更好的区分与分类能力。

前面提到, 明斯基认为Rosenblatt提出的感知器模型不能处理最简单的“异或”(XOR)非线性问题,所以神经网络的研究没有前途,但当增加一层神经元后,异或问题得到了很好地解决,原因何在?原来从输入层到隐藏层,数据发生了空间变换,坐标系发生了改变,因为矩阵运算本质上就是一种空间变换。

如下图,红色和蓝色的分界线是最终的分类结果,可以看到,该分界线是一条非常平滑的曲线。

但是,改变坐标系后,分界线却表现为直线,如下图:

同时,非线性激励函数的引入使得神经网络对非线性问题的表达能力大大加强。

对于传统的朴素贝叶斯、决策树、支持向量机SVM等分类器,提取特征是一个非常重要的前置工作。在正式训练之前,需要花费大量的时间在数据的清洗上,这样分类器才能清楚地知道数据的维度,要不然基于概率和空间距离的线性分类器是没办法进行工作的。然而在神经网络中,由于巨量的线性分类器的堆叠(并行和串行)以及卷积神经网络的使用,它对噪声的忍耐能力、对多通道数据上投射出来的不同特征偏向的敏感程度会自动重视或忽略,这样我们在处理的时候,就不需要使用太多的技巧用于数据的清洗了。有趣的是,业内大佬常感叹,“你可能知道SVM等机器学习的所有细节,但是效果并不好,而神经网络更像是一个黑盒,很难知道它究竟在做什么,但工作效果却很好”。

人类对机器学习的环节干预越少,就意味着距离人工智能的方向越近。神经网络的这个特性非常有吸引力。

1) 谷歌的TensorFlow开发了一个非常有意思的神经网络 入门教程 ,用户可以非常方便地在网页上更改神经网络的参数,并且能看到实时的学习效率和结果,非常适合初学者掌握神经网络的基本概念及神经网络的原理。网页截图如下:

2) 深度学习领域大佬吴恩达不久前发布的《 神经网络和深度学习 》MOOC,现在可以在网易云课堂上免费观看了,并且还有中文字幕。

3) 《神经网络于深度学习》(Michael Nielsen着)、《白话深度学习与TensorFlow》也是不错的入门书籍。

Ⅶ 深度前馈网络

看过西瓜书和李航的《统计学习方法》,对机器学习的基本算法算是有了初步的理解。机器学习的算法和思想固然重要,在实际中也有很多应用场景,但在超大数据集的表现上,深度学习才是当下效果最好的工具。可惜的是,花书这样一本经典着作的中文版翻译和机翻差不多水平,因此看的时候只能放慢速度。闲言少叙,下面是第六章的学习记录。

深度前馈网络(deep feedforward network) ,也叫作前馈神经网络(feedforward neural network)或者多层感知机(multilayer perceptron, MLP),是典型的深度学习模型。 前馈网络的目标是近似某个函数 。例如,对于分类器, 将输入 映射到一个类别 。前馈网络定义了一个映射 ,并且学习参数 的值使它能够得到最佳的函数近似。

下面我们把“深度前馈网络”这个词拆开来看:

那么深度前馈网络的各层之间有什么区别呢?从功能来讲,训练样本直接指明了 输出层 在每一点x上必须做什么,它必须产生一个接近 y 的值。但训练数据并没有给出其它层中的所需的输出,所以这些层被称为 隐藏层(hidden layer)

一种理解前馈网络的方式是从线性模型开始,并考虑如何克服它的局限性。如果各层的函数 都是线性函数,那么复合后的函数依然是线性的,此时我们的网络模型等价于线性模型。为了提高模型的表示能力,我们需要将各层的 设置为非线性的,从而得到一个非线性映射 。我们可以认为 提供了一组描述 的特征,或者认为它提供了 的一个新的表示。

设计和训练神经网络与使用梯度下降训练其他任何机器学习模型并没有太大不同。神经网络和线性模型等算法的最大区别,在于神经网络的非线性导致大多数我们感兴趣的代价函数都变得 非凸 。这意味着神经网络的训练通常使用迭代的、基于梯度的优化, 仅仅使得代价函数达到一个非常小的值 ;而不是像用于训练线性回归模型的线性方程求解器或者用于训练逻辑回归或 SVM 的凸优化算法那样保证全局收敛。

用于非凸损失函数的随机梯度下降没有这种收敛性保证,并且 对参数的初始值很敏感。对于前馈神经网络,将所有的权重值初始化为小随机数是很重要的。偏置可以初始化为零或者小的正值。

大多数现代的神经网络使用最大似然来训练。这意味着代价函数就是负的对数似然,它与训练数据和模型分布间的 交叉熵 等价。这个代价函数表示为

使用最大似然来导出代价函数的方法的一个优势是,它减轻了为每个模型设计代价函数的负担。明确一个模型 则自动地确定了一个代价函数 。

用于实现最大似然估计的交叉熵代价函数有一个不同寻常的特性,那就是当它被应用于实践中经常遇到的模型时,它 通常没有最小值。 如果模型可以控制输出分布的密度(例如,通过学习高斯输出分布的方差参数),那么它可能对正确的训练集输出赋予极其高的密度,这将导致交叉熵趋向负无穷。 正则化技术提供了一些不同的方法来修正学习问题,使得模型不会通过这种方式来获得无限制的收益。

一种简单的输出单元是基于仿射变换的输出单元,仿射变换不具有非线性。这些单元往往被直接称为 线性单元 。给定特征 ,线性输出层产生一个向量 ,线性输出层经常被用来 产生条件高斯分布的均值

最大化其对数似然此时等价于最小化均方误差。

许多任务需要预测二值型变量 的值。具有两个类的分类问题可以归结为这种形式。此时最大似然的方法是定义 在 条件下的 Bernoulli 分布。为保证模型给出了错误答案时,总能有一个较大的梯度。可以使用 sigmoid输出单元 结合最大似然来实现。sigmoid 输出单元定义为:

这种在对数空间里预测概率的方法可以很自然地使用最大似然学习。因为用于最大似然的代价函数是 ,代价函数中的 抵消了 中的 。如果没有这个效果,sigmoid 的饱和性会阻止基于梯度的学习做出好的改进。因此, 最大似然几乎总是训练 输出单元的优选方法。

当我们想要表示一个具有 n 个可能取值的离散型随机变量的分布时,我们可以使用 函数。它可以看作是 函数的扩展。

函数最常用作分类器的输出,来表示 个不同类上的概率分布。比较少见的是, 函数可以在模型内部使用,例如如果我们想要在某个内部变量的 个不同选项中进行选择。 函数的形式为:

和 一样,当使用最大化对数似然训练 来输出目标值 时,使用指数函数工作地非常好。

隐藏单元的设计是一个非常活跃的研究领域,并且还没有许多明确的指导性理论原则。

整流线性单元(Rectified Linear Unit, ReLU)是隐藏单元极好的默认选择。许多其他类型的隐藏单元也是可用的。决定何时使用哪种类型的隐藏单元是困难的事(尽管整流线性单元通常是一个可接受的选择)。我们这里描述对于每种隐藏单元的一些基本直觉。这些直觉可以用来建议我们何时来尝试一些单元。 通常不可能预先预测出哪种隐藏单元工作得最好。设计过程充满了试验和错误,先直觉认为某种隐藏单元可能表现良好,然后用它组成神经网络进行训练,最后用验证集来评估它的性能。

大多数的隐藏单元都接受输入向量 x,计算仿射变换 ,然后使用一个逐元素的非线性函数 。大多数隐藏单元的区别仅仅在于激活函数 的形式。

整流线性单元使用激活函数:

整流线性单元通常作用于仿射变换之上:

当初始化仿射变换的参数时,可以将 b 的所有元素设置成一个小的正值,例如 0.1。这使得整流线性单元很可能初始时就对训练集中的大多数输入呈现激活状态,并且允许导数通过。

整流线性单元的一个缺陷是它们不能通过基于梯度的方法学习那些使它们激活为零的样本。整流线性单元的各种扩展保证了它们能在各个位置都接收到梯度。

整流线性单元的三个扩展基于当 时使用一个非零的斜率 :

绝对值整流(absolute value rectification) 固定 来得到: ,它用于图像中的对象识别 (Jarrett et al., 2009a); 渗漏整流线性单元(Leaky ReLU) (Maas et al., 2013) 将 固定成一个类似 0.01 的小值; 参数化整流线性单元(parametric ReLU) 将 作为学习的参数 (He et al., 2015)。

maxout 单元(maxout unit) (Goodfellow et al., 2013a) 进一步扩展了整流线性单元。maxout单元将 划分为每组有 个值的组,而不是使用作用于每个元素的函数 。每个maxout单元则输出每组中的最大元素:

这里 是组 的输入索引集 。因为激活函数中有了max操作,所以整个maxout网络也是一种非线性的变换。

maxout的拟合能力是非常强的,它可以拟合任意的的凸函数。最直观的解释就是任意的凸函数都可以由分段线性函数以任意精度拟合,而maxout又是取k个隐隐含层节点的最大值,这些”隐隐含层"节点也是线性的,所以在不同的取值范围下,最大值也可以看做是分段线性的(分段的个数与k值有关)。

整流线性单元和它们的这些扩展都是基于一个原则,那就是如果它们的行为更接近线性,那么模型更容易优化。

在引入整流线性单元之前,大多数神经网络使用 logistic sigmoid 激活函数:

或者是双曲正切激活函数:

这些激活函数紧密相关,因为:

我们已经看过 sigmoid 单元作为输出单元用来预测二值型变量取值为 1 的概率。与分段线性单元不同,sigmoid 单元在其大部分定义域内都饱和——当 z 取绝对值很大的正值时,它们饱和到一个高值,当 z 取绝对值很大的负值时,它们饱和到一个低值,并且仅仅当 z 接近 0 时它们才对输入强烈敏感。sigmoid 单元的广泛饱和性会使得基于梯度的学习变得非常困难。因为这个原因,现在不鼓励将它们用作前馈网络中的隐藏单元。当使用一个合适的代价函数来抵消 sigmoid 的饱和性时,它们作为输出单元可以与基于梯度的学习相兼容。

当必须要使用 sigmoid 激活函数时,双曲正切激活函数通常要比 logistic sigmoid 函数表现更好。在 而 的意义上,它更像是单位函数。因为 tanh 在 0 附近与单位函数类似。

架构(architecture) 一词是指网络的整体结构: 它应该具有多少单元,以及这些单元应该如何连接。

在链式架构中,主要的架构考虑是选择网络的深度和每一层的宽度。我将会看到,即使只有一个隐藏层的网络也足够适应训练集。 更深层的网络通常能够对每一层使用更少的单元数和更少的参数,并且经常容易泛化到测试集,但是通常也更难以优化。 对于一个具体的任务,理想的网络架构必须通过实验,观测在验证集上的误差来找到。

万能近似定理(universal approximation theorem)

一个前馈神经网络如果具有线性输出层和至少一层具有任何一种 ‘‘挤压’’ 性质的激活函数(例如logistic sigmoid激活函数)的隐藏层,只要给予网络足够数量的隐藏单元,它可以 以任意的精度来近似任何从一个有限维空间到另一个有限维空间的 Borel 可测函数 。前馈网络的导数也可以任意好地来近似函数的导数 (Hornik et al., 1990)。

万能近似定理意味着无论我们试图学习什么函数,我们知道一个大的MLP一定能够表示这个函数。

然而,我们不能保证训练算法能够学得这个函数。即使 MLP能够表示该函数,学习也可能因两个不同的原因而失败。 首先,用于训练的优化算法可能找不到用于期望函数的参数值。其次,训练算法可能由于过拟合而选择了错误的函数。

总之,具有单层的前馈网络足以表示任何函数,但是网络层可能大得不可实现,并且可能无法正确地学习和泛化。在很多情况下,使用更深的模型能够减少表示期望函数所需的单元的数量,并且可以减少泛化误差。

存在一些函数族能够在网络的深度大于某个值d时被高效地近似,而当深度被限制到小于或等于d时需要一个远远大于之前的模型。在很多情况下,浅层模型所需的隐藏单元的数量是n的指数级。

Montufar et al. (2014) 的主要定理指出, 具有 个输入深度为 每个隐藏层具有 个单元的深度整流网络可以描述的线性区域的数量是

根据经验,更深的模型似乎确实在广泛的任务中泛化得更好。

目前为止,我们都将神经网络描述成层的简单链式结构,主要的考虑因素是网络的深度和每层的宽度。在实践中,神经网络显示出相当的多样性。

一般的,层不需要连接在链中,尽管这是最常见的做法。许多架构构建了一个主链,但随后又添加了额外的架构特性,例如从层 i 到层 i + 2 或者更高层的 跳跃连接 。这些跳跃连接使得梯度更容易从输出层流向更接近输入的层。

架构设计考虑的另外一个关键点是如何将层与层之间连接起来。默认的神经网络层采用矩阵 W 描述的线性变换,每个输入单元连接到每个输出单元。许多专用网络具有较少的连接,使得输入层中的每个单元仅连接到输出层单元的一个小子集。这些用于 减少连接数量 的策略减少了参数的数量以及用于评估网络的计算量,但通常高度依赖于问题。

当我们使用前馈神经网络接收输入 并产生输出 时,信息通过网络向前流动。输入 提供初始信息,然后传播到每一层的隐藏单元,最终产生输出 。这称之为 前向传播(forward propagation) 。在训练过程中,前向传播可以持续向前直到它产生一个标量代价函数 。 反向传播(back propagation) 算法 (Rumelhart et al., 1986c),经常简称为backprop,允许来自代价函数的信息通过网络向后流动,以便计算梯度。

将计算形式化为图形的方法有很多。这里,我们使用图中的每一个节点来表示一个变量。变量可以是标量、向量、矩阵、张量、或者甚至是另一类型的变量。为了形式化我们的图形,我们还需引入操作(operation)这一概念。操作是指一个或多个变量的简单函数。我们的图形语言伴随着一组被允许的操作。我们可以通过将多个操作复合在一起来描述更为复杂的函数。

如果变量 y 是变量 x 通过一个操作计算得到的,那么我们画一条从 x 到 y 的有向边。我们有时用操作的名称来注释输出的节点,当上下文很明确时,有时也会省略这个标注。计算图的实例如下:

使用符号到符号的方法计算导数的示例如下。在这种方法中,反向传播算法不需要访问任何实际的特定数值。相反,它将节点添加到计算图中来描述如何计算这些导数。通用图形求值引擎可以在随后计算任何特定数值的导数。 本例从表示 的图开始,运行反向传播算法,指导它构造表达式 对应的图。

这部分花书上讲了很多内容……我看得有些失去耐心……可能是讲得太细致了吧……我对反向传播算法的认识很简单,就是一个链式法则,一层一层计算梯度然后向后传播。这里根据之前上课时候的课件内容做下简单回顾:

总之反向传播算法的要点就是 以恰当的顺序计算梯度,从而充分利用链式法则来提高计算效率 。我个人认为理解BP的最佳方式就是自己画个图手推一遍。

Ⅷ 如何更好的理解分析深度卷积神经网络

作者:杨延生
链接:
来源:知乎
着作权归作者所有,转载请联系作者获得授权。

"深度学习"是为了让层数较多的多层神经网络可以训练,能够work而演化出来的一系列的 新的结构和新的方法。

新的网络结构中最着名的就是CNN,它解决了传统较深的网络参数太多,很难训练的问题,使用了逗局部感受野地和逗权植共享地的概念,大大减少了网络参数的数量。关键是这种结构确实很符合视觉类任务在人脑上的工作原理。
新的结构还包括了:LSTM,ResNet等。

新的方法就多了:新的激活函数:ReLU,新的权重初始化方法(逐层初始化,XAVIER等),新的损失函数,新的防止过拟合方法(Dropout, BN等)。这些方面主要都是为了解决传统的多层神经网络的一些不足:梯度消失,过拟合等。

---------------------- 下面是原答案 ------------------------

从广义上说深度学习的网络结构也是多层神经网络的一种。

传统意义上的多层神经网络是只有输入层、隐藏层、输出层。其中隐藏层的层数根据需要而定,没有明确的理论推导来说明到底多少层合适。
而深度学习中最着名的卷积神经网络CNN,在原来多层神经网络的基础上,加入了特征学习部分,这部分是模仿人脑对信号处理上的分级的。具体操作就是在原来的全连接的层前面加入了部分连接的卷积层与降维层,而且加入的是一个层级。
输入层 - 卷积层 -降维层 -卷积层 - 降维层 -- .... -- 隐藏层 -输出层
简单来说,原来多层神经网络做的步骤是:特征映射到值。特征是人工挑选。
深度学习做的步骤是 信号->特征->值。 特征是由网络自己选择。

阅读全文

与选择神经网络深度需要考虑哪些相关的资料

热点内容
网络发展有哪些痛点 浏览:403
便宜二手机4g网络 浏览:713
4k网络电视高清的多少钱一台 浏览:1003
手机如何设置网络休眠 浏览:343
郴州网络软件开发应用制作公司 浏览:345
网络词啥意思是什么 浏览:500
苹果如何设置联通的网络 浏览:523
如何给某个app授权网络 浏览:804
黑龙江医学网络药理学多少钱 浏览:906
检察网络安全培训 浏览:141
手机中无线与网络管理 浏览:625
手机如何没有网络也能上网 浏览:574
华擎主板如何连接网络 浏览:612
古剑奇谭3和网络版哪个好玩吗 浏览:793
网络语爆蛋糕是什么意思 浏览:893
手机运营商选择哪个网络 浏览:892
网络男红歌手机手 浏览:229
荣耀有wifi拒绝加入网络 浏览:282
手机连接网络说密码错误 浏览:89
中小学网络云平台在哪里下课程 浏览:737

友情链接