经典网络解读—IResNet

论文:Improved Residual Networks for Image and Video Recognition(2020.4)
作者:Ionut Cosmin Duta, Li Liu, Fan Zhu, Ling Shao
链接:https://arxiv.org/abs/2004.04989
代码:https://github.com/iduta/iresnet

文章目录

  • 1、算法概述
  • 2、前置知识-ResNet
  • 3、IResNet细节
    • 3.1 Improved information flow through the network
    • 3.2 Improved projection shortcut
    • 3.3 Grouped building block
  • 4、实验


1、算法概述

IResnet是对Resnet进行改进的算法,作者从三个部分进行优化改进:1、网络中的信息流;2、残差子模块设计;shortcut连接方式;作者通过在以上三部分做出改进,使得IResnet的准确性和学习收敛性方面显示出比较大的提升。具体来说,对于分类任务,同样模型复杂度下,超出Resnet-50 1.19%的top1准确率。对于Resnet网络,训练非常深的网络,例如400层或者500层,会出现严重的优化问题,但是作者提出的网络结构可以实现训练非常深的网络结构。最终,作者建立了404层的卷积神经网络用于训练ImageNet数据集,3002层卷积神经网络训练CIFAR-10和CIFAR-100。


2、前置知识-ResNet

Resnet由大量的残差模块(blocks)组成,它的核心就是在模块中加入恒等映射(the identity mapping)用来使得网络学习更加容易。恒等映射是通过使用shortcut/skip connection来实现的:将block的输入添加到其学习输出中。理论上,网络可以自己学习自身的映射,不需要这些捷径。然而,在实践中,优化器学习恒等映射并不容易。这被称为退化问题。Resnet论文实验指出,较深的网络甚至比较浅的网络精度反而更差,与理论上严重不符合,而这个原因就是网络的退化问题造成的。Resnet的提出缓解了部分网络退化问题,但没有完全解决;例如当Resnet深度从152增加到200时,ImageNet上分类结果变差,优化困难,这表明,当层数增加时,ResNet仍然会损害信息通过网络的传播。

在Resnet中,当前后block输入尺度不一致时,就会采用projection shortcut。可见projection shortcut在Resnet处理网络退化问题中没有充当重要角色。 然而,作者认为projection shortcut在网络架构中扮演着重要的角色,因为它们存在于主要的信息传播路径上,因此很容易干扰信号或造成信息丢失。作者通过引入改进版本的projection shortcut,在不增加参数的情况下能带来非常大的提升。在原始Resnet中,瓶颈模块用来控制网络的参数量,模块中只有卷积负责学习空间特征,所以通道数量非常重要,通道数量越多,学习的特征越丰富, 作者通过改进,通道可以扩大到原始版本的4倍。
所以,相对于原始ResNet,作者改进:
1、 提出一种基于stage的残差学习网络结构。所提出的方法通过为信息在网络层之间传播提供更好的路径,从而促进了网络优化。
2、 提出了一种改进的projection shortcut,减少了信息丢失,提供了更好的结果。
3、 提出了一个block,能学习更强大的空间特征。
4、 提出的网络结构能在各个数据集中相对于基准Resnet结果都得到了提升。


3、IResNet细节

3.1 Improved information flow through the network

Resnet由很多个残差模块构成,残差模块可以由下图(a)所示:
在这里插入图片描述
用公式可表示为:
在这里插入图片描述
其中x[l] 和x[l+1] 表示为第l个残差模块的输入与输出,ReLU代表激活函数,F(x[l] ,{wi[l] })代表含有多个层的可学习的残差映射函数。

原始版Resnet由两个1x1卷积和一个3x3卷积组成并且每个卷积层后都跟随一个bn层和ReLU激活层,大的灰色箭头表示shortcut连接;这条链路只包含一个ReLU激活函数,该ReLU可以通过将负信号归零来潜在地对信息的传播产生负面影响。这在训练开始时尤其重要(一段时间后,网络可能开始调整权重以输出一个在通过ReLU时不受影响的正信号)。这个影响在何凯明的另一篇论文[1]中提出了改进方式,叫做预激活,即通过将BN层和ReLU层前移,如下图(b)所示。

原始版本的ResNet(图a)在主路径上设置了太多的门(ReLU),这会阻碍信息的传播,改进版本图b,又使得信息畅通无阻,不受任何控制,这两种极端的shortcut设置都不是最理想的,并且呈现出不同的问题, 在预激活版本图b中引发出两个问题:
1、网络的4个stage都没有对完整信号进行BN归一化,全部的bn操作都在分支中进行,因此,当我们增加blocks时也在同时增加完整信号的非归一化(unnormalized),也就造成了网络学习困难。这个问题在图a和图b两种结构都体现出来了。
2、预激活版本(图b)的主路径是学习恒等映射的,每个block连接处缺少非线性映射,这限制了学习能力。作者针对以上两点进行改进,按stage切分为start、Middle、end,并且在每个stage的最后一个block后加入BN用于稳定训练和加入ReLU激活用于增加网络表达能力。如图c的End ResBlock。通过以上改进,既能保证完整信息在网络中高效流动也能有效控制它。

3.2 Improved projection shortcut

在原始Resnet版本中,当输入x与F的输出维度不匹配时,就需要对x进行projection shortcut操作。如下图a所示,作者认为原来架构中步长为2的1x1 conv会丢失75%的重要信息,而留下的25%的信息也没有设计什么有意义的筛选标准,这会引入噪声和造成信息丢失,对主要通道流信息造成负面影响。

作者的改进方式是空间和通道适配分别用maxpooling和1x1卷积操作,而不是原版中用1x1卷积同时完成, 即对于spacial projection,使用stride=2的3×3 max pooling层,对于channel projection使用stride=1的1×1 conv,然后再跟BN。这样做的优点是:spacial projection将考虑来自特征映射的所有信息,并在下一步中选择激活度最高的元素,减少了信息的损失,后面的实验结果也证明了这点。

这样改进后的projection shortcut,在通道流程上可以看作是 软下采样(3x3 conv) 和 硬下采样(3x3 max pooling)两种方式的结合,是两种方式优势的互补。“硬采样”有助于分类(选择激活程度最高的元素),而“软采样”也有助于不丢失所有空间背景(因此,有助于更好的定位,因为元素之间可以进行过渡比较平滑)。同样这个改进并不增加模型复杂度和模型参数量,非常实惠。
在这里插入图片描述

3.3 Grouped building block

在原始Resnet版本中引入瓶颈构建块是出于实际考虑,在增加网络深度的同时保持合理的计算成本。在瓶颈残差块中,先使用1x1减低通道数,然后使用3x3卷积提取特征,最后用1x1卷积提升通道数恢复原来的信息量,这样做是为了控制计算量和参数量,但是3x3卷积是在空间学习中占用非常重要的角色,瓶颈残差块中却限制了其输入输出通道的数量。

作者就基于这一点提出了改进,保证了3x3卷积以最大的输入输出通道进行计算,为了保证不增加计算量和参数量,作者这里采用了分组卷积(grouped convolution)。作者叫它ResGroup block。作者基于Resnet-50为基准,根据每个stage的group设置数量分别给出了固定版本ResGroupFix-50和变化版本ResGroup-50结构,如下表所示:
在这里插入图片描述
通过引入ResGroup block这种方法,3x3卷积拥有最多的通道和更高的学习空间特征的能力。其引入的空间通道是原始Resnet的四倍,是ResNeXt的两倍。这对于提高性能非常重要,因为3x3 conv是负责学习空间特征的唯一组件,因此,为3x3 conv提供最大数量的通道可以提高检测空间特征的能力。在实验部分,作者展示了该方法的有效性。如下图所示:
在这里插入图片描述


4、实验

ImageNet上分类实验
在这里插入图片描述
可以看到,IResNet随着网络层数增加,结果都在持续变好,并且比原始Resnet版本和预激活版本都好。


IResnet和Resnet的训练曲线对比如下:
在这里插入图片描述


当网络深度达到302和404层的时候,Imagenet测试集表现如下:
在这里插入图片描述
和200层的效果比较,top1 error也是在随着网络层数增加在不断减小的。


CIFAR-10/100数据,网络上千层测试效果:
在这里插入图片描述
从表中可以看出,原始版的Resnet,当网络从164层增加到1001层时,已经表现出严重的网络退化现象,而IResnet表现随着层数增加,错误率在减小。当网络层数增加到2000层时,原始版Resnet直接收敛失败,表现出严重的优化问题,而IResnet版本则到了3002层才开始表现出下降(文中表示可能过拟合了)。所以可以得出,随着网络层数增加,IResnet的效果会更好,不会出现网络退化问题。


文献:
[1] He, K., Zhang, X., Ren, S., Sun, J.: Identity mappings in deep residual networks. In: ECCV (2016)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://xiahunao.cn/news/2978525.html

如若内容造成侵权/违法违规/事实不符,请联系瞎胡闹网进行投诉反馈,一经查实,立即删除!

相关文章

一文看懂电位器的接线方式

电位器是一种用于精确控制电路中电压、电流或信号幅度的电子元件,通过调整其内部电刷相对于电阻体的位置,可以连续改变其电阻值,进而实现对电路特性的微调或控制。根据电阻体材料、结构特点以及输出电压与输入电压(或电刷位移&…

食用油5G智能工厂数字孪生可视化平台,推进食品制造业数字化转型

食用油5G智能工厂数字孪生可视化平台,推进食品制造业数字化转型。在食用油产业中,数字化转型已成为提升生产效率、优化供应链管理、确保产品质量和满足消费者需求的关键。食用油5G智能工厂数字孪生可视化平台作为这一转型的重要工具,正在推动…

苍穹外卖day8(1)地址簿功能

文章目录 前言一、产品原型二、数据库设计三、接口设计、代码实现1. 新增地址2. 查询登录用户所有地址3. 查询默认地址4. 修改地址5. 根据id删除地址6. 根据id查询地址7. 设置默认地址 前言 这部分主要是对用户端中地址簿的一些增删改查操作,业务逻辑比较简单&…

Leetcode 118 杨辉三角

目录 一、问题描述二、示例及约束三、代码方法一:数学 四、总结 一、问题描述 给定一个非负整数 numRows,生成「杨辉三角」的前 numRows 行。   在「杨辉三角」中,每个数是它左上方和右上方的数的和。 二、示例及约束 示例 1&#xff1a…

图像数据做并行规约时,如何确定共享内存和网格的大小

做并行规约时,如何确定共享内存和网格的大小 1、为什么要确定共享内存和网格大小2、共享内存大小定义3、网格大小 注:1、这里记录使用笔记,不对cuda的名词做解释,没有详细数学原理和代码。 2、环境:cuda8.0&#xff0c…

农业四情监测系统解析

TH-Q2农业四情监测系统,作为现代农业信息技术与农业生产深度融合的产物,正以其独特的优势为农业生产提供着全面而精准的数据支持。随着科技的不断发展,这一系统将在未来展现出更为广阔的应用前景和无限的发展潜力。 首先,农业四情…

vuex和pinia转态管理工具介绍

一、介绍 相同点: 都是Vue.js的状态管理工具 不同点: 区别PiniaVuex支持Vue2和Vue3都支持Vue3写法需要额外配置Mutation只有 state, getter 和 action,无Mutationaction异步、Mutation 同步actionaction支持同步和异步action异步、Mutatio…

dayjs使用小结

npm i dayjs 使用方法: import dayjs from dayjs import isBetween from dayjs/plugin/isBetweenconst But_Click () > {console.log(当前时间, dayjs().format(YYYY-MM-DD HH:mm:ss))console.log(日期的基本转换)console.log(当前时间5年, dayjs().add(5, &qu…

详解工业网关在线探测功能及用途

工业网关专为工业物联网应用设计,可实现包括不同通讯协议之间的兼容和转换,提供软硬件加密保障工业数据安全传输,发挥强大算力实现数据边缘预处理,联动联调工业网络设备实现高效协同等。在线探测功能是佰马工业网关的一项重要功能…

【电控笔记5.6】Butterworth滤波器

Butterworth滤波器 需求:在增益交越频率拥有最小的相位滞后 波器经常被使用原因是 Butterworth 滤波器对于给定阶数,拥有最倾斜的衰减率而在伯德图又不会产生凸峰,同时在低频段的相位滞后小,因此本节将为各位介绍 Butterworth 低…

【运维自动化-配置平台】如何通过模板创建集群和模块

通过【每天掌握一个功能点】配置平台如何创建业务机拓扑(集群-模块)我们知道了直接创建集群和模块的操作方法,直接创建的方式适合各集群模块都相对独立的场景,那大量的、标准规范的集群模块如何快速创建呢,这里就引入了…

OceanMind海睿思-知信版本升级:增加多模态能力,强化知识应用体验

本期OceanMind海睿思-知信产品能力升级: 多模态知识构建,增加知识库的图片知识理解能力多模态知识问答,强化问答体验效果 1 多模态升级 市场上现有的主流基于大模型框架的智能知识库产品,在知识构建和知识应用时,仅…

云打印比线下打印店便宜吗?

随着云打印的火热,现在越来越多的同学都选择云打印服务了。但是仍有部分没有接触过云打印的同学,担心云打印会乱收费,一直坚持去线下打印店打印。那么云打印比线下打印店便宜吗?云打印是怎么收费的?今天小易就以易绘创…

vue+springboot+websocket实时聊天通讯功能

前言 在我的前一篇文章里 vuespringboot实现聊天功能 🎈🎈🎈🎈🎈🎈🎈 实现了最最基础的聊天功能,可以通过聊天互相给对方发送信息 🎈🎈🎈&…

爱普生发布一款16位MCU产品用于大电流LED驱动

精工爱普生发布一款内置Flash存储器的16位微控制器S1C17M13 该新品可以提供最大56mA的驱动电流用于驱动发光二极管(LED) 以往爱普生的微处理器大多继承了液晶驱动器电路,但近来随着工业自动化和家用设备使用7段LED显示的数量大幅增加,爱普生也推出了对应…

Rust-01 Hello Rust 10分钟上手编写第一个Rust程序 背景介绍 发展历史 环境配置 升级打怪的必经之路

背景介绍 Rust 是一种多范式、通用的编程语言,强调性能、类型安全和并发性。它通过一个称为“借用检查器”的机制在编译时追踪所有引用的对象生命周期,以强制实现内存安全,即确保所有引用都指向有效的内存,而不需要垃圾收集器。 …

【Git教程】(十五)二分法排错 — 概述及使用要求,执行过程及其实现(用二分法人工排错或自动排错),替代解决方案 ~

Git教程 二分法排错 1️⃣ 概述2️⃣ 使用要求3️⃣ 执行过程及其实现3.1 用二分法人工排错3.2 用二分法自动排错 4️⃣ 替代解决方案 在开发过程中,我们经常会突然遇到一个错误,是之前早期版本在成功通过测试时没有出现过的。这时候,时下较…

Linux thermal框架介绍

RK3568温控 cat /sys/class/thermal/thermal_zone0/temp cat /sys/class/thermal/thermal_zone1/temp cat /sys/class/thermal/cooling_device0/cur_state cat /sys/class/thermal/cooling_device1/cur_state cat /sys/class/thermal/cooling_device2/cur_state thermal_zone…

负氧离子监测系统适合景区使用吗

TH-FZ4负氧离子监测系统适合景区使用吗?答案是毫无疑问的,负氧离子监测系统是一种专门用于监测空气中负氧离子浓度的设备,结合了防腐木的结构优势和负氧离子监测技术,广泛应用于旅游景区、生态园区、森林公园等地方。这种系统通过…

Axure糖尿病健康管理APP原型 (知识科普/病友社区/远程医生会诊/购物商城/血糖监测/饮食监测)

作品概况 页面数量:共 50 页 源文件格式:rp格式,兼容 Axure RP 9/10,非程序软件无源代码 应用领域:医疗健康、慢病管理、糖尿病管理 作品特色 本作品为Axure糖尿病健康管理APP端原型图,设计规范内容清晰…