论文地址:https://arxiv.org/pdf/2003.00214.pdf
代码地址:Tangshitao/CENet
一、动机——解决 inhibited channels
The lottery hypothesis (Frankle & Carbin, 2018) 认为:若CNN模型的参数太多,网络的feature map中将存在很多不重要的 (inhibited) 通道——其特征值 extremely small.
作者以 batch normalization 算法为例:
(1) 对网络某一层的输出做归一化处理: x ˉ n c i j = ( x n c i j − μ k ) / σ k \bar{x}_{ncij} = (x_{ncij}-\mu_{k}) / \sigma_{k} xˉncij=(xncij−μk)/σk
(2) 变换重构(引入可学习参数 γ \gamma γ 和 β \beta β ): x ~ n c i j = γ c x ˉ n c i j + β c \tilde{x}_{ncij} = \gamma_{c}\bar{x}_{ncij}+\beta_{c} x~ncij=γcxˉncij+βc
其源码实现:
# https://blog.csdn.net/hjimce/article/details/50866313
m = K.mean(X, axis=-1, keepdims=True)#计算均值
std = K.std(X, axis=-1, keepdims=True)#计算标准差
X_normed = (X - m) / (std + self.epsilon)#归一化
out = self.gamma * X_normed + self.beta#重构变换
产生inhibited channels的 条件 :
对于随机变量 z ∼ N ( 0 , 1 ) z\sim N(0, 1) z∼N(0,1) 且 y = m a x { 0 , γ c z + β c } y=max\{0, \gamma_{c}z + \beta_{c}\} y=max{0,γcz+βc} ,当且仅当 β c ⩽ 0 , γ c → 0 \beta_{c} \leqslant 0, \gamma_{c} \rightarrow 0 βc⩽0,γc→0 时,有 Ξ z [ y ] = 0 , Ξ z [ y 2 ] = 0 \Xi_{z}[y] = 0, \Xi_{z}[y^{2}] = 0 Ξz[y]=0,Ξz[y2]=0 .
由 条件 可知,normalization操作与激活函数(如ReLU)同时作用,便会产生inhibited channels。因此作者提出在归一化与激活函数之间添加一个Channel Equilibrium层(简称为CE层),以期望每一层网络中的每个通道都能平等地参与到特征表达中。
对于常规的训练网络(如下图所示),经过BN层和激活函数后存在很多的 inhibited channels。而在BN层后添加CE层、在激活函数前添加CE层能显著减少inhibited channels的占比。
二、核心——Channel Equilibrium模块
1、CE函数
目的: 让每一个通道都尽可能最大化地参与到特征表达中。
重写normalization部分 的重构公式:
x
~
n
c
i
j
=
γ
c
x
ˉ
n
c
i
j
+
β
c
\tilde{x}_{ncij} = \gamma_{c}\bar{x}_{ncij}+\beta_{c}
x~ncij=γcxˉncij+βc
得到CE模块的公式:
p
n
i
j
=
D
n
−
1
2
(
D
i
a
g
(
γ
)
x
ˉ
n
i
j
+
β
)
D
n
=
λ
Σ
+
(
1
−
λ
)
D
i
a
g
(
ν
n
)
ν
n
=
f
(
σ
~
n
2
)
p_{nij} = D_{n}^{-\frac{1}{2}}(Diag(\gamma)\bar{x}_{nij} + \beta) \\ D_n = \lambda \Sigma + (1-\lambda )Diag(\nu _n) \\ \nu _n = f(\tilde{\sigma}_n^2)
pnij=Dn−21(Diag(γ)xˉnij+β)Dn=λΣ+(1−λ)Diag(νn)νn=f(σ~n2)
其中:
(1) γ ∈ R C × 1 , β ∈ R C × 1 \gamma \in \mathbb{R}^{C \times 1}, \beta\in \mathbb{R}^{C \times 1} γ∈RC×1,β∈RC×1;
(2) D i a g ( γ ) Diag(\gamma) Diag(γ) :使用 γ 作为对角元素的对角矩阵;
(3) x ˉ n i j \bar{x}_{nij} xˉnij :第n个样本在位置 ( i , j ) (i, j) (i,j) 下的所有通道构成的向量;
(4) D n − 1 2 D_{n}^{-\frac{1}{2}} Dn−21 :最主要的操作——decorrelation operator;
(5) ∑ \sum ∑ : mini-batch中归一化之后的每个样本之间的协方差矩阵;
(6) ν n ∈ R C × 1 \nu _n \in \mathbb{R}^{C \times 1} νn∈RC×1 :第n个样本所有通道的一个自适应的实例方差(the adaptive instance variances);
(7) σ ~ n 2 ∈ R C × 1 \tilde{\sigma}_n^2 \in \mathbb{R}^{C \times 1} σ~n2∈RC×1 :第n个样本归一化后的 x ~ n \tilde{x}_{n} x~n(此处应该指 x ˉ n \bar{x}_{n} xˉn )的所有通道的方差
以上三个式子中比较复杂的计算量来自于 D n − 1 2 D_{n}^{-\frac{1}{2}} Dn−21 。
2、近似估计
由上式可知:
D
n
−
1
2
=
(
λ
Σ
+
(
1
−
λ
)
D
i
a
g
(
ν
n
)
)
−
1
2
D_n^{-\frac{1}{2}} = (\lambda \Sigma + (1-\lambda )Diag(\nu _n))^{-\frac{1}{2}}
Dn−21=(λΣ+(1−λ)Diag(νn))−21
已知
f
(
x
)
=
x
−
1
2
f(x)=x^{-\frac{1}{2}}
f(x)=x−21 为凸函数,故其满足矩阵的杰森不等式,上式可以近似如下:
D
n
−
1
2
⪯
λ
Σ
−
1
2
+
(
1
−
λ
)
[
D
i
a
g
(
ν
n
)
]
−
1
2
D_n^{-\frac{1}{2}} \preceq \lambda \Sigma^{-\frac{1}{2}} + (1-\lambda )[Diag(\nu _n)]^{-\frac{1}{2}}
Dn−21⪯λΣ−21+(1−λ)[Diag(νn)]−21
where
A
⪯
B
A \preceq B
A⪯B, indicates
B
−
A
B-A
B−A is semi-definite positive.
接下来,计算量被分解为 batch decorrelation 分支(即BD分支)和 instance reweighting 分支(即IR分支)。
其具体的网络结构如下:
3、BD分支—— Σ − 1 2 \Sigma^{-\frac{1}{2}} Σ−21
常规的计算协方差采用特征值分解或SVD分解,本文采用牛顿迭代法 (Huang et al., 2018),迭代次数为3。
(1) 将特征 x x x 归一化后,可以获得其协方差矩阵:
Σ
=
γ
γ
T
⊙
1
M
x
ˉ
x
ˉ
T
x
ˉ
∈
R
C
×
M
,
M
=
N
∗
H
∗
W
\Sigma = \gamma \gamma^{T} \odot \frac{1}{M}\bar{x}\bar{x}^{T} \\ \bar{x}\in \mathbb{R}^{C \times M},\, \, M = N*H*W
Σ=γγT⊙M1xˉxˉTxˉ∈RC×M,M=N∗H∗W
其中,
Σ
i
j
\Sigma_{ij}
Σij 表示第i个通道和第j个通道间的依赖关系,它在归一化后由
γ
i
γ
j
\gamma_i \gamma_j
γiγj 进行尺度缩放。
为了满足牛顿迭代法的条件:
∣
∣
I
−
Σ
∣
∣
2
<
1
||I-\Sigma ||_2<1
∣∣I−Σ∣∣2<1,
Σ
\Sigma
Σ 被归一化为
Σ
/
t
r
(
Σ
)
\Sigma /tr(\Sigma )
Σ/tr(Σ),归一化的协方差矩阵写作:
Σ
=
γ
γ
T
∣
∣
γ
∣
∣
2
2
⊙
1
M
x
ˉ
x
ˉ
T
\Sigma = \frac{\gamma \gamma^{T}}{||\gamma||_2^2} \odot \frac{1}{M}\bar{x}\bar{x}^{T} \\
Σ=∣∣γ∣∣22γγT⊙M1xˉxˉT
(2) 而后对协方差矩阵 Σ \Sigma Σ 采用牛顿迭代法:
Σ 0 = I Σ k = 1 2 ( 3 Σ k − 1 − Σ k − 1 3 Σ ) , k = 1 , 2 , . . . , T . {\Sigma }_0 = I \\ {\Sigma}_k = \frac{1}{2}(3{\Sigma}_{k-1}-\Sigma_{k-1}^3\Sigma ),\, k=1,2,...,T. Σ0=IΣk=21(3Σk−1−Σk−13Σ),k=1,2,...,T.
4、IR分支—— [ D i a g ( ν n ) ] − 1 2 [Diag(\nu _n)]^{-\frac{1}{2}} [Diag(νn)]−21
迭代公式:
I
R
的
输
入
:
σ
~
n
2
=
d
i
a
g
(
γ
γ
T
)
⊙
(
σ
I
N
2
)
n
σ
B
N
2
[
D
i
a
g
(
ν
n
)
]
−
1
2
=
D
i
a
g
(
S
i
g
m
o
i
d
(
σ
~
n
2
;
θ
)
)
⋅
s
−
1
2
s
=
1
N
C
∑
n
,
c
N
,
C
(
σ
~
n
2
)
IR的输入:\tilde{\sigma}_n^2 = diag(\gamma \gamma^{T})\odot \frac{(\sigma_{IN}^2)_n}{\sigma_{BN}^2} \\ [Diag(\nu _n)]^{-\frac{1}{2}} = Diag(Sigmoid(\tilde{\sigma}_n^2; \theta)) \cdot s^{- \frac{1}{2}} \\ s = \frac{1}{NC}\sum _{n, c}^{N,C}(\tilde{\sigma}_n^2)
IR的输入:σ~n2=diag(γγT)⊙σBN2(σIN2)n[Diag(νn)]−21=Diag(Sigmoid(σ~n2;θ))⋅s−21s=NC1n,c∑N,C(σ~n2)
其中
σ
I
N
2
\sigma_{IN}^2
σIN2 表示IN计算所得的方差;
σ
B
N
2
\sigma_{BN}^2
σBN2 表示IN计算所得的方差;
θ
\theta
θ 为SENet和GC block所获得的参数,用来反映通道间的依赖。GC block如下:
5、分析
上文可知,inhibited channels的特征:
β
c
⩽
0
,
γ
c
→
0
\beta_{c} \leqslant 0, \gamma_{c} \rightarrow 0
βc⩽0,γc→0。而BD分支的作用:改变normalization中
γ
\gamma
γ 的值。
将CE模块的公式分解到BD分支可得:
p
n
i
j
B
D
=
D
i
a
g
(
Σ
−
1
2
γ
)
x
ˉ
n
i
j
+
Σ
−
1
2
β
p_{nij}^{BD} = Diag(\Sigma^{-\frac{1}{2}}\gamma)\bar{x}_{nij} + \Sigma^{-\frac{1}{2}}\beta
pnijBD=Diag(Σ−21γ)xˉnij+Σ−21β
将BD分支与Normalization的公式对应:
x
~
n
c
i
j
=
γ
c
x
ˉ
n
c
i
j
+
β
c
\tilde{x}_{ncij} = \gamma_{c}\bar{x}_{ncij}+\beta_{c}
x~ncij=γcxˉncij+βc
相当于构造了等价的
γ
\gamma
γ :
γ
^
=
Σ
−
1
2
γ
\hat{\gamma} = \Sigma ^{-\frac{1}{2}}\gamma
γ^=Σ−21γ。由此论文中如下部分可知:
γ
\gamma
γ 的值一定增大。