作者提出为了增强网络的表达能力,现有的工作显示了加强空间编码的作用。在这篇论文里面,作者重点关注channel上的信息,提出了“Squeeze-and-Excitation"(SE)block,实际上就是显式的让网络关注channel之间的信息 (adaptively recalibrates channel-wise feature responsesby explicitly modelling interdependencies between channels.)。SEnets取得了ILSVRC2017的第一名, top-5 error 2.251%

之前的一些架构设计关注空间依赖

Inception architectures: embedding multi-scale processes in its modules

Resnet, stack hourglass

spatial attention: Spatial transformer networks

作者的设计思路:

we investigate a different

aspect of architectural design - the channel relationship


Our goal is to improve the representational power of a network by explicitly

modelling the interdependencies between the channels of its

convolutional features. To achieve this, we propose a mechanism that allows the network to perform feature recalibration, through which it can learn to use global information

to selectively emphasise informative features and suppress

less useful ones.
作者希望能够对卷积特征进行recalibration,根据后文我的理解就是对channel进行加权了。

相关工作

网络结构:

VGGNets, Inception models, BN, Resnet, Densenet, Dual path network

其他方式:Grouped convolution, Multi-branch convolution, Cross-channel correlations

This approach reflects an assumption that channel relationships can

be formulated as a composition of instance-agnostic functions with local receptive fields.


Attention, gating mechanisms

SE block

\({F_{tr}}:X \in R{^{W' \times H' \times C'}},{\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} U \in {\kern 1pt} {\kern 1pt} {R^{W \times H \times C}}\)

设\(V = [v_1, v_2, ..., v_C]\)表示学习到的filter kernel, \(v_c\)表示第c个filter的参数,那么\(F_{tr}\)的输出\(U = [u_1,u_2,...,u_C]\):

\[{u_c} = {\rm{ }}{{\rm{v}}_c} * X = \sum\limits_{s = 1}^{C'} {v_c^s} * {x^s}
\]

\(v_c^s\)是一个channel的kernel,一个新产生的channel是原有所有channel与相应的filter kernel卷积的和。channel间的关系隐式的包含在\(v_c\)中,但是这些信息和空间相关性纠缠在一起了,作者的目标就是让网络更加关注有用的信息。分成了Squeeze和Excitation两步来完成目的。

Squeeze

现有网络的问题:由于卷积实在local receptive field做的,因此每个卷积单元只能关注这个field内的空间信息。

为了减轻这个问题,提出了Squeeze操作将全局的空间信息编码到channel descriptor中,具体而言是通过global average pooling操作完成的。

\[{z_c} = {F_{sq}}({u_c}) = {1 \over {W \times H}}\sum\limits_{i = 1}^W {\sum\limits_{j = 1}^H {{u_c}(i,j)} }
\]

就是求每个channel的均值,作为全局的描述。

Excitation: Adaptive Recalibration

为了利用Squeeze得到的信息,提出了第二个op,这个op需要满足2个要求:一个是足够灵活,需要能够学习channel间的非线性关系,另一个就是能够学习non-mutually-exclusive关系,这个词我的理解是非独占性,可能是说多个channnel之间会有各种各样的关系吧。

\[s = {F_{ex}}(z,W) = \sigma (g(z,W)) = \sigma ({W_2}\delta ({W_1}z))
\]

$\delta \(是ReLu,\){W_1} \in {R^{{C \over r} \times C}}\(,\){W_2} \in {R^{C \times {C \over r}}}\(,\)W_1\(是bottleneck,降低channel数,\)W_2\(是增加channel数,\)\gamma\(设置为16。最终再将\)U\(用\)s$来scale,其实也就是加权了。这样就得到了一个block的输出。

\[{x_c} = {F_{scale}}({u_c},{s_c}) = {s_c} \cdot {u_c}
\]

\(F_{scale}\)表示feature map \(u_c \in R^{W \times H}\)和\(s_c\)的channel-wise乘法

The activations act as channel weights

adapted to the input-specific descriptor z. In this regard,

SE blocks intrinsically introduce dynamics conditioned on

the input, helping to boost feature discriminability

  1. Example



    SE block可以很方便的加到其他网络结构上。
  2. Mxnet code
squeeze = mx.sym.Pooling(data=bn3, global_pool=True, kernel=(7, 7), pool_type='avg', name=name + '_squeeze')
squeeze = mx.symbol.Flatten(data=squeeze, name=name + '_flatten')
excitation = mx.symbol.FullyConnected(data=squeeze, num_hidden=int(num_filter*ratio), name=name + '_excitation1')#bottleneck
excitation = mx.sym.Activation(data=excitation, act_type='relu', name=name + '_excitation1_relu')
excitation = mx.symbol.FullyConnected(data=excitation, num_hidden=num_filter, name=name + '_excitation2')
excitation = mx.sym.Activation(data=excitation, act_type='sigmoid', name=name + '_excitation2_sigmoid')
bn3 = mx.symbol.broadcast_mul(bn3, mx.symbol.reshape(data=excitation, shape=(-1, num_filter, 1, 1)))
  1. 网络结构

  2. Experiments

参考文献:

[1] Hu, Jie, Li Shen, and Gang Sun. "Squeeze-and-excitation networks." arXiv preprint arXiv:1709.01507 (2017).

欢迎关注公众号:vision_home 共同学习,不定期分享论文和资源

论文笔记-Squeeze-and-Excitation Networks的更多相关文章

  1. 论文笔记之:Action-Decision Networks for Visual Tracking with Deep Reinforcement Learning

    论文笔记之:Action-Decision Networks for Visual Tracking with Deep Reinforcement Learning  2017-06-06  21: ...

  2. 论文笔记(1)-Dropout-Improving neural networks by preventing co-adaptation of feature detectors

    Improving neural networks by preventing co-adaptation of feature detectors 是Hinton在2012年6月份发表的,从这篇文章 ...

  3. 论文笔记:Diffusion-Convolutional Neural Networks (传播-卷积神经网络)

    Diffusion-Convolutional Neural Networks (传播-卷积神经网络)2018-04-09 21:59:02 1. Abstract: 我们提出传播-卷积神经网络(DC ...

  4. 【论文笔记】Progressive Neural Networks 渐进式神经网络

    Progressive NN Progressive NN是第一篇我看到的deepmind做这个问题的.思路就是说我不能忘记第一个任务的网络,同时又能使用第一个任务的网络来做第二个任务. 为了不忘记之 ...

  5. 论文笔记——Factorized Convolutional Neural Networks

    1. 论文思想 将3D卷积分解为spatial convolution in each channel and linear projection across channels. (spatial ...

  6. 论文笔记—Flattened convolution neural networks for feedforward acceleration

    1. 论文思想 一维滤过器.将三维卷积分解成三个一维卷积.convolution across channels(lateral), vertical and horizontal direction ...

  7. 论文笔记:Fully-Convolutional Siamese Networks for Object Tracking

    Fully-Convolutional Siamese Networks for Object Tracking 本文作者提出一个全卷积Siamese跟踪网络,该网络有两个分支,一个是上一帧的目标,一 ...

  8. 深度学习论文笔记:Deep Residual Networks with Dynamically Weighted Wavelet Coefficients for Fault Diagnosis of Planetary Gearboxes

    这篇文章将深度学习算法应用于机械故障诊断,采用了“小波包分解+深度残差网络(ResNet)”的思路,将机械振动信号按照故障类型进行分类. 文章的核心创新点:复杂旋转机械系统的振动信号包含着很多不同频率 ...

  9. 论文笔记《Fully Convolutional Networks for Semantic Segmentation》

    一.Abstract 提出了一种end-to-end的做semantic segmentation的方法,也就是FCN,是我个人觉得非常厉害的一个方法. 二.亮点 1.提出了全卷积网络的概念,将Ale ...

随机推荐

  1. hdu 2669 Romantic 扩展欧几里得

    Now tell you two nonnegative integer a and b. Find the nonnegative integer X and integer Y to satisf ...

  2. linux用户、组、权限问题

    用户.组.权限一.权限:r, w, x1.文件权限:      r:可读,可以使用类似cat等命令查看文件内容:      w:可写,可以编辑或删除此文件:      x: 可执行,eXacutabl ...

  3. Retrofit网络请求库应用02——json解析

    PS:上一篇写了Retrofit网络请求库的简单使用,仅仅是获取百度的源码,来证明连接成功,这篇讲解如何解析JSON数据,该框架不再是我们之前自己写的那样用JsonArray等来解析,这些东西,我们都 ...

  4. webpack 图片的打包

    1. 在img文件夹下随便找一个小一点的图片放进去. 2.修改entry.js require('../css/index.css'); var demo1 = require('../js/demo ...

  5. Java代码操作SVN

    package com.leadbank.oprPlatform.util;import org.slf4j.Logger;import org.slf4j.LoggerFactory;import ...

  6. nginx防恶意域名解析

    今天无意间查看访问日志发现一个fhxywh.com的域名居然解析到了我的服务器,也就是说通过这个域名也能访问我的博客,这个就是赤裸裸的恶意域名解析了. 这个危害非常大,不仅会影响用户,而且不利于SEO ...

  7. NYOJ127 星际之门(一)(最小生成数的个数+高速幂)

    题目描写叙述: http://acm.nyist.net/JudgeOnline/problem.php?pid=127 能够证明.修建N-1条虫洞就能够把这N个星系连结起来. 如今.问题来了.皇帝想 ...

  8. 新ITC提交APP常见问题与解决方法(Icon Alpha,Build version,AppIcon120x120)(2014-11-17)

    1)ICON无法上传.提示图片透明(有Alpha通道) 苹果如今不接受png里的Alpha了.提交的图标带有Alpha通道就提示: watermark/2/text/aHR0cDovL2Jsb2cuY ...

  9. 5. Effective Java 第三版——使用依赖注入取代硬连接资源

    Tips <Effective Java, Third Edition>一书英文版已经出版,这本书的第二版想必很多人都读过,号称Java四大名著之一,不过第二版2009年出版,到现在已经将 ...

  10. 基于低代码平台(Low Code Platform)开发中小企业信息化项目

    前言:中小企业信息化需求强烈,对于开发中小企业信息化项目的软件工作和程序员来说,如何根据中小企业的特点,快速理解其信息化项目的需求并及时交付项目,是一个值得关注和研讨的话题. 最近几年来,随着全球经济 ...