文章目录
前言
又是一个周六,开始一如既往的周六深度学习论文阅读,今天阅读的论文是图像分类模型SENet,这一模型之前有读过,但是忘得差不多了,而且之前在做场景文字检测时有用到:将这一模型的SE Block集成到特征提取网络中,取得不错的效果。
论文标题:Squeeze-and-Excitation Networks
摘要(Abstract)
卷积神经网络的核心是卷积算子,它能够使网络从每一层的局部感受野中通过使用融合空间和通道信息的方式构建出有用的信息。之前的研究主要集中在通过分层特征来提升空间编码质量,进而达到增强CNN表达能力的目的。本论文则主要集中在通道关系上,提出了一种新颖的架构单元 - SE模块(Squeeze- and -Excitation), 它通过对通道间依赖关系建模来重新修正基于通道的特征响应。多个SE模块可以堆叠在一起构成SENet的网络架构,它的泛化性能很好,这在不同数据库中都被验证。论文证实了SE模块能够显著提升已有最优的CNNs的性能,当然也带来了少量额外的计算量成本。模型和源码可以从如下链接获得:
https://github.com/hujie-frank/SENet
# 1. 介绍(Introduction) 计算机视觉研究的中心主题是不断探索更加强健的表达能力:对于给定的任务,从图像中捕捉到最显著的特征属性,进而提升性能。
该论文主要集中于探索通道间的关系,提出了SE模块,通过对卷积特征通道间依赖关系建模来提升网络的表达能力;提出一种机制:允许网络进行特征矫正,通过使用全局信息来选择强化有用特征,抑制作用不大的特征。
Fig.1展示了SE模块的构造。对于任一变换 F t r F_{tr} Ftr能够将输入 X X X映射为特征图 U U U,这里 U ∈ R H × W × C U\in R^{H\times W\times C} U∈RH×W×C, 比如,对于卷积,我们可以构造一个相应的SE模块来进行特征矫正。特征图 U U U首先被 s q u e e z e squeeze squeeze操作( F s q ( ⋅ ) F_{sq}(\cdot ) Fsq(⋅))处理,即对特征图的空间维度-高度( H H H)和宽度( W W W)整合输出通道描述符( H × W × C → 1 × 1 × C H\times W\times C \rightarrow 1\times 1\times C H×W×C→1×1×C, 这里有些不明白,具体整合方法是什么?所有空间维度数据累加吗?)。这个描述符的作用是产生一个嵌入了基于通道的特征响应的全局分布信息,并允许网络所有层使用这个具有全局感受野的信息。 s q u e e z e squeeze squeeze操作后紧跟着 e x c i t i a t i o n excitiation excitiation操作,它将上一步的通道描述符作为输入,产生一个权重集合,通道描述符每一通道都有一个权重值,这个权重值根据一种叫做 s e l f g a t i n g self gating selfgating的机制来计算。将这些权重应用于特征图 U U U来生成SE模块的输出,这一输出可以作为网络后续层的输入。(个人不理解,为什么要有 F t r F_{tr} Ftr这一变换过程,直接对输入特征图 X X X 进行SE操作有什么问题吗?)
可以通过简单的堆叠SE 模块来构建一个SE网络(SENet)。更甚,可以用SE模块来替换原始网络架构中一定深度范围内已有的模块。虽然构造模块的模板是通用的,但是不同深度有不同作用。在前面几层,SE模块能够以一种无关类别的方式来提取有用信息,增强共享的低级的表达能力(低级特征,比如边缘)。在后面几层,SE模块变得逐渐特化,以一种特定类别方式响应不同输入。因此,通过SE模块来进行特征矫正的益处能够在整个网络被累积。
设计和开发一个新的CNN架构是一项困难的工程任务,尤其需要对很多新的超参数和网络层配置进行选择。与之相比,SE模块的架构是简单的,可以直接替换已有网络模型中的模块,带来性能上的提升。当然,SE模块也增加了少量的模型复杂度和计算负担。
论文开发了几个SENets,在ImageNet数据集进行验证,获得了更好的结果,证实了论文模块的有效性,并且不是限定于特定数据集或任务。使用SENet, 论文获得了ILSVRC2017分类比赛的第一名,论文最好模型在测试集中实现了 2.251 % 2.251\% 2.251% top-5错误率。和前一年最好成绩相比,大约提升了 25 % 25\%