卷积神经网络存在的问题,卷积神经网络的卷积层

卷积神经网络存在的问题,卷积神经网络的卷积层_第1张图片

什么是梯度消失?如何加快梯度下降的速度

累乘中一个梯度小于1,那么不断累乘,这个值会越来越小,梯度衰减很大,迅速接近0。在神经网络中是离输出层近的参数,梯度越大,远的参数,梯度越接近0。根本原因是sigmoid函数的缺陷。

方法:1、好的初始化方法,逐层预训练,后向传播微调。2、换激活函数,用relu,leaky——relu。靠的是使梯度靠近1或等于1,避免了在累乘过程中,结果迅速衰减。

避免梯度消失和梯度爆炸的方案:使用新的激活函数Sigmoid函数和双曲正切函数都会导致梯度消失的问题。ReLU函数当x<0,的时候一样会导致无法学习。

利用一些改进的ReLU可以在一定程度上避免梯度消失的问题。例如,ELU和LeakyReLU,这些都是ReLU的变体。

这个神经网络训练有没有梯度消失,或者梯度爆炸,具体怎么看阿?

增加网络的非线性能力,从而拟合更多的非线性过程爱发猫 www.aifamao.com。ReLU在一定程度上能够防止梯度消失,但防止梯度消失不是用它的主要原因,主要原因是求导数简单。

一定程度是指,右端的不会趋近于饱和,求导数时,导数不为零,从而梯度不消失,但左端问题依然存在,一样掉进去梯度也会消失。所以出现很多改进的ReLU。

卷积神经网络 减去rgb均值是做什么

去均值就是将数据中心移到坐标原点,否则我们的训练会很容易饱和;我们以区别颜色为例(比较直观),如果我们的数据是颜色分布均匀(赤橙黄绿青蓝紫),就好办,但如果不均匀,大部分是红色(深红、水红、浅红、橙色、黄色)那么就需要一个去均值的过程来让数据有更好的区分度(有正有负)!

什么是饱和呢?

举一个直观一些的例子:饱和和激活函数有关,比如在BP反馈神经网络中,他主要是求导的链式法则,如果我们使用了sigmoid函数,输入很大的话这个值趋近于1,在链式求导时把这些偏导乘起来就会趋近于0,这就意味着没反馈回来值,我梯度下降学不到东西,这也叫梯度消失或者梯度弥散,相当于我这些神经元被干掉了没用了;也就是说我不进行去均值这一步这个偏移的效应会不断的往后推,越来越大然后出事情!

可能我只是说出了一个直观上的感觉,谢谢!

解释sigmoid为什么会导致梯度消失

多层感知机解决了之前无法模拟异或逻辑的缺陷,同时更多的层数也让网络更能够刻画现实世界中的复杂情形。理论上而言,参数越多的模型复杂度越高,“容量”也就越大,也就意味着它能完成更复杂的学习任务。

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

但是随着神经网络层数的加深,优化函数越来越容易陷入局部最优解(即过拟合,在训练样本上有很好的拟合效果,但是在测试集上效果很差),并且这个“陷阱”越来越偏离真正的全局最优。

利用有限数据训练的深层网络,性能还不如较浅层网络。同时,另一个不可忽略的问题是随着网络层数增加,“梯度消失”(或者说是梯度发散diverge)现象更加严重。

具体来说,我们常常使用sigmoid作为神经元的输入输出函数。对于幅度为1的信号,在BP反向传播梯度时,每传递一层,梯度衰减为原来的0.25。层数一多,梯度指数衰减后低层基本上接受不到有效的训练信号。

卷积神经网络和深度神经网络的区别是什么

作者:杨延生链接:来源:知乎著作权归作者所有,转载请联系作者获得授权。"深度学习"是为了让层数较多的多层神经网络可以训练,能够work而演化出来的一系列的新的结构和新的方法。

新的网络结构中最著名的就是CNN,它解决了传统较深的网络参数太多,很难训练的问题,使用了逗局部感受野地和逗权植共享地的概念,大大减少了网络参数的数量。

关键是这种结构确实很符合视觉类任务在人脑上的工作原理。新的结构还包括了:LSTM,ResNet等。

新的方法就多了:新的激活函数:ReLU,新的权重初始化方法(逐层初始化,XAVIER等),新的损失函数,新的防止过拟合方法(Dropout,BN等)。

这些方面主要都是为了解决传统的多层神经网络的一些不足:梯度消失,过拟合等。

----------------------下面是原答案------------------------从广义上说深度学习的网络结构也是多层神经网络的一种。

传统意义上的多层神经网络是只有输入层、隐藏层、输出层。其中隐藏层的层数根据需要而定,没有明确的理论推导来说明到底多少层合适。

而深度学习中最著名的卷积神经网络CNN,在原来多层神经网络的基础上,加入了特征学习部分,这部分是模仿人脑对信号处理上的分级的。

具体操作就是在原来的全连接的层前面加入了部分连接的卷积层与降维层,而且加入的是一个层级。

输入层-卷积层-降维层-卷积层-降维层--.--隐藏层-输出层简单来说,原来多层神经网络做的步骤是:特征映射到值。特征是人工挑选。深度学习做的步骤是信号->特征->值。

你可能感兴趣的:(cnn,深度学习,神经网络)