Squeeze-and-Excitation Networks(SENet) 学习笔记

1. 简介

作者提出了一个SE块的概念,它是根据channel之间的相关性来进行显式建模,从而实现自适应地channel-wise上的特征响应,把重要的特征进行强化、不重要的特征进行抑制来提升准确率。

2. 网络结构

在这里插入图片描述

F t r F_tr Ftr是传统的卷积结构,输入为 H ′ × W ′ × C ′ H'\times W'\times C' H×W×C X X X,和 H × W × C H\times W\times C H×W×C U U U

SENet增加的是 U U U后面的部分:首先对 U U U进行一个Global Average Pooling,即图中的 F s q ( ⋅ ) F_sq(·) Fsq(),作者称之为Squeeze,得到一个 1 × 1 × C 1 \times 1 \times C 1×1×C的数据。

接着是两个全连接层,即图中的 F e x ( ⋅ , W ) F_{ex}(·,W) Fex(,W),作者称之为Excitation。

最后用sigmoid进行归一化,把这个值作为scale乘到 U U U C C C 个通道上,作为下一级的输入。

下面来看一些细节。

2.2.1 F t r F_tr Ftr

u c = v c ∗ X = ∑ s = 1 C ′ v c s ∗ x s u_c=v_c*X=\sum_{s=1}^{C'}{v_c^s*x^s} uc=vcX=s=1Cvcsxs

很简单的一个传统卷积。

2.2.2 Squeeze

z c = F s q ( u c ) = 1 H × W ∑ i = 1 H ∑ j = 1 W u c ( i , j ) z_c=F_{sq}(u_c)=\frac{1}{H \times W} \sum_{i=1}^H \sum_{j=1}^W{u_c(i,j)} zc=Fsq(uc)=H×W1i=1Hj=1Wuc(i,j)

就是一个简单的global average pooling,将所有点的信息都平均成了一个值。这一步的意义在于,得到的 1 × 1 × C 1 \times 1 \times C 1×1×C的数据代表着 C C C个feature map的数值分布情况(scale),是一个全局信息。

2.2.3 Excitation

s = F e x z , W = σ ( g ( z , W ) ) = σ ( W 2 δ ( W 1 z ) ) s=F_{ex}{z,W}=\sigma(g(z,W))=\sigma(W_2\delta(W_1z)) s=Fexz,W=σ(g(z,W))=σ(W2δ(W1z))

W 1 W_1 W1 W 2 W_2 W2为两个全连接, W 1 W_1 W1的shape为 C r × C \frac{C}{r}\times C rC×C r r r是一个缩放参数,作者经过多次试验取了16,经过 W 1 z W_1z W1z这样一个全连接层操作,得到一个 1 × 1 × C r 1 \times 1 \times \frac{C}{r} 1×1×rC的数据,把 C C C维降到了 C r \frac{C}{r} rC维,并经过一个ReLU函数。

同理,经过一个shape为 C × C r C \times \frac{C}{r} C×rC W 2 W_2 W2之后,恢复为一个 1 × 1 × C 1 \times 1 \times C 1×1×C的数据,并经过一个sigmoid函数。

  • 为什么要加两个全连接层?

    是为了利用通道间的相关性来训练出真正的scale。前面的squeeze输出都是基于某个channel的feature map,而真正的scale应该基于全部的数据集,需要融合各个通道的feature map信息。

    这个s其实是本文的核心,它是用来刻画tensor U中C个feature map的权重。而且这个权重是通过前面这些全连接层和非线性层学习得到的,因此可以end-to-end训练。

2.2.4 F s c a l e ( ⋅ , ⋅ ) F_{scale}(·,·) Fscale(,)

x ~ = F s c a l e ( u c , s c ) = s c u c \tilde{x}=F_{scale}(u_c,s_c)=s_cu_c x~=Fscale(uc,sc)=scuc

u c u_c uc是一个二维矩阵, s c s_c sc是一个权重,把 u c u_c uc中的每个值都乘以 s c s_c sc得到带权重的输出。

3. 将SENet插入到其他网络中

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值