【残差网络(ResNet)】

【残差网络(ResNet)】_第1张图片

  • 其中块的大小代表模型的复杂程度,五角星代表最优值
  • 如果盲目的去堆加模型的复杂程度并不一定会提升模型的精度
  • 但如果我们新的模型总是包含旧的模型,那么它的精度至少不会变差(通常情况下更好)

残差块

  • 串联一个层改变函数类,我们希望能扩大函数类
  • 残差块加入快速通道来得到
    g ( x ) = x + f ( x ) g(x)=x+f(x) g(x)=x+f(x)的结构

【残差网络(ResNet)】_第2张图片

  • 如图所示,是两层连续的神经网络,如果本来后一层的输出要拟合 f ( x ) f(x) f(x)
  • 我们将后一层的输出给加上前一层的输入 x x x,此时我们只需要拟合 f ( x ) − x f(x)-x f(x)x,即残差
  • 残差映射在现实中往往更容易优化

ResNet块细节
【残差网络(ResNet)】_第3张图片

  • ResNet块沿用了VGG块的设计
  • 其中左右两种的主要区别在于如果输出改变了输入的通道数,那我们就使用右边的,对输入加个 1 × 1 1\times1 1×1的卷积改变一下输入的通道数

不同的残差块
【残差网络(ResNet)】_第4张图片
ResNet架构

  • 类似VGG和GoogleNet的总体架构
  • 但换成了ResNet块
    【残差网络(ResNet)】_第5张图片
    总结
  • 残差块使得很深的网络更加容易训练(不管网络有多深,因为有跨层数据通路连接的存在,使得始终能够包含小的网络,因为跳转连接的存在,所以会先将下层的小型网络训练好再去训练更深层次的网络),甚至可以训练一千层的网络(只要内存足够,优化算法就能够实现)
  • 学习嵌套函数是神经网络的理想情况,在深层神经网络中,学习另一层作为恒等映射比较容易
  • 残差映射可以更容易地学习同一函数,例如将权重层中的参数近似为零
  • 利用残差块可以训练出一个有效的深层神经网络:输入可以通过层间的残余连接更快地向前传播
  • 残差网络对随后的深层神经网络的设计产生了深远影响,无论是卷积类网络还是全连接类网络,几乎现在所有的网络都会用到,因为只有这样才能够让网络搭建的更深

你可能感兴趣的:(#,沐神动手学ai学习笔记,深度学习,深度学习,神经网络,人工智能)