深度神经网络DNN的局限:参数膨胀、局部最优与梯度消失问题解析
1。DNN(深神经网络)神经网络是基于感知的扩展,DNN可以理解为具有许多隐藏层的神经网络。多层神经网络和深度神经网络DNN实际上是指某物。 DNN有时称为多层感知器(MLP)。
DNN的局限性:
参数的数量被扩展。由于DNN采用了完整连接的形式,因此结构中的连接带来了数量级重量参数,这不仅容易导致过度拟合,而且很容易导致局部最佳。
本地最佳。随着神经网络的加深,优化功能更有可能属于局部优化并偏离真正的全局优化。对于有限的培训数据,性能甚至比浅网络的绩效还差。
梯度消失了。使用激活函数(转移函数),当BP反向梯度反射时,梯度将减弱。随着神经网络层的数量增加,到达底层时,梯度基本上将为0。
建模时间序列是不可能的。样本的时间顺序对于诸如自然语言处理,语音识别和手写识别等应用非常重要。
2。CNN(卷积神经网络)
它主要针对DNN中参数扩展的问题。对于CNN,并非所有上和下神经元都可以直接连接,而是通过“卷积内核”介导的。相同的卷积内核在多个图像中共享,并且图像仍然可以通过卷积操作保留其原始的位置关系。
CNN适合图像识别的原因是正式的,因为CNN模型限制了参数和地雷本地结构的数量。
3。RNN(循环神经网络)
鉴于CNN中无法建模时间序列变化的局限性,因此出现了RNN,以适应时间序列数据的处理。
在普通的完全连接的网络或CNN中,每一层神经元的信号只能传播到上层,并且样品的处理在每时每刻都是独立的(这是一个前进的神经网络)。在RNN中,神经元的输出可以在下一个时间戳中直接起作用。
(t+1)时间网络O(t+1)的最终结果是该时间和所有历史记录的组合效应的结果,这实现了建模时间序列的目的。
现有问题:RNN可以被视为及时传递的神经网络,其深度是时间长度,梯度消失的现象发生在时间表上。
神经网络来源
神经网络技术起源于1950年代和1960年代。它称为(),其中包括输入层,一个输出层和隐藏层。输入特征向量通过隐藏层转换转换为输出层,分类结果是从输出层获得的。
但是,早期的单层感知器有一个严重的问题 - 做任何更复杂的事情(例如XOR操作)是无能为力的。直到1980年代,它才被其他人发明的多层感知机所克服,这是一台具有多个隐藏层的感知机。
多层感知器可以摆脱早期离散传输功能的限制,使用TANH等连续功能来模拟神经元对激发的响应,并在训练算法中使用发明的反向传播BP算法。这就是我们现在称之为神经网络NN。
神经网络的层数直接决定了其描绘现实的能力 - 每层使用更少的神经元以适合更复杂的功能。但是出现问题 - 随着神经网络的层数加深,优化功能越来越有可能属于局部最佳解决方案,并且这种“陷阱”越来越偏离真正的全局最佳最佳。经过有限数据训练的深网的性能不如浅网络。同时,另一个不容忽视的问题是,随着网络层的数量的增加,“梯度消失”的现象变得更加严重。 (具体地,我们经常将其用作神经元的输入和输出功能。对于振幅为1的信号,当BP反向梯度反向传播时,每层传递的梯度衰减到原始0.25。使用更多层,梯度索引为衰减后,下层基本上无法接收有效的训练信号。
在2006年,提出了深度学习的概念,这引发了深入学习的热潮。具体而言,局部最佳解决方案的问题通过预训练来缓解,并且隐藏层增加到7层,从而实现了真实的“深度”。
DNN组
为了克服梯度的消失,relu等。转移功能已更换,形成了当今DNN的基本形式。该结构与多层感知器相同,如下图所示:
我们看到,在完全连接的DNN的结构中,下部和所有上神经元都可以形成连接,从而导致参数数量的扩展。假设输入是一个像素为1K*1K的图像,并且隐藏层具有1M节点,并且仅此层具有10^12个权重训练。这不仅容易过度合适,而且非常容易落入本地最佳选择。 。
CNN组
由于图像中存在固有的局部模式(例如眼睛,鼻子,嘴巴等),因此将图像处理和奉献网络组合在一起以导致卷积神经网络CNN。 CNN通过卷积内核连接上层和下层。所有图像中共享相同的卷积内核。卷积操作后,图像仍然保留其原始位置关系。
卷积神经网络的结构的简要说明是通过一个例子进行的。假设我们需要识别一个具有四个通道ARGB的颜色图像(透明和红色,绿色和蓝色,对应于相同大小的四个图像),假设卷积内核的大小为,则总共100个卷积内核W1使用W100。 (直观地,每个卷积内核都应学习不同的结构特征)。
使用W1在ARGB图像上执行卷积操作,以获取隐藏层的第一个图像;该隐藏层图像的左上角的第一个像素是四个输入图像左上角的像素的加权总和,因此类比。
同样,隐藏层包括其他卷积内核,对应于100个“图像”。每个图像对都是对原始图像中不同特征的响应。继续根据此结构继续传递。 CNN中也有最大和其他操作,以进一步提高鲁棒性。
请注意,最后一层实际上是完全连接的图层。在此示例中,我们注意到从输入层到隐藏层的参数立即降低至= 10^6!这使我们可以使用现有培训数据获得一个好的模型。提问者所说的适合图像识别的内容,因为CNN模型限制了参数的数量并探讨了本地结构的特征。遵循同样的想法,使用发音光谱结构中的局部信息,CNN仍然可以在语音识别中应用。
RNN组
DNN无法建模时间序列。但是,样本的时间顺序对于诸如自然语言处理,语音识别和手写识别等应用非常重要。为了适应这种需求,我们称之为另一种神经网络结构 - 复发性神经网络RNN。
在普通的完全连接的网络或CNN中,每一层中神经元的信号只能传播到上层,并且样品的处理在每时每刻都是独立的,因此它也称为正向神经网络(feed-)。在RNN中,神经元的输出可以在下一个时期直接起作用自身,即在m时间内的第i-t层神经元的输入。除了目前(I-1)层神经元的输出外,它还在(M-1)时间内还包括其自身的输出! 。
梯度的方向:与此函数在这一点上生长最快的方向一致。梯度的大小:|梯度| =最大(方向导数),特定概念都是高数字的知识。上述公式必须是一阶感应。梯度下降方法:找到损失函数的最小值。解决方案步骤是:首先找到f(x)的梯度,然后沿梯度的相反方向移动x,然后继续移动,直到两个迭代计算得出的f(x)之间的差异基本上保持不变,即使迭代收敛,完成。因此,每次迭代都将X更新为X-λ,即X-Steps X梯度。这就是基础知识。 。 。
梯度消失:靠近输出层的层具有较大的梯度,快速参数更新和易于收敛。远离输出层的层具有较小的梯度和慢速参数更新,就像开始一样,它们基本上是随机分布的,并且不容易收敛。这是梯度消失。通常,由于函数导数为f'(x)= f(x)(1-f(x))∈(0,1),因此DNN的背面传播是按层乘坐部分衍生物,因此(0,0,, 1)始终相互乘,并且当它接近0时,梯度消失了。
解决方案:使用Relu或Tanh。 Relu的部分导数一直是1。尽管梯度可能会消失,从而看着其图像,但部分导数的增长率仍然很大,因此更好。
梯度爆炸:这是一个很好的解释。如果您开始计算倒数第二层激活函数的部分导数,那么当它大于1时,增加的层数,梯度将像爆炸一样呈指数增长。因此,梯度值爆炸。
梯度消失不是需要担心的问题。如果您使用剩余网络,则梯度消失将得到完全解决,因为它更好地倒流是更好的。
激活功能
在神经元中,在加权并求和后,还使用了一个函数,即激活函数。引入激活函数以增加神经网络模型的非线性。每个没有激活函数的层等效于矩阵乘法。即使您叠加了几层,也只会乘一个矩阵。
页:
[1]