前言

深度残差金字塔网络是CVPR2017年的一篇文章,由韩国科学技术院的Dongyoon Han, Jiwhan Kim发表,改善了ResNet。其改用加法金字塔来逐步增加维度,还用了零填充直连的恒等映射,网络更宽,准确度更高,超过了DenseNet,泛化能力更强。论文原文见附录。

介绍

近年来,深度卷积神经网络在图像分类任务中表现出了卓越的性能。通常,深度神经网络结构是由大量的卷积层堆叠而成,并且使用池化不断的减小图片的分辨率。同时,特征映射维度在下采样的地方急剧增长,这对于确保性能是必要的,因为它增加了高级属性的多样性,这也适用于残差网络,并且与其性能密切相关。在这篇论文中,作者提出并不是网络在执行下采样的单元处急剧增加特征图的尺寸,而是逐渐的增加所有单元的特征尺寸,以尽可能多地涉及位置。我们对这种网络设计进行了深入讨论,证明了其是提高泛化能力的有效手段。此外,论文提供了一种新的残差单元,能够通过使用本文的新网络架构进一步提高分类精度。在CIFAR-10,CIFAR-100和ImageNet数据集的实验证明,和原始的ResNet相比,我们的网络具有更高的精度和泛化能力。

网络结构

  • 金字塔(瓶颈)残差单元。

    可以看到相对于传统的残差模块,金字塔残差单元的各个单元的维度逐渐增加,直到出现下采样的剩余单元。
  • 深度残差金字塔网络结构。
    深度残差金字塔网络结构如Table1所示:


其中α\alphaα代表扩展因子,NnN_nNn​代表一个group中有多少个block,下采样在conv3_1conv4_1处进行,步长为2

  • 深度残差金字塔网络通道变化公式
    金字塔网络每一层的通道数和网络深度有关,论文提到了2种通道增长方式:


其中N=N2+N3+N4N=N_2+N_3+N_4N=N2​+N3​+N4​,式子(2)为加法金字塔,式子(3)为乘法金字塔,α\alphaα是超参数扩展因子,kkk是当前网络的层数,控制超参数可使金字塔更宽或更细,但高度不变。两者方式的比较如Figure2所示:


Figure2(a)为加法的PyramidNet,Figure2(b)为乘法的PyramidNet,Figure2©是加法金字塔网络和乘法金字塔网络的对比。加法金字塔网络的特征映射维数呈线性增长,而乘法网络的特征映射维数呈几何急剧增长。乘法金字塔网络中输入端层的维数缓慢增加,输出端层的维数急剧增加,这个过程类似于VGG和ResNet等原始的深度网络架构。

  • 加法金字塔网络和乘法金字塔网络的对比。
    对比结果如Figure7所示:


这个实验指出,当参数个数较少时,加法和乘法金字塔网络的性能基本相同,因为这两种网络架构没有显著的结构差异。而随着参数数量的增加,它们开始在特征图维度配置方面显示出更显著的差异,可以看出加法金字塔表现更好。由于加法的特征映射维数呈线性增长,与乘法相比,输入附近层的特征映射维数更大,输出附近层的特征映射维数更小。所以增加输入端附近层的模型容量将比使用传统的特征映射维数乘法缩放方法带来更好的性能改进。

金字塔网络其他Trick

  • 零填充的直连恒等映射。
    零填充是为了保证金字塔的形状。具体方法如Figure5所示,Figure5 (a)是带有零填充恒等映射的直连残差单元,Figure5(b)是对Figure5(a)的展开表示,它构成了一个直连和普通网络混合的残差网络。Table2表明(b)这种零填充直连恒等映射精度最好。

  • BN层和激活层怎么放?
    不是很好解释,论文实验了在去掉某些BN和ReLU后的不同典型结构的精度,如Figure6所示:

    这里解释一下,(a)表示原始的预激活ResNets,(b)表示去除第一个ReLU的预激活ResNets, (c)表示在预激活ResNets的最后一个卷积层之后重新分配一个BN层,(d)表示对预激活ResNets去除第一个ReLU,在最后一个卷积层之后重新分配一个BN层。Table3展示了对上诉不同方法的实验结果,使用Figure6中的结构d可以提高性能。因此,只要使用适当数量的ReLUs来保证特征空间流形的非线性,就可以去除剩余的ReLUs来提高网络性能。

实验结果

实验结果如Table4,5所示,在CIFAR100效果很好超过了80%,一般比较好的都在80%左右,而ResNet才不到75%。精度是当之无愧的SOTA。

后记

PyramidNet效果很好,但实际用的不是特别多,α\alphaα设的大的时候网络会很宽,而PoolingPoolingPooling为了缩小尺寸,卷积计算量减少,有利于实用。其实用的不多基本是受限于计算资源,我相信硬件的进一步发展这个网络仍有机会大放异彩。

附录

  • 论文原文:https://arxiv.org/abs/1610.02915
  • 代码实现:https://github.com/jhkim89/PyramidNet-caffe
  • https://zhuanlan.zhihu.com/p/68413130

欢迎关注GiantPandaCV, 在这里你将看到独家的深度学习分享,坚持原创,每天分享我们学习到的新鲜知识。( • ̀ω•́ )✧

有对文章相关的问题,或者想要加入交流群,欢迎添加BBuf微信:

卷积神经网络学习路线(十三)| CVPR2017 Deep Pyramidal Residual Networks相关推荐

  1. 卷积神经网络学习路线(十九) | 旷世科技 2017 ShuffleNetV1

    前言 这是卷积神经网络学习路线的第19篇文章,主要为大家介绍一下旷世科技在2017年发表的ShuffleNet V1,和MobileNet V1/V2一样,也是一个轻量级的卷积神经网络,专用于计算力受 ...

  2. 卷积神经网络学习路线(二十一) | 旷世科技 ECCV 2018 ShuffleNet V2

    前言 这个系列已经更新了20多篇了,感谢一直以来大家的支持和等待.前面已经介绍过MobileNet V1,MobileNet V2,MobileNet V3,ShuffleNet V1这几个针对移动端 ...

  3. 卷积神经网络学习路线(十七) | Google CVPR 2017 MobileNet V1

    前言 这是卷积神经网络的第十七篇文章,Google 2017年发表的MobileNet V1,其核心思想就是提出了深度可分离卷积来代替标准卷积,将标准卷积分成Depthwise+Pointwise两部 ...

  4. 卷积神经网络学习路线(五)| 卷积神经网络参数设置,提高泛化能力?

    前言 这是卷积神经网络学习路线的第五篇文章,主要为大家介绍一下卷积神经网络的参数设置,调参技巧以及被广泛应用在了哪些领域,希望可以帮助到大家. 卷积神经网络的参数设置 这个举个例子来说是最好的,因为直 ...

  5. 2020-用多通道卷积神经网络学习单类特征用于人脸表现攻击检测

    2020年,Anjith George等人,期刊:TIFS,CCFA刊,Learning One Class Representations for Face Presentation Attack ...

  6. ​厦大等高校研究人员利用卷积神经网络学习脑电地形图表示进行分类

    脑电图(EEG)地形图表征(Electroencephalography topographical  representation, ETR)可以监测区域大脑活动,是一种可以用于探索皮层机制和联系的 ...

  7. ​利用卷积神经网络学习脑电地形图表示进行分类

    点击上面"脑机接口社区"关注我们 更多技术干货第一时间送达 脑电图(EEG)地形图表征(Electroencephalography topographical  represen ...

  8. 卷积神经网络学习指南_卷积神经网络的直观指南

    卷积神经网络学习指南 by Daphne Cornelisse 达芙妮·康妮莉丝(Daphne Cornelisse) 卷积神经网络的直观指南 (An intuitive guide to Convo ...

  9. 卷积神经网络学习心得

    卷积神经网络学习心得 文章目录 卷积神经网络学习心得 一.卷积神经网络 1.卷积 2.池化 3.激活函数 3.全连接层 3.训练过程 二.传播过程 1.卷积神经网络的前向传播过程 1.1卷积层的前向传 ...

  10. 卷积神经网络学习二:tinny_cnn程序试运行

    卷积神经网络学习二:tinny_cnn程序试运行 一.下载tiny_cnn的资源,网址:https://github.com/tiny-dnn/tiny-dnn 二.解压文件 其中data文件夹中存放 ...

最新文章

  1. 利用Spring-Boot解析Excel、用Java分析Excel、告别手动输入用程序读取Excel
  2. WPF中自动增加行(动画)的TextBox
  3. JFinal(一)JFinalConfig
  4. LINUX下载并编译sqlite
  5. SWF怎么转换AVI视频格式呢?
  6. 归并算法 merge
  7. 数据库设计-简化字典表
  8. 2021年中国化妆品发展现状及进出口状况分析:消费升级局面下,化妆品市场依旧景气 [图]
  9. SQL 拼接多个字段的值一个字段多条记录的拼接
  10. 使用java实现 Excel在线预览
  11. 数据库|ALTER命令
  12. 关于物流管理的软件测试项目经验,物流软件自动化测试用例管理和执行调度的设计与实现...
  13. 如何在Android上玩经典复古游戏
  14. Java socket服务端
  15. oracle 基本语法大全
  16. 软件工程 wc.exe 代码统计作业
  17. 2016年8月20日 星期六 --出埃及记 Exodus 16:21
  18. J-框架-springCloud-Netfilx-day01
  19. 智能手表打破“寡头效应”,国产品牌能否再创手机神话?
  20. 在线溶氧仪 连接计算机,污水在线溶氧仪

热门文章

  1. 懒人神器:svg-sprite-loader实现自己的Icon组件
  2. ECCV2020:论文解读《Synthesize then Compare: Detecting Failures and Anomalies for Semantic Segmentation》
  3. 嵌入式常用裸机编程框架
  4. 基于Mono.Cecil的静态注入
  5. miui修改Android,修改 MIUI「快捷开关」布局
  6. PDF转Markdown文件
  7. 数据导入与预处理-第6章-04pandas综合案例
  8. 职场新人注意事项:抖包袱可以,抖机灵不要
  9. 计算机数据网络延迟,影响网络速度的两个重要因素:网络带宽和网络延迟!
  10. PHP中smart原则,SMART原则的五大原则是什么