论文地址:arXiv:2006.06525
代码地址:Attentive-WaveBlock
1 概述
这是一篇有关UDA Re-ID的文章,方法性能在paper with code上位居榜首,本文可以归类于基于伪标签的UDA,也是通过减少伪标签的噪声来提升模型性能的。文中的方法参考了一个很有意思的Re-ID框架——Mutual Mean-Teaching (MMT)1,MMT框架则来自于深度相互学习(Deep Mutual Learning)2方法,该方法和模型蒸馏/教师-学生模型类似,但是相互学习的目标是让一群学生模型也彼此学习,防止出现教师-学生模型中“瞎子带瞎子”的情况,方法作者也利用熵理论解释了深度相互学习的可行原因。不过MMT Re-ID框架只用到了两个网络,所以又变得和传统模型蒸馏相似,所以不可避免地,最终两个网络还是变得越来越像,互补性降低且回偏向同样的噪声(这也是本文动机)。
本文提出了一个无参数的轻量化模块——Attentive Wave Block (AWB),它可以集成到双网络中,在两个网络学习到的特征之间产生差异,增强网络网络的互补性,从而防止它们“误入歧途”(受同样的伪标签噪声影响)。此外,作者引入了注意力机制来进一步扩大特征间差异,寻找更多互补特征,并探索了两种组合方式:注意力分别放在Wave Block之前和之后。在Duke、Market以及MSMT17分别作为源域和目标域时,本文方法均取得了排行榜上最高性能。
2 贡献
- 引入一个无参模块WaveBlock,可在双网络框架学到的特征间产生差异,增强其互补性;
- 在WaveBlock的基础上采用注意力扩大网络间差异,设计了前(pre)注意力和后(post)注意力两种组合策略。
3 方法
3.1 MMT
MMT框架包含两个经过不同初始化的相同网络,它的pipeline是这样的:两个网络在源域上预训练得到初始化参数,每个epoch中,使用聚类算法生成离线的hard伪标签,在指定epoch的每次迭代中,两个网络会生成精炼的soft伪标签,将一个网络生成的hard标签和soft标签结合以监督另一个网络的学习,最后再于每次迭代中更新时间平均模型并用于预测。其实就是一个相互监督学习的过程,和模型蒸馏不一样,模型蒸馏是大模型监督小模型学习。
3.2 WaveBlock
下图是WaveBlock的示意,随机选择一个特征块/图保持不变,另一个特征块的特征的值乘以 r w r_w rw以形成一个波,说得很含糊。这样做更多的原始信息被保留了,不同于Dropblock。
具体地,给定特征
F
∈
R
C
×
H
×
W
F \in R^{C\times H \times W}
F∈RC×H×W,波宽率
r
w
r_w
rw和波高率
r
h
r_h
rh,首先生成一个均匀分布的随机整数
X
∼
U
(
0
,
[
H
⋅
(
1
−
r
w
)
]
)
X \sim U\left(0,\left[H \cdot\left(1-r_{w}\right)\right]\right)
X∼U(0,[H⋅(1−rw)]),
[
⋅
]
[·]
[⋅]是四舍五入函数,经WaveBlock调整的特征图定义为
F
∗
∈
R
C
×
H
×
W
F^* \in R^{C\times H \times W}
F∗∈RC×H×W,
i
j
k
ijk
ijk分别表示特征的维度、高度和宽度的坐标。
F
i
j
k
∗
=
{
F
i
j
k
,
X
≤
j
<
X
+
[
H
⋅
r
w
]
r
h
⋅
F
i
j
k
,
otherwise
F_{i j k}^{*}=\left\{\begin{array}{l} F_{i j k}, X \leq j<X+\left[H \cdot r_{w}\right] \\ r_{h} \cdot F_{i j k}, \text { otherwise } \end{array}\right.
Fijk∗={Fijk,X≤j<X+[H⋅rw]rh⋅Fijk, otherwise
作者给出了为什么应用WaveBlock就能产生特征差异的证明,这里简要介绍,若
F
1
,
F
2
,
F
1
∗
,
F
2
∗
F_1,F_2,F_1^*,F_2^*
F1,F2,F1∗,F2∗分别表示两个网络和WaveBlock的特征表示,
X
1
,
X
2
X_1,X_2
X1,X2表示随机整数,计算两个网络产生相同波形的概率,假设
F
1
,
F
2
F_1,F_2
F1,F2尺寸相同,要使
F
1
∗
,
F
2
∗
F_1^*,F_2^*
F1∗,F2∗相同,那么
X
1
,
X
2
X_1,X_2
X1,X2也得相同:
P
(
F
1
∗
=
F
2
∗
)
=
P
(
X
1
=
X
2
)
=
[
H
⋅
(
1
−
r
w
)
]
[
H
⋅
(
1
−
r
w
)
]
2
=
1
[
H
⋅
(
1
−
r
w
)
]
P\left(F_{1}^*=F_{2}^*\right)=P\left(X_{1}=X_{2}\right)=\frac{\left[H \cdot\left(1-r_{w}\right)\right]}{\left[H \cdot\left(1-r_{w}\right)\right]^{2}}=\frac{1}{\left[H \cdot\left(1-r_{w}\right)\right]}
P(F1∗=F2∗)=P(X1=X2)=[H⋅(1−rw)]2[H⋅(1−rw)]=[H⋅(1−rw)]1
多GPU的话每个GPU独立生成
X
X
X,作者根据他们的实验环境得到的
P
P
P结果是一个很小很小的数,表明概率很小,可以认为WaveBlock总能让特征存在差异。
3.3 Attentive WaveBlock
为了进一步扩大差异,寻找互补特征,作者将WaveBlock与注意力机制结合,AWB与MMT集成后如下图所示:
注意力和AWB的组合有两种方式,前注意力和后注意力,如下图所示,简单易懂,前注意力的优点是可以利用完整的特征来计算注意力,后注意力的优势是可以进一步增大特征差异。
作者用两种注意力来验证WaveBlock能和一般的注意力方法结合——CBAM和Non-local(这里用的简化版)。
CBAM: CBAM依次施加通道注意力 K 1 = M c ( F ) ⊗ F K_{1}=M_{c}(F) \otimes F K1=Mc(F)⊗F和空间注意力 K 2 = M s ( K 1 ) ⊗ K 1 K_{2}=M_{s}\left(K_{1}\right) \otimes K_{1} K2=Ms(K1)⊗K1 ( ⊗ \otimes ⊗是对应元素相乘),CBAM原文中是将注意力整合到ResNet块中的,但是本文作者认为这样增加了计算负担,于是作者将CBAM安排在stage之间,在每个改进的CBAM模块中,原始feature F F F与注意力feature K 2 K_2 K2相加得到新的特征,以防止信息丢失。
Non-local: 让 F F F经过两个 1 × 1 1 \times 1 1×1卷积 θ 、 ϕ \theta、\phi θ、ϕ,维度分别降为原来的一半,然后得到的特征压成单通道,即 θ ′ ( F ) ∈ R C 2 × H W \theta^{\prime}(F) \in R^{\frac{C}{2} \times H W} θ′(F)∈R2C×HW和 ϕ ′ ( F ) ∈ R C 2 × H W \phi^{\prime}(F) \in R^{\frac{C}{2} \times H W} ϕ′(F)∈R2C×HW,然后得到一个 H W × H W HW \times HW HW×HW维的矩阵 J = ( θ ′ ( F ) ) T ⋅ ϕ ′ ( F ) J=\left(\theta^{\prime}(F)\right)^{T} \cdot \phi^{\prime}(F) J=(θ′(F))T⋅ϕ′(F),然后用 1 H × W \frac{1}{H \times W} H×W1作为放缩因子,不使用 s o f t m a x softmax softmax,另一个分支中, F F F馈入函数 g g g(一个带BN的一维卷积),类似地将 g ( F ) g(F) g(F)压成单通道然后转置得 g ′ ( F ) ∈ R H W × C 2 g^{\prime}(F) \in R^{H W \times \frac{C}{2}} g′(F)∈RHW×2C,用 J J J乘 g ′ ( F ) g^{\prime}(F) g′(F)转置并resize为 C 2 × H × W \frac{C}{2}\times H \times W 2C×H×W,然后用一维卷积 h h h将通道恢复为 C C C,记为 I I I,最终的特征由 I I I和 F F F加和得到。
所以前后注意力对应于CBAM和Non-local注意力的公式分别为:
F
∗
=
WaveBlock
(
M
s
(
M
c
(
F
)
⊗
F
)
⊗
(
M
c
(
F
)
⊗
F
)
+
F
)
F
∗
=
WaveBlock
(
h
(
(
θ
′
(
F
)
)
T
⋅
ϕ
′
(
F
)
⋅
g
′
(
F
)
)
+
F
)
\begin{aligned} &F^{*}=\text { WaveBlock }\left(M_{s}\left(M_{c}(F) \otimes F\right) \otimes\left(M_{c}(F) \otimes F\right)+F\right)\\ \\ &F^{*}=\text { WaveBlock }\left(h\left(\left(\theta^{\prime}(F)\right)^{T} \cdot \phi^{\prime}(F) \cdot g^{\prime}(F)\right)+F\right) \end{aligned}
F∗= WaveBlock (Ms(Mc(F)⊗F)⊗(Mc(F)⊗F)+F)F∗= WaveBlock (h((θ′(F))T⋅ϕ′(F)⋅g′(F))+F)
和
F ~ = WaveBlock ( F ) F ∗ = M s ( M c ( F ~ ) ⊗ F ~ ) ⊗ ( M c ( F ~ ) ⊗ F ~ ) + F ~ F ∗ = h ( ( θ ′ ( F ~ ) ) T ⋅ ϕ ′ ( F ~ ) ⋅ g ′ ( F ~ ) ) + F ~ \begin{aligned} \widetilde{F} &=\text { WaveBlock }(F) \\ F^{*} &=M_{s}\left(M_{c}(\widetilde{F}) \otimes \widetilde{F}\right) \otimes\left(M_{c}(\widetilde{F}) \otimes \widetilde{F}\right)+\widetilde{F} \\ F^{*} &=h\left(\left(\theta^{\prime}(\widetilde{F})\right)^{T} \cdot \phi^{\prime}(\widetilde{F}) \cdot g^{\prime}(\widetilde{F})\right)+\widetilde{F} \end{aligned} F F∗F∗= WaveBlock (F)=Ms(Mc(F )⊗F )⊗(Mc(F )⊗F )+F =h((θ′(F ))T⋅ϕ′(F )⋅g′(F ))+F
3.4 实验
下图给出了行人Re-ID的结果,作者还给出了车辆Re-ID的结果,实验设置和消融实验无需赘述,代码已经开源。
4 总结
这篇文章的方法出奇的简单,但是灵感的门槛应该挺高的,特别是这个WaveBlock,不知道是怎样想到的,有时候简单的方法反而创新性更高效果更好,但也更难发现,相比之下,对网络做加减法修修剪剪的门槛就降低了许多。如果结合新的网络和新的注意力机制以及最近提出的新的池化方法,本文的结果可能还会提升,但是这样做似乎没什么意义。
参考
- Ge Y, Chen D, Li H. Mutual mean-teaching: Pseudo label refinery for unsupervised domain adaptation on person re-identification[J]. arXiv preprint arXiv:2001.01526, 2020.
- Zhang Y, Xiang T, Hospedales T M, et al. Deep mutual learning[C]//Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition. 2018: 4320-4328.