首页 > 其他分享 >Backbone 网络-ResNet v2 详解

Backbone 网络-ResNet v2 详解

时间:2022-12-10 12:05:24浏览次数:71  
标签:映射 Backbone 残差 网络 ResNet v2 激活 恒等 单元


Backbone 网络-ResNet v2 详解_恒等映射形式

本文发现当使用恒等映射(identity mapping)作为快捷连接(skip connection)并且将激活函数移至加法操作后面时,前向-反向信号都可以在两个 block 之间直接传播而不受到任何变换操作的影响。同时大量实验结果证明了恒等映射的重要性。本文根据这个发现重新设计了一种残差网络基本单元(unit),使得网络更易于训练并且泛化性能也得到提升。

前言

本文的主要贡献在于通过理论分析和大量实验证明使用恒等映射(​​identity mapping​​​)作为快捷连接(​​skip connection​​​)对于残差块的重要性。同时,将 ​​BN/ReLu​​​ 这些 ​​activation​​​ 操作挪到了 ​​Conv​​​(真正的weights filter操作)之前,提出“预激活“操作,并通过与”后激活“操作做对比实验,表明对于多层网络,使用了预激活残差单元(​​Pre-activation residual unit​​​) 的 ​​resnet v2​​​ 都取得了比 ​​resnet v1​​(或 resnet v1.5)更好的结果。

摘要

近期已经涌现出很多以深度残差网络(deep residual network)为基础的极深层的网络架构,在准确率和收敛性等方面的表现都非常引人注目。本文主要分析残差网络基本构件(​​residual building block​​)中的信号传播,本文发现当使用恒等映射(identity mapping)作为快捷连接(skip connection)并且将激活函数移至加法操作后面时,前向-反向信号都可以在两个 block 之间直接传播而不受到任何变换操作的影响。同时大量实验结果证明了恒等映射的重要性。本文根据这个发现重新设计了一种残差网络基本单元(unit),使得网络更易于训练并且泛化性能也得到提升。

注意这里的实验是深层 ResNet(\(\geq\) 110 layers) 的实验,所以我觉得,应该是对于深层 ResNet,使用”预激活”残差单元(​​Pre-activation residual unit​​)的网络(ResNet v2)更易于训练并且精度也更高。

1、介绍

深度残差网络(​​ResNets​​​)由残差单元(​​Residual Units​​)堆叠而成。每个残差单元(图1 (a))可以表示为:

Backbone 网络-ResNet v2 详解_残差单元公式_02

其中,\(x_l\) 和 \(x_{l+1}\) 是 第 \(l\) 个残差单元的输入和输出,\(F\) 是残差函数。在 ResNet 中,\(h(x_{l})= x_{l}\) 是恒等映射(​​identity​​​),\(f\) 是 ​​ReLU​​​ 激活函数。在 ​​ImageNet​​​ 数据集和 ​​COCO​​​ 数据集上,超过 ​​1000​​​ 层的残差网络都取得了当前最优的准确率。残差网络的核心思想是在 \(h(x_{l})\) 的基础上学习附加的残差函数 \(F\),其中很关键的选择就是使用恒等映射 \(h(x_{l})= x_{l}\),这可以通过在网络中添加恒等快捷连接(skip connection) ​​shortcut​​ 来实现。

本文中主要在于分析在深度残差网络中构建一个信息“直接”传播的路径——不只是在残差单元直接,而是在整个网络中信息可以“直接”传播。如果 \(h(x_{l})\) 和 \(f(y_{l})\) 都是恒等映射,那么信号可以在单元间直接进行前向-反向传播。实验证明基本满足上述条件的网络架构一般更容易训练。本文实验了不同形式的 \(h(x_{l})\),发现使用恒等映射的网络性能最好,误差减小最快且训练损失最低。这些实验说明“干净”的信息通道有助于优化。各种不同形式的 \(h(x_{l})\)

Backbone 网络-ResNet v2 详解_resnetv2_03

为了构建 \(f(y_l)=y_l\) 的恒等映射,本文将激活函数(​​ReLU​​​ 和 ​​BN​​​)移到权值层(​​Conv​​​)之前,形成一种“预激活(​​pre-activation​​​)”的方式,而不是常规的“后激活(​​post-activation​​​)”方式,这样就设计出了一种新的残差单元(见图 ​​1(b)​​​)。基于这种新的单元我们在 ​​CIFAR-10/100​​​ 数据集上使用​​1001​​​ 层残差网络进行训练,发现新的残差网络比之前(​​ResNet​​​)的更容易训练并且泛化性能更好。同时还考察了 ​​200​​​ 层新残差网络在 ​​ImageNet​​ 上的表现,原先的残差网络在这个层数之后开始出现过拟合的现象。这些结果表明网络深度这个维度还有很大探索空间,毕竟深度是现代神经网络成功的关键。

2、深度残差网络的分析

原先 ​​ResNets​​ 的残差单元的可以表示为:

Backbone 网络-ResNet v2 详解_深度残差网络_04

在 ​​ResNet​​ 中,函数 \(h\) 是恒等映射,即 \(h(x_{l}) = x_{l}\)。公式的参数解释见下图:

Backbone 网络-ResNet v2 详解_残差单元公式_05

如果函数 \(f\) 也是恒等映射,即 \(y_{l}\equiv y_{l}\),公式 ​​(1)(2)​​ 可以合并为:

Backbone 网络-ResNet v2 详解_深度残差网络_06

那么任意深层的单元 \(L\) 与浅层单元 \(l\)之间的关系为:

Backbone 网络-ResNet v2 详解_resnetv2_07

公式 ​​(4)​​ 有两个特性:

  1. 深层单元的特征可以由浅层单元的特征和残差函数相加得到;
  2. 任意深层单元的特征都可以由起始特征 \(x_0\) 与先前所有残差函数相加得到,这与普通(​​plain​​)网络不同,普通网络的深层特征是由一系列的矩阵向量相乘得到。残差网络是连加,普通网络是连乘

公式 ​​(4)​​ 也带来了良好的反向传播特性,用 $\varepsilon $ 表示损失函数,根据反向传播的链式传导规则,反向传播公式如下:

Backbone 网络-ResNet v2 详解_深度残差网络_08

从公式 ​​(5)​​​ 中可以看出,反向传播也是两条路径,其中之一直接将信息回传,另一条会经过所有的带权重层。另外可以注意到第二项的值在一个 ​​mini-batch​​​ 中不可能一直是 ​​-1​​,也就是说回传的梯度不会消失,不论网络中的权值的值再小都不会发生梯度消失现象。

3、On the Importance of Identity Skip Connection

考虑恒等映射的重要性。假设将恒等映射改为 \(h(x_{l}) = \lambda_{l}x_{l})\),则:

Backbone 网络-ResNet v2 详解_激活函数_09

像公式 ​​(4)​​​ 一样递归的调用公式 ​​(3)​​,得:

Backbone 网络-ResNet v2 详解_resnetv2_10

其中,\(\hat{F}\) 表示将标量合并到残差函数中,与公式 ​​(5)​​ 类似,反向传播公式如下:

Backbone 网络-ResNet v2 详解_resnetv2_11

与公式 ​​(5)​​​ 不同,公式 ​​(8)​​​ 的第一个加法项由因子 \(\prod_{i=l}^{L-1}\lambda_{i}\) 进行调节。对于一个极深的网络(\(L\) 极大),考虑第一个连乘的项,如果所有的 \(\lambda\) 都大于 ​​1​​​,那么这一项会指数级增大;如果所有 \(\lambda\) 都小于 ​​1​​​,那么这一项会很小甚至消失,会阻断来自 ​​shortcut​​ 的反向传播信号,并迫使其流过权重层。本文通过实验证明这种方式会对模型优化造成困难。

另外其他不同形式的变换映射也都会阻碍信号的有效传播,进而影响训练进程。

Backbone 网络-ResNet v2 详解_激活函数_12

4、On the Usage of Activation Functions

第 ​​3​​​ 章考察使用不同形式映射(见图 ​​2​​​)来验证函数 \(h\) 是恒等映射的重要性,这章讨论公式​​(2)​​​中的 \(f\),如果 \(f\) 也是恒等映射,网络的性能会不会有所提升。通过调节激活函数 (​​ReLU and/or BN​​​) 的位置,来使 \(f\) 是恒等映射。图 ​​4​​ 展示了激活函数在不同位置的残差单元结构图去。

图 ​​4(e)​​​ 的”预激活“操作是本文提出的一种对于深层残差网络能够更有效训练的网络结构(​​ResNet v2​​)。

Backbone 网络-ResNet v2 详解_resnetv2_13

4.1、Experiments on Activation

本章,我们使用 ​​ResNet-110​​​ 和 ​​164​​​ 层瓶颈结构(称为 ​​ResNet-164​​​)来进行实验。瓶颈残差单元包含一个 \(1\times 1\) 的层来降维,一个 \(3\times 3\) 的层,还有一个 \(1\times 1\) 的层来恢复维度。如 ​​ResNet​​ 论文中描述的那样,它的计算复杂度和包含两个 \(3\times 3\)

BN after addition
效果比基准差,BN 层移到相加操作后面会阻碍信号传播,一个明显的现象就是训练初期误差下降缓慢。

ReLU before addition
这样组合的话残差函数分支的输出就一直保持非负,这会影响到模型的表示能力,而实验结果也表明这种组合比基准差。

Post-activation or pre-activation
原来的设计中相加操作后面还有一个 ​​​ReLU​​​ 激活函数,这个激活函数会影响到残差单元的两个分支,现在将它移到残差函数分支上,快捷连接分支不再受到影响。具体操作如图 ​​5​​ 所示。

Backbone 网络-ResNet v2 详解_恒等映射形式_14

根据激活函数与相加操作的位置关系,我们称之前的组合方式为“后激活(​​post-activation​​​)”,现在新的组合方式称之为“预激活(​​pre-activation​​​)”。原来的设计与预激活残差单元之间的性能对比见表 ​​3​​​。预激活方式又可以分为两种:只将 ​​ReLU​​​ 放在前面,或者将 ​​ReLU​​​ 和 ​​BN​​​都放到前面,根据表 ​​2​​​ 中的结果可以看出 ​​full pre-activation​​ 的效果要更好。

Backbone 网络-ResNet v2 详解_深度残差网络_15

Backbone 网络-ResNet v2 详解_恒等映射形式_16

4.2、Analysis

使用预激活有两个方面的优点:1) \(f\) 变为恒等映射,使得网络更易于优化;2)使用 ​​BN​​ 作为预激活可以加强对模型的正则化。

Ease of optimization
这在训练 ​​​1001​​​ 层残差网络时尤为明显,具体见图 1。使用原来设计的网络在起始阶段误差下降很慢,因为 \(f\) 是 ​​ReLU​​ 激活函数,当信号为负时会被截断,使模型无法很好地逼近期望函数;而使用预激活网络中的 \(f\) 是恒等映射,信号可以在不同单元直接直接传播。本文使用的 ​​1001​​层网络优化速度很快,并且得到了最低的误差。

\(f\)ReLU 对浅层残差网络的影响并不大,如图 ​6-right​ 所示。本文认为是当网络经过一段时间的训练之后权值经过适当的调整,使得单元输出基本都是非负,此时 \(f\) 不再对信号进行截断。但是截断现象在超过 ​1000​层的网络中经常发生

Backbone 网络-ResNet v2 详解_残差单元公式_17

Reducing overfitting
观察图 ​​​6-right​​​,使用了预激活的网络的训练误差稍高,但却得到更低的测试误差,本文推测这是 ​​BN​​​ 层的正则化效果所致。在原始残差单元中,尽管​​BN​​​ 对信号进行了标准化,但是它很快就被合并到捷径连接(​​shortcut​​)上,组合的信号并不是被标准化的。这个非标准化的信号又被用作下一个权重层的输入。与之相反,本文的预激活(​​pre-activation​​)版本的模型中,权重层的输入总是标准化的。

5、Results

表 ​​4​​​、表 ​​5​​ 分别展示了不同深层网络在不同数据集上的表现。使用的预激活单元的且更深层的残差网络(​​ResNet v2​​)都取得了最好的精度。

Backbone 网络-ResNet v2 详解_resnetv2_18

Backbone 网络-ResNet v2 详解_激活函数_19

6、结论

恒等映射形式的快捷连接和预激活对于信号在网络中的顺畅传播至关重要

参考资料

  1. ​[DL-架构-ResNet系] 002 ResNet-v2​
  2. ​​Identity Mappings in Deep Residual Networks(译)​​
  3. ​Identity Mappings in Deep Residual Networks​



标签:映射,Backbone,残差,网络,ResNet,v2,激活,恒等,单元
From: https://blog.51cto.com/armcvai/5927415

相关文章

  • 经典网络复现(4)ResNet
       在经过试验发现:网络层数的增加可以有效的提升准确率沒錯,但如果到达一定的层数后,训练的准确率就会下降了,因此如果网络过深的话,会变得更加难以训练。那么我们作这样......
  • 《动手学ROS2》10.7 Nav2导航框架介绍与安装
    《动手学ROS2》10.7Nav2导航框架介绍与安装本系列教程作者:小鱼公众号:鱼香ROSQQ交流群:139707339教学视频地址:小鱼的B站​完整文档地址:鱼香ROS官网版权声明:如非允许禁止......
  • Photoshop 2022 for Mac永久使用(ps 2022) v23.5.2激活版
    Photoshop2022中文版是一款专业图像处理软件,ps2022此次更新软件可选择项目云服务生成更准确和高质量的图像;PS软件界面也有了新的中性UI颜色模式,视觉效果更加高级;对神经滤波......
  • ALV2
    *&---------------------------------------------------------------------**&ReportZ14*&*&-----------------------------------------------------------------......
  • 馨梦秒搜V2
    馨梦秒搜V2方便的搜索和信息检索工具不再为找东西花费时间有人说,人70%的时间都在找东西,现在我们把问题丢到馨梦秒搜这是目前速度最快的文件名搜索工具,可以极速搜索、......
  • 基于云开发的答题活动小程序v2.0-排行榜页面用云开发能力实现查询答题成绩并进行排名
    项目技术栈微信原生小程序+云开发。我这里主要使用了云开发能力中的小程序端SDK,说白了就是在javascript中就能直接操作数据库。 本篇前言基于云开发的答题活动小程序......
  • 新增 EtherNet/IP 驱动,v2.3 即将发布
    11月我们发布了​​Neuron​​2.2.11版本,主要优化修复了一系列在2.2版本中发现的问题,同时为2.3版本的发布做准备:增加EtherNet/IP驱动,完善CNCFOOCAS驱动,OPCDA......
  • resnet详细解读
    原文链接:https://arxiv.org/abs/1512.03385摘要作者提出了一个残差学习结构用来解决非常深网络的退化问题和训练问题。原来的网络是为了拟合一个分布函数,我们重构了网络......
  • 【ARXIV2211】Efficient multi-order gated aggregation network
    作者认为,交互复杂性是视觉识别一个重要特点。为此,作者通过复杂特征交互构建了一个纯卷积的网络MogaNet用于图像识别。MogaNet的整体框架如下图所示,架构和一般的Transfo......
  • DCDC直流隔离升压12V24V48V转600V800V1100V2500V3000V高压稳压输出电源模块
    特点●效率高达 80%●2*2英寸标准封装●单双电压输出●价格低●大于600V高压,稳压输出●工作温度:-40℃~+85℃●阻燃封装,满足UL94-V0要求●温度特性好●可直接......