赞
踩
人工智能AI:Keras PyTorch MXNet TensorFlow PaddlePaddle 深度学习实战(不定时更新)
Resnet通过引入残差单元来解决退化问题。
结构:
(1)通过增加 恒等快捷连接(identity shortcut connection)实现,直接跳过一个或多个层。优势是残差映射在实际中往往更容易优化。
(2)Resnet网络中短路连接shortcut的方式考虑到x的维度与F(X)维度可能不匹配情况,需进行维度匹配。通常采用两种方法解决这一问题:
zero_padding:对恒等层进行0填充的方式将维度补充完整。这种方法不会增加额外的参数
projection:在恒等层采用1x1的卷积核来增加维度。这种方法会增加额外的参数
(3)bottleneck 实现方式
使用1x1的卷积层来降维,最后一层使用1x1的卷积层来进行升维
(4)激活函数移动到残差部分可以提高模型的精度
- 1.一个残差单元中输入数据分两路汇合作为输出数据,其中一路数据是常见的经过两个卷积层运算后的结果,
- 而另一路数据直接就是输入数据,这个路线被称为shortcut connections(快捷连接)。
- 2.随着网络的加深,模型不但没有变得更好,反而变差了,并不是因为发生了过拟合,
- 因为即使通过使用dropout以及加大训练数据等方法均都并不能很好地解决这个问题;
- 同时也不能说是网络过深导致梯度传播的衰减,因为已经有很多行之有效的方法来避免这个问题了;
- 同时也不能说是网络过深导致后面的一些网络层根本没有什么用,如果说起作用的只是前面的一些网络层,
- 那么这个很深的网络也就退化成了一个较浅的网络,但这样是不对的,因为即便退化成了较浅的网络,
- 这个很深的神经网络与较浅的神经网络相比预测误差应该差不多,但是从实验来看这个误差反而变大了。
- 3.综上所述,导致更深的网络预测误差反而变大了的可能原因就是:
- 这个更深的网络后面的网络层没有学习到恒等映射(identity mapping),则是学习到一些非恒等映射而导致引入了误差。
- 所谓恒等映射是指输入和输出是一样的,即y=H(x)=x,更通俗地说就是这个网络层什么都没有干。
- 那么,我们就可以得到一个想法,假如一个足够深度的m层神经网络,其起作用的只是前n层(n<<m),
- 其后面的(m-n)层网络层只需要老老实实地什么都不干就可以了,那么这个神经网络理论上讲就具有拟合任何函数的能力。
- 但是,一个令人头痛的问题就是后面的(m-n)层网络层并不会老老实实地什么都不干,它们学习到了非恒等变换的映射关系,
- 就会为神经网络引入误差,从而导致模型变坏。因此,如果我们找到了一种使后面的网络层老老实实地执行恒等映射的方法,
- 就可以实现网络结构的不断加深。
- 残差单元恰恰就是这样的一种方法,通过引入shortcut connections(快捷连接)即直接加入了输入数据x(identity)来实现恒等映射。
- 4.残差是指预测值与观测值之间的差异,误差是指观测值和真实值之间的差异,这两个概念经常容易混淆。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。