《Dual Student: Breaking the Limits of the Teacher in Semi-supervised Learning》
1. 摘要
最近,基于一致性的方法在半监督学习(SSL)中取得了最先进的结果。这些方法总是涉及两个角色,显式或隐式教师模型和学生模型,并通过一致性约束来惩罚不同扰动下的预测。然而,这两个角色的权重是紧密耦合的,因为老师本质上是学生的指数移动平均线 (EMA)。在这项工作中,我们表明耦合的 EMA 教师会导致性能瓶颈。为了解决这个问题,我们引入了 Dual Student,它用另一个学生代替了老师。我们还定义了一个新概念,稳定样本,然后为我们的结构设计了一个稳定约束,使其可训练。此外,我们讨论了我们方法的两种变体,它们产生了更高的性能。
Notice:
- 这篇论文是基于Mean Teacher进行改进的。
- 本文表达在原有的Mean Teacher中,Teacher和Student两个模型是耦合在一起的,随着epoch的增加,会导致瓶颈。
- 本文的贡献,就是提出两个
独立
模型参与训练,因为是独立的,所以提出稳定约束
来约束知识在两个模型之间的传输。
2. 算法描述
看懂Loss函数的定义,就看懂了方法。本次的介绍采用自顶向下的顺序。
L
i
=
L
c
l
s
i
+
λ
1
L
c
o
n
i
+
λ
2
L
s
t
a
i
\mathcal{L}^i = \mathcal{L}^i_{cls}+\lambda_1\mathcal{L}^i_{con}+\lambda_2\mathcal{L}^i_{sta}
Li=Lclsi+λ1Lconi+λ2Lstai
其中,总体损失可以分为三个部分:
- L c l s i \mathcal{L}^i_{cls} Lclsi有监督损失
- L c o n i \mathcal{L}^i_{con} Lconi一致性损失,模型针对扰动是否稳定
-
L
s
t
a
i
\mathcal{L}^i_{sta}
Lstai
稳定损失
,也是本文的主要贡献
值得注意的是,稳定损失
的设定是为了可靠的经验
在两个模型之间流动。其中主要涉及到两个问题:
- 怎样才是可靠的?
经验
如何流动?
2.1 怎样才是可靠的?
Definition 4.1 (Stable sample). Given a constant
ξ
∈
[
0
,
1
)
\xi \in [0, 1)
ξ∈[0,1),
a dataset
D
⊆
R
m
\mathcal{D} \subseteq \mathbb{R}^m
D⊆Rm that satisfies the smoothness assumption
and a model
f
:
D
→
[
0
,
1
]
n
f : \mathcal{D} \rightarrow [0, 1]^n
f:D→[0,1]n that satisfies
∥
f
(
x
)
∥
1
=
1
\|f(x)\|_1 = 1
∥f(x)∥1=1 for
all
x
∈
D
x \in \mathcal{D}
x∈D,
x
x
x is a stable sample with respect to
f
f
f if:
- ∀ x ‾ ∈ D \forall \overline{x} \in \mathcal{D} ∀x∈D near x x x, their predicted labels are the same.
- x x x satisfies the inequality: ∥ f ( x ) ∥ ∞ > ξ \|f(x)\|_{\infty} > \xi ∥f(x)∥∞>ξ .
上面的只是定义,在实际的数据集上如何计算呢?
R x i = { P x i = P x ‾ i } & ( { M x i > ξ } 1 ∥ { M x ‾ i > ξ } 1 ) , where M x i = ∥ f ( θ i , x ) ∥ ∞ (1) \mathcal{R}^i_x = \{\mathcal{P}^i_x = \mathcal{P}^i_{\overline{x}}\} \& (\{\mathcal{M}^i_x > \xi\}_1 \| \{\mathcal{M}^i_{\overline{x}} > \xi\}_1) , \text{where} \mathcal{M}^i_x = \| f(\theta_i, x) \|_{\infty} \tag{1} Rxi={Pxi=Pxi}&({Mxi>ξ}1∥{Mxi>ξ}1),whereMxi=∥f(θi,x)∥∞(1)
Eq1,定义了对于模型怎么样的数据算是稳定的。
2.2 有多可靠?
ϵ x i = ∥ f ( θ i , x ) − f ( θ i , x ‾ ) ∥ 2 (2) \epsilon^i_x = \| f(\theta_i, x) − f(\theta_i, \overline{x}) \|^2 \tag{2} ϵxi=∥f(θi,x)−f(θi,x)∥2(2)
Eq2, 量化稳定性,使得同一数据在不同模型上的稳定性能够比较。
2.3 f θ i f_{\theta_i} fθi怎么变得像 f θ j f_{\theta_j} fθj一样可靠?
最后,给出稳定损失
的定义:
L
s
t
a
i
=
{
{
ϵ
x
i
>
ϵ
x
j
}
1
L
m
s
e
(
x
)
,
R
x
i
=
R
x
j
=
1
R
x
j
L
m
s
e
(
x
)
,
otherwise
.
(3)
\mathcal{L}^i_{sta}= \begin{cases} \{\epsilon^i_x > \epsilon^j_x\}_1\mathcal{L}_{mse}(x), & \mathcal{R}^i_x = \mathcal{R}^j_x = 1 \\ \mathcal{R}^j_x\mathcal{L}_{mse}(x), &\text{otherwise}. \end{cases}\tag{3}
Lstai={{ϵxi>ϵxj}1Lmse(x),RxjLmse(x),Rxi=Rxj=1otherwise.(3)
L m s e ( x ) = ∥ f ( θ i , x ) − f ( θ j , x ) ∥ 2 \mathcal{L}_{mse}(x) = \| f(\theta^i, x) − f(\theta^j, x) \|^2 Lmse(x)=∥f(θi,x)−f(θj,x)∥2
Notice:
- 这里的损失定义就是将数据在最稳定的模型预测值作为基线。
- 值得注意的是,稳定损失不涉及到有标记数据,
一致性损失
涉及到整个数据集。