当前位置: 代码迷 >> 综合 >> 【论文】ResNet
  详细解决方案

【论文】ResNet

热度:29   发布时间:2023-12-13 03:45:55.0

【论文】

He K , Zhang X , Ren S , et al. Deep Residual Learning for Image Recognition[J]. 2016.(pdf)
He K , Zhang X , Ren S , et al. Identity Mappings in Deep Residual Networks[J]. 2016.(pdf)

【新颖点】

  • 提出了短路机制解决深度网络退化的问题
  • 提出了残差块

深度网络退化问题

从经验来看,网络的深度对模型的性能至关重要,当网络层数增加后,网络可以进行更复杂的特征模式的提取,但是这却只是经验上的判断。ResNet 的作者通过实验数据说明,56 层的网络不论是训练时错误率还是测试时错误率都高于 20 层网络。这不是因为深层网络存在的梯度消失或爆照问题引起的,我们可以通过 batch norm 等首段来解决梯度消失或爆炸导致的深度网络难训练的问题。但是,网络越深表示能力却越弱,这是一个非常令人诧异的问题,这就是网络的退化

在这里插入图片描述

残差学习

针对于网络退化问题,有两种解决思路:

  • 一种是调整求解方法,比如更好的初始化、更好的梯度下降算法等
  • 另一种是调整模型结构,让模型更易于优化

ResNet 的作者从后者入手,将堆叠的基层称为一个块,对于某个块,其可以拟合的函数为 F(x)F(x)F(x),如果期望的潜在映射为 H(x)H(x)H(x),与其让 F(x)F(x)F(x) 直接学习潜在的映射,不如去学习残差 H(x)?xH(x)-xH(x)?x,即 F(x)=H(x)?xF(x)=H(x)-xF(x)=H(x)?x,这样原本的前向路径上就变成了 F(x)+xF(x)+xF(x)+x,用 F(x)+xF(x)+xF(x)+x 来拟合 H(x)H(x)H(x)。这样更易于优化,因为相比于 F(x)F(x)F(x) 学习恒等映射,让 F(x)F(x)F(x) 学习成为 000 要更加容易(可以通过 L2 正则轻松实现)。这样,对于冗余的块,只需 F(x)→0F(x)\rightarrow0F(x)0 就可以得到恒等映射,性能不减

我们理解一下上面这段话

首先什么是恒等映射?

如果我们在浅层网络上堆叠新的网络层,而这些增加的层什么也不学习,仅仅是复制浅层网络的特征,那么这样新增加层就是恒等映射。当残差为 0 时,堆积层就仅仅做了恒等映射。在这种情况下,我们猜想如此堆叠出来的深度网络应该至少和浅层网络的性能一样,不会出现退化现象。事实上,什么也不学习是神经网络最难做到的东西之一,残差不会为 0,这也就使得堆积层再说输入特征上学习到乐新的特征,从而拥有更好的性能

接着,怎么做残差学习?

想要让神经网络去拟合潜在的恒等映射函数 H(x)=xH(x)=xH(x)=x,这是很难的。所以,我们只要让 F(x)=0F(x)=0F(x)=0,就可以构成一个恒等映射 H(x)=xH(x)=xH(x)=x。于是,我们的出发点就变成了 F(x)→0F(x)\rightarrow0F(x)0

最后,我们做一个简单数学分析解释为什么残差更容易学习?

xlx_lxl?xl+1x_{l+1}xl+1? 分别表示第 lll 个残差单元的输入和输出,FFF 表示残差函数,表示学习到的残差,h(xl)=xlh(x_l)=x_lh(xl?)=xl? 表示恒等映射,fff 表示 ReLU 激活,于是有下面的关系式

yl=h(xl)+F(xl,Wl)xl+1=f(yl)y_l=h(x_l)+F(x_l, W_l) \\ x_{l+1} = f(y_l)yl?=h(xl?)+F(xl?,Wl?)xl+1?=f(yl?)

从浅层 lll 到深层 LLL 的学习特征为 xL=xl+∑i=lL?1F(xi,Wi)x_L=x_l+\sum^{L-1}_{i=l}F(x_i, W_i)xL?=xl?+i=lL?1?F(xi?,Wi?)

根据链式求导法则,?loss?xl=?loss?xL??L?xl=?loss?xL?(1+??xl∑i=lL?1F(xi,Wi))\frac{\partial loss}{\partial x_l}=\frac{\partial loss}{\partial x_L}\cdot\frac{\partial L}{\partial x_l}=\frac{\partial loss}{\partial x_L}\cdot\left ( 1+\frac{\partial }{\partial x_l}\sum^{L-1}_{i=l}F(x_i, W_i) \right )?xl??loss?=?xL??loss???xl??L?=?xL??loss??(1+?xl???i=lL?1?F(xi?,Wi?))

右式的第一项 ?loss?xL\frac{\partial loss}{\partial x_L}?xL??loss? 表示损失到达 LLL 的梯度,括号中 111 表示恒等映射,括号中的另外一项残差梯度则需要经过带有权重的层

清楚理解了残差学习之后,我们要考虑的就是如何设计 F(x)+xF(x)+xF(x)+x

残差块

在这里插入图片描述
一个残差块有两条路径 F(x)F(x)F(x)xxxF(x)F(x)F(x) 路径拟合残差,xxx 路径为恒等映射,称为 shortcut,?\bigoplus? 表示元素积,要求 F(x)F(x)F(x)xxx 的尺寸相同

我们用书数学公式描述一下残差块,假设残差块的输入为 xxx,输出为 yyy,有 y=F(x,{Wi})+xy=F(x,\left \{ W_i \right \})+x y=F(x,{ Wi?})+x
其中经过一个激活函数,F=W2?σ(W1x)F=W_2\cdot\sigma(W_1x)F=W2??σ(W1?x)
另外,考虑对维度保持一致,可以在 shortcut 做一个线性变化 WsW_sWs?,此时残差块的表示为 y=F(x,{Wi})+Wsxy=F(x,\left \{ W_i \right \})+W_sxy=F(x,{ Wi?})+Ws?x

值得一提的是,残差块中至少要有两个权重层,否则会出现下面的情况,起不到任何作用 y=F(x,{Wi})+x=W1x+x=(W1+1)xy=F(x,\left \{ W_i \right \})+x=W_1x+x=(W_1 + 1)xy=F(x,{ Wi?})+x=W1?x+x=(W1?+1)x

在论文中,残差路径可以分为两种,一种有 bottleneck 的结构,即下图右中的 1×11\times11×1 卷积层用于先降维再升维,主要目的是降低计算的复杂度。另外一种是没有 bottleneck 的结构

在这里插入图片描述
因此 shortcut 路径大致也分为两种,取决于残差路径是否改变了特征图的数量和尺寸。一种是将 xxx 原封不动地输出,另外一种则需要经过 1×11\times11×1 卷积来升维或者降维,主要目的是将输出与 F(x)F(x)F(x) 路径的输出保持大小一致

在这里插入图片描述

网络结构

在这里插入图片描述

  • ResNet 是参考 VGG19,在其基础上进行修改,通过短路机制添加残差单元实现的
  • ResNet 直接使用步长为 2 的卷积做下采样,而不再在残差块之间引入 pooling 层
  • 使用 global average pooling 代替了全连接层得到最终特征
  • 每个卷积层之后都有 batch norm,图上并未标出这点

另外,ResNet 的一个重要设计原则是:当特征图大小降为一半的时候,特征图的数量增加一倍,如 conv3_1、conv4_1 和 conv5_1,这保证了网络层的复杂性。上图中虚线表示特征图数量发生了变化,shortcut 中通过 1×11\times11×1 卷积保持大小的一致性

在这里插入图片描述
对于 18 层 ResNet 或者 34 层 ResNet 更多使用两层的残差块,当网络更深时,则更多使用 bottleneck 的残差块

error surface 对比

在这里插入图片描述

  • ResNet-20(no short)的 error surface 还没有很复杂,优化不会十分困难;但是在增加到 56 层后,error surface 变得异常复杂,此时将很难做到很好的优化
  • 引入 shortcut 后,error surface 变得平缓很多,梯度的可预测性变得很好,更易于优化

残差块的分析与改进

在 Identity Mappings in Deep Residual Networks 一文中进一步研究了 ResNet ,通过 ResNet 反向传播的理论分析调整了残差块的结构
在这里插入图片描述
和之前不同的是,在这片文章中将 shortcut 视为主干路径,而将残差路径视为旁路

新的残差块具有更强的泛化能力,也更能避免退化问题,即使在堆叠大于 1000 层之后,网络的性能仍在变好。具体的变化在于,

  • 通过保持 shortcut 路径的纯净,可以让信息在前向传播和反向传播中更加平滑传递。为此,非必要情况下将不在 shortcut 引入 1×11\times11×1 卷积操作,同时将上图灰色路径上的 ReLU 移到了残差路径上
  • 在残差路径上,将 BN 和 ReLU 同一放在权重前作为预激活
  相关解决方案