[人工智能-深度进修-36]: 收集层数堆叠导致的问题分析与解决之道_梯度_收集
1.2 一个奇怪的征象
从LeNet网络到Inception-V4,其性能不断的提升, 网络的层数不断杂在增加。当网络增加到20层旁边时研究职员创造:随着网络层数的增加,性能反而是低落的,如下图所示:
随着网络层数的增加,网络总体性能不才降!
!
!
1.3 网络层数增加带来的负面效果
随着网络层数的增加,涌现几个数学征象:
(1)权重参与的数量巨量增加
(2)不同层的参数的分布特色不同。
(3)不同层的参数的变革率不同。
(4)不同层的参数对结果的影响不同,然后梯度迭代时的效果是相同。
第2章 参数量剧增导致的演习问题
演习的过程便是梯度逐渐迭代的过程,反向传播的梯度打算是每一次的梯度打算要依赖于后一级的梯度。随着网络层数的增加,上述参数的变革,会导致深度学习、演习涌现一些新的问题:
2.1 打算量的增加
(1)问题
权重参与的数量巨量增加,导致打算量的大幅度增加。
(2)办理办法
针对这个问题,可以通过GPU集群来办理,对付一个企业资源并不是很大的问题;
2.2 模型随意马虎过拟合,泛化能力变差。
(1)问题
参数越多,拟合样本的能力越强,但样本本身也是偏差的,且样本本身的表现形态也是多样的。
过渡的拟合,导致拟合出来的网络,过于看重样本的形态,而忽略了样本内在的特色和规律。
这便是过拟合,过拟合的结果便是模型泛化能力变差,无法创造模型内部的实质特色 。
(2)办理办法
可以通过采集海量数据,并合营Dropout正则化等方法也可以有效避免;
2.3 梯度非常
(1)梯度消逝或梯度弥散:梯度靠近于0
(2)梯度爆炸:梯度靠近于无穷
2.4 loss非常
(1)网络回退:当增加网络深度,演习集loss反而会增大的征象。
第3章 梯度消逝:参数的变革率靠近于03.1 什么是梯度消逝和梯度弥散
大略的讲,便是某些网络层的梯度在没有拟合完成前,就已经降落办理于0,导致网络无法学习。
即在梯度的反向传播过程中,经由多层的梯度相乘,导致靠近输着迷经元会比靠近输出的神经元的梯度成指数级衰减,乃至靠近于0.
靠近输出层的hidden layer 梯度大,参数更新快,以是很快就会收敛;
而靠近输入层的hidden layer 梯度小,权重参数更新慢,险些就和初始状态一样,随机分布(初始化成随机分布)。这种征象便是梯度弥散(vanishing gradient problem)。
3.2 梯度的由来:反向传播的梯度低落来优化神经网络参数
反向传播的梯度低落来优化神经网络参数:
根据丢失函数打算的偏差,通过反向传播的办法,辅导深度网络参数的更新优化。
3.3 采纳反向传播的缘故原由
深层网络由许多线性层和非线性层堆叠而来,每一层非线性层都可以视为是一个非线性函数f(x)(非线性来自于非线性激活函数),因此全体深度网络可以视为是一个复合的非线性多元函数。
我们终极的目的是希望这个非线性函数很好的完成输入到输出之间的映射,也便是找到让丢失函数取得极小值。
以是终极的问题就变成了一个探求函数最小值的问题,在数学上,很自然的就会想到利用梯度低落来办理。
3.4 梯度消逝会带来哪些影响
举个例子,对付一个含有三层隐蔽层的大略神经网络来说,当梯度消逝发生时:
靠近于输出层的隐蔽层,由于其梯度相对正常,以是权值更新时也就相对正常,
靠近于输入层的隐蔽层,由于梯度消逝征象,会导致靠近输入层的隐蔽层权值更新缓慢或者更新结束。
这就导致在演习时,只等价于后面几层的浅层网络的学习。
3.5 梯度消逝的缘故原由
sigmod函数,导致神经元的被输出被限定在0和1区间。
因此这种征象的根本缘故原由,一方面来自于激活函数,另一个根本缘故原由在于“链式求导”。这是深度学习的根基!
!
!
3.5 梯度消逝的办理思路
重构深度学习的基石:链式求导,这有一定的难度。降落网络的层数优化网络的架构,避免梯度消逝或梯度爆炸优化激活函数3.6 梯度消逝的几个办理办法
梯度消逝和梯度爆炸实质上是一样的,一个根本的由于是:
网络层数太深而引发的梯度反向传播中的连乘效应。
办理梯度消逝、爆炸紧张有以下几种方案案例:
(1)换用Relu、LeakyRelu、Elu等激活函数
ReLu:让激活函数的导数很定为1,不会涌现梯度消逝或梯度爆炸。
LeakyReLu:包含了ReLu的险些所有优点,同时办理了ReLu中0区间带来的影响
ELU:和LeakyReLu一样,都是为理解决0区间问题,相对付来,elu打算更耗时一些(为什么)
(2)BN: BatchNormalization(归一化)
归一化,有类类似每个神经元对输出与的限定与放大。
通过归一化,确保每个神经元输出,都被重选放大或缩小,以规范的办法输出。
BN实质上是办理传播过程中的梯度消逝或爆炸问题。
(3)逐层演习 + 整体finetunning
此方法来自Hinton在06年揭橥的论文上,其基本思想是:
每次演习一层隐蔽层节点,将上一层隐蔽层的输出作为输入,而本层的输出作为下一层的输入,这便是逐层预演习。
演习完成后,再对全体网络进行“微调(fine-tunning)”。
此方法相称于是找局部最优,然后整合起来探求全局最优;
但是现在基本都是直接拿imagenet的预演习模型直接进行finetunning。
(4)改变网络构造
如残差ReNet网络构造、LSTM网络构造。后续单独谈论这些网络架构。
第4章 梯度爆炸:梯度靠近于无穷4.1 什么是梯度爆炸
梯度爆炸与梯度消逝恰好相反,是随着网络层数的增加,靠近输入真个网络的梯度,经由多次相乘后,梯度得到了无限的放大。
4.2 梯度爆炸的缘故原由
梯度爆炸的缘故原由与梯度消逝基本相同。
梯度的衰减是有连续乘法导致的,如果在连续乘法中涌现连续的多个非常大的值,末了打算出的梯度就会很大。
相称于优化过程中,碰着断崖处时,会得到一个很大的梯度值,如果按照这个梯度值进行更新,那么这次迭代的步长就很大,可能会一下子飞出了合理的区域。
4.3 梯度爆炸的办理方法
与梯度消逝相似,除此之外,梯度爆炸还有自身独特的办理办法:
(1)阈值法
其思想是设值一个剪切阈值,如果更新梯度时,梯度超过了这个阈值,那么就将其逼迫限定在这个范围之内。这样可以防止梯度爆炸。
第5章 网络退回征象5.1 什么是网络回退线性
针对梯度弥散或爆炸,彷佛可以通过Batch Normalization(归一化)的方法可以避免。
办理了梯度梯度消逝和梯度爆炸后,貌似我们就可以无脑的增加网络的层数来得到更好的网络性能:准确率和泛化能力。但实验数据给了我们当头一棒。
随着网络层数的增加,发生了一个神奇的退化(degradation)的征象:
(1)优化区
一开始,当网络层数从0逐渐增多时,演习集的loss值,在演习学习后的值会逐渐低落。
(2)饱和区
当网络层数得到20层附近时,再通过增加网络层数,loss的减少就不明显了,乃至loss的减少靠近于0,这个区称为loss的饱和区。
(3)回退区
当网络层数再增大时,loss不但不减少,反而会增大。这就称为“网络回退征象”,回退到较低网络层次的水平。
把稳:这并不是过拟合,由于在过拟合中演习loss是一贯减小的,乃至loss为0.
当网络退化时,深层网络只能达到浅层网络的水平,这样,通过增加网络层的深度的意义就不大了,反而是负面的了,由于增加网络的深度,会导致参数的增加、打算机的增加、网络传输的延时等,并没有带来缺点率的低落和准确率的提升 。
5.2 管理层级与专有化、风雅化分工
随着公司、国家规模的增长,管理层级也越来越大,区分的种类也越来越多,但并非层级越多越好,管理层级与公司的规模有一定的关系,当管理的层级超过一定的门限后,管理的效能是整体效能是低落的。神经网络也是一样。
5.3 神经网络退回征象背后的事理
从信息论的角度讲,由于DPI(数据处理不等式)的存在。在前向传输的过程中,随着层数的加深,抽象程度也在提升,共性在提升,个性在降落。共性的信息量是低的,共性程度越高的,信息量是越少的,个性程度越多的,描述个性的信息是越多的,也就说随着网络层数的增加,也便是Feature Map包含的信息量会逐层减少。因此,就不须要通过更多的神经元参数加以区分。
5.4 神经网络退回征象的办理办法
浅层网络具备更多的特色信息,如果我们把浅层(低层管理层)的特色传到高层(管理层),让高层根据这些信息进行决策(分类和特色提取),那么高层末了的效果该当至少不比浅层的网络效果差,最坏的情形是与低层更好的效果,更普遍的情形是,高层由于有更多、更抽象的特色信息,因此高层的决策效果会比低层更准确。
更抽象的讲,我们须要一种技能,确保担保了L+1层的网络一定比 L层包含更多的图像信息。
这便是ResNet shortcut网络构造的底层逻辑和内在思想!
!
!
。
————————————————
感谢大家的支持和喜好,
版权声明:本文为CSDN博主「文火冰糖的硅基工坊」的原创文章,遵照CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/HiWangWenBing/article/details/120919308
本文系作者个人观点,不代表本站立场,转载请注明出处!