SENet
SENet
文章标题:Squeeze-and-Excitation Networks 作者:Jie Hu, Li Shen, Samuel Albanie, Gang Sun, Enhua Wu 发表时间:(CVPR 2018)
Squeeze-and-Excitation blocks
关注channel之间的关系,希望模型可以自动学习到不同channel特征的重要程度
$$ u_c=v_c*X=\sum_{s=1}^{C'}v_c^s*x^s $$$$ z_c=F_{sq}(u_c)=\frac{1}{H\times W}\sum_{i=1}^H\sum_{j=1}^Wu_c(i,j) $$输入:$X=[x^1,x^2,…,x^{C’}]$
输出:$U=[u_1,u_2,…,u_C]$
$v_c=[v_c^1,v_c^2,…,v_c^{C’}] $;$v_c^s$是一个二维空间内核,表示作用于 $X $的相应通道的 $v_c$的单个通道。
卷积核的集合:$V=[v_1,v_2,…,v_C]$
压缩(Squeeze):经过(全局平均池化)压缩操作后特征图被压缩为1×1×C向量;也可以采用更复杂的策略
卷积计算:参数量比较大
最大池化:可能用于检测等其他任务,输入的特征图是变化的,能量无法保持
$$ s=F_{ex}(z,W)=\sigma(g(z,W)) =\sigma(W_2\delta(W_1z)) $$$$ \tilde x_c = F_{scale}(u_c,s_c)=s_cu_c $$$\delta$:ReLU;$\sigma$:sigmoid激活,$W_1\in R^{\frac{C}{r}\times C}$:降维层;$W_2\in R^{C \times\frac{C}{r}}$:升维层
比直接用一个 Fully Connected 层的好处在于
1)具有更多的非线性,可以更好地拟合通道间复杂的相关性;
2)极大地减少了参数量和计算量
c可能很大,所以需要降维
scale操作:最后通过一个 Scale 的操作来将归一化后的权重加权到每个通道的特征上
|
|
SE-Inception-module | SE-ResNet-module |
Model and computational complexity
$$ \frac{2}{r}\sum_{s=1}^SN_s\cdot C_s^2 $$reduction为16.
$fc,[16,256]$:16为第一个全连接层的输出通道数;256为第二个全连接层的输出通道数;
$r$表示降维比;$S$:第几个stage;$C_s$ 表示输出通道的维度;$N_s $表示第$s$个stage的重复块的数量
Ablation study
不同Reduction ratio也进行了消融实验。
Squeeze Operator不同操作(如Max,Avg)也进行了消融实验。
Excitation Operator不同激活函数操作(如ReLU,Tanh,Sigmoid)也进行了消融实验。
SE block在不同stage也进行了消融实验。
Integration strategy进行消融实验。
SE block integration designs explored in the ablation studyEffect of different SE block integration strategies with ResNet-50 on ImageNetSE的三种变体:SE 单元在分支聚合之前应用产生的性能改进对其位置相当稳健
如果对 Addition 后主支上的特征进行重标定,由于在主干上存在 0~1 的 scale 操作,在网络较深 BP 优化时就会在靠近输入层容易出现梯度消散的情况,导致模型难以优化。
Effect of integrating SE blocks at the 3x3 convolutional layer of each residual branch in ResNet-50 on ImageNet另一种设计变体:将 SE 块移动到残差单元内,将其直接放在 3×3 卷积层之后。
以更少的参数实现了可比的分类精度
Role of SE blocks
Effect of Squeeze:强调了挤压操作的重要,作为对比,它添加了相同数量的参数,删除了池化操作,用具有相同通道维度的相应 $1\times1 $卷积替换了两个 FC 层,即 NoSqueeze,其中激励输出保持空间维度作为输入。
Role of Excitation
$$ SE\_5\_2:SE\_{stageID}\_{blockID} $$不同类别的分布在网络的早期层非常相似,表明特征通道的重要性很可能在早期由不同的类别共享
后面的层特征表现出更高水平的特异性
SE_5_2表现出一种有趣的趋向于饱和状态的趋势,大多数激活都接近于 1
SE_5_3 的网络末端(紧随其后的是分类器之前的全局池),在不同的类中出现了类似的模式
为网络提供重新校准方面不如之前的块重要,通过移除最后阶段的 SE 块,可以显着减少额外的参数计数,而性能只有边际损失
训练细节
每个瓶颈构建块的前$ 1\times1 $卷积通道的数量减半以降低模型的计算成本性能下降最小。
第一个$ 7 \times 7 $卷积层被三个连续的 $3 \times3 $卷积层替换。(Inception)
具有步长为2 的 $1 \times 1 $下采样卷积被替换为$ 3 \times 3$ 步长为2的 卷积以保留信息。
在分类层之前插入一个 dropout 层(dropout 比为 0.2)以减少过度拟合。
在训练期间使用了标签平滑正则化(。
在最后几个训练时期,所有 BN 层的参数都被冻结,以确保训练和测试之间的一致性。
使用 8 个服务器(64 个 GPU)并行进行训练,以实现大批量(2048 个)。初始学习率设置为 1.0
拓展阅读
CV27 Momenta研发总监 孙刚 Squeeze and Excitation Networks上
CV27 Momenta研发总监 孙刚 Squeeze and Excitation Networks下
SKNet
文章标题:Selective Kernel Networks 作者:Xiang Li, Wenhai Wang, Xiaolin Hu, Jian Yang 发表时间:(CVPR 2019)
Selective Kernel Convolution
用multiple scale feature汇总的information来channel-wise地指导如何分配侧重使用哪个kernel的表征
一种非线性方法来聚合来自多个内核的信息,以实现神经元的自适应感受野大小
$$ U=\tilde U+\hat U\\ s_c=F_{gp}(U_c)=\frac{1}{H\times W}\sum_{i=1}^H\sum_{j=1}^WU_c(i,j)\\ z=F_{fc}(s)=\delta(B(Ws)) 降维处理\\ $$Split:生成具有不同内核大小的多条路径,这些路径对应于不同感受野(RF,receptive field) 大小的神经元
$X\in R^{H’\times W’\times C’} $
$\tilde F:X\to \tilde U \in R^{H\times W\times C} $ kernel size $3\times3$
$\hat F:X\to \hat U \in R^{H\times W\times C}$ kernel size $5\times5$:使用空洞卷积$3\times3$,空洞系数为2。
Fuse:聚合来自多个路径的信息,以获得选择权重的全局和综合表示。
$s\in R^c$;$\delta$:ReLU;$z\in R^{d\times1}$;$W\in R^{d\times C}$:批量归一化;
$d=max(C/r,L)$ L:d的最小值,本文设置32
Select:根据选择权重聚合不同大小内核的特征图
$$ a_c=\frac{e^{A_cz}}{e^{A_cz}+e^{B_cz}}\\ b_c=\frac{e^{B_cz}}{e^{A_cz}+e^{B_cz}}\\ $$$$ V_c=a_c\cdot\tilde U_c + b_c\cdot \hat U_c\\\ a_c+b_c=1\\ V_c\in R^{H\times W} $$ Selective Kernel Convolution三分支$SK[M,G,r]\to SK[2,32,16]$
M:确定要聚合的不同内核的选择数量
G:控制每条路径的基数的组号
r:reduction ratio
|
|
Network Architecture
Ablation Studies
The dilation D and group number
The dilation D and group numberCombination of different kernels
The dilation D and group numberk3 表示 3x3 conv,k5 表示 3x3 conv with 2 dilated,k7 表示 3x3 conv with 3 dilated。
Dilated 是一种在不改变参数数量的情况下扩大感受区域的方法,主要用于分割。
(1) 当路径 M 的数量增加时,识别误差通常会减小。
(2) 无论 M = 2 还是 3,基于 SK 注意力的多路径聚合总是比简单聚合方法(朴素基线模型)实现更低的 top-1 误差。
(3) 使用 SK attention,模型从 M = 2 到 M = 3 的性能增益是微不足道的(top-1 error 从 20.79% 下降到 20.76%)。为了更好地权衡性能和效率,M = 2 是首选