基于深度学习的图片特征提取:AlexNet、VGGNet、GoogLeNet、ResNet(残差单元引入shortcut connections实现恒等映射)

日萌社

人工智能AI:Keras PyTorch MXNet TensorFlow PaddlePaddle 深度学习实战(不定时更新)


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.残差是指预测值与观测值之间的差异,误差是指观测值和真实值之间的差异,这两个概念经常容易混淆。

发布了352 篇原创文章 · 获赞 116 · 访问量 19万+

猜你喜欢

转载自blog.csdn.net/zimiao552147572/article/details/104547017