Separate to Adapt: Open Set Domain Adaptation via Progressive Separation
1 问题与挑战
开放集域适应带来了两个挑战:
- 域之间分布偏移的影响.
- 目标域中未知类的数据可能会使域自适应模型的性能甚至不如没有自适应的模型。这种现象被称为负转移.
迭代分配和变换(ATI)研究基于距离的度量,以迭代分配未知样本。开放式反向传播(OSBP)进一步尝试解决源域中没有未知类的问题。这两种方法都需要一些阈值超参数来区分已知类和未知类,而设置超参数还需要目标域类的先验知识。此外,这些方法没有考虑目标域中未知类的比例,这被称为开放性。
2 本文贡献
- 本文提出了分离适应(STA),这是一种端到端的方法,用于解决不同开放级别下的开放集域适应问题.
3 方法
3.1 OSDA
源域
D
s
=
{
(
x
i
s
,
y
i
s
)
}
i
=
1
n
s
\mathcal{D}_s=\left\{\left(\mathbf{x}_i^s, y_i^s\right)\right\}_{i=1}^{n_s}
Ds={(xis,yis)}i=1ns,
n
s
n_s
ns 个标记的示例. 分布
p
p
p.
目标域
D
t
=
{
x
j
t
}
j
=
1
n
t
\mathcal{D}_t=\left\{\mathbf{x}_j^t\right\}_{j=1}^{n_t}
Dt={xjt}j=1nt,
n
t
n_t
nt 个未标记的示例. 分布
q
q
q.
C
s
C_s
Cs 表示源域中的类别,
C
t
C_t
Ct 表示目标域中的类别,
C
s
∈
C
t
C_s \in C_t
Cs∈Ct,
C
t
/
s
C_{t/s}
Ct/s 表示目标域中的未知类.
开放度:
O
=
1
−
∣
C
s
∣
∣
C
t
∣
\mathbb{O}=1-\frac{\left|\mathcal{C}_s\right|}{\left|\mathcal{C}_t\right|}
O=1−∣Ct∣∣Cs∣
3.2 Separate to Adapt
3.3 渐进式分离
为了将目标域中的未知类数据从已知类中分离出来,作者设计了一个由粗到细的过滤措施。作者使用多二元分类器来衡量目标域的样本域源域中的类相似性。每一个二元的分类器都是只由源域的数据训练的。
所有分类器的loss表示为:
L
s
=
∑
c
=
1
∣
C
s
∣
1
n
s
∑
i
=
1
n
s
L
b
c
e
(
G
c
(
G
f
(
x
i
s
)
)
,
I
(
y
i
s
,
c
)
)
L_s=\sum_{c=1}^{\left|\mathcal{C}_s\right|} \frac{1}{n_s} \sum_{i=1}^{n_s} L_{\mathrm{bce}}\left(G_c\left(G_f\left(\mathbf{x}_i^s\right)\right), I\left(y_i^s, c\right)\right)
Ls=c=1∑∣Cs∣ns1i=1∑nsLbce(Gc(Gf(xis)),I(yis,c))
L
b
c
e
L_{bce}
Lbce 表示二值交叉熵损失,
I
(
y
i
s
,
c
)
=
1
I(y_i^s, c) = 1
I(yis,c)=1 if
y
i
s
=
c
y_i^s = c
yis=c and
I
(
y
i
s
,
c
)
=
0
I(y_i^s, c) = 0
I(yis,c)=0 otherwise.
分类器 G c G_c Gc 输出的为目标域样本被分类为源域中该类的概率,即可表示目标域数据与源域该类的相似性。可以预知:目标域中的未知类的概率一定比目标域的已知类概率要低,而作者使用这些概率的最大值来表示该样本对应的源域中的类别,相应的未知类的相似性就没有已知类的高。
- 第一种过滤策略是对所有目标样本的相似度进行排序,并选择相似度最高/最低的样本来训练二元分类器 G b G_b Gb。这里只使用具有极端相似性的样本。
- 另一种过滤策略是将相似度聚类为三个聚类,分别用于最高、中等和最低概率。然后,使用最高概率聚类的平均 s h s_h sh 作为已知类别的目标数据的阈值,其中数据具有 s j ≥ s h s_j ≥ s_h sj≥sh 被选入已知的类。我们使用最低概率聚类的平均 s l s_l sl 作为未知类数据的阈值,其中数据具有 s j ≤ s l s_j ≤ s_l sj≤sl 被选入未知类。
通过多二进制分类器将样本选择为已知和未知类,我们进一步训练二进制分类器
G
b
G_b
Gb 以精细地分离已知和未知类别。细粒度二进制分类器
G
b
G_b
Gb 可以如下训练
L
b
=
1
∣
X
′
∣
∑
X
∈
X
′
L
b
c
e
(
G
b
(
G
f
(
x
j
)
)
,
d
j
)
L_b=\frac{1}{\left|\mathbf{X}^{\prime}\right|} \sum_{\mathbf{X} \in \mathbf{X}^{\prime}} L_{\mathrm{bce}}\left(G_b\left(G_f\left(\mathbf{x}_j\right)\right), d_j\right)
Lb=∣X′∣1X∈X′∑Lbce(Gb(Gf(xj)),dj)
X
′
\mathbf{X}^{\prime}
X′ 表示多二进制分类器过滤的样本集,
d
j
d_j
dj 表示目标样本
x
j
∈
X
′
\mathbf{x}_j \in \mathbf{X}^{\prime}
xj∈X′ 标记为已知
(
d
j
=
0
)
(d_j=0)
(dj=0)或未知
(
d
j
=
1
)
(d_j=1)
(dj=1).
3.4 加权适应
对于对抗性域自适应部分
源域的分类损失:
L
c
l
s
s
=
1
n
s
∑
x
i
∈
D
s
L
y
(
G
y
1
:
∣
C
s
∣
(
G
f
(
x
i
)
)
,
y
i
)
L_{\mathrm{cls}}^s=\frac{1}{n_s} \sum_{\mathbf{x}_i \in \mathcal{D}_s} L_y\left(G_y^{1:\left|\mathcal{C}_s\right|}\left(G_f\left(\mathbf{x}_i\right)\right), y_i\right)
Lclss=ns1xi∈Ds∑Ly(Gy1:∣Cs∣(Gf(xi)),yi)
其中
L
y
L_y
Ly 是交叉熵损失,
G
y
G_y
Gy 是
∣
C
s
∣
+
1
|C_s|+1
∣Cs∣+1 类的扩展分类器,即源域中的
∣
C
s
∣
|C_s|
∣Cs∣ 已知类加上目标域中的附加“未知”类。
G
y
1
:
∣
C
s
∣
G_y^{1:|C_s|}
Gy1:∣Cs∣ 表示对应于将每个样本分配给
∣
C
s
∣
|C_s|
∣Cs∣ 已知类的概率。
在上面
G
b
G_b
Gb 的过滤后,作者并没有将
G
b
G_b
Gb 分类的输出作为最后结果,而是作为一个权值
w
j
w_j
wj,使用
w
j
w_j
wj 来定义共享标签空间Cs中特征分布的对抗性适应的加权损失.
L
d
=
1
n
s
∑
x
i
∈
D
s
L
b
c
c
(
G
d
(
G
f
(
x
i
)
)
,
d
i
)
+
1
∑
x
j
∈
D
t
(
1
−
w
j
)
∑
x
j
∈
D
t
(
1
−
w
j
)
L
b
c
e
(
G
d
(
G
f
(
x
j
)
)
,
d
j
)
\begin{aligned} L_d &=\frac{1}{n_s} \sum_{\mathbf{x}_i \in \mathcal{D}_s} L_{\mathrm{bcc}}\left(G_d\left(G_f\left(\mathbf{x}_i\right)\right), d_i\right) \\ &+\frac{1}{\sum_{\mathbf{x}_j \in \mathcal{D}_t}\left(1-w_j\right)} \sum_{\mathbf{x}_j \in \mathcal{D}_t}\left(1-w_j\right) L_{\mathrm{bce}}\left(G_d\left(G_f\left(\mathbf{x}_j\right)\right), d_j\right) \end{aligned}
Ld=ns1xi∈Ds∑Lbcc(Gd(Gf(xi)),di)+∑xj∈Dt(1−wj)1xj∈Dt∑(1−wj)Lbce(Gd(Gf(xj)),dj)
此外,需要挑选目标域中未知类的样本,以便为额外的“未知”类训练
G
f
G_f
Gf。基于度量已知类和未知类分离的权重
w
j
w_j
wj,可以将区分“未知”类的加权损失定义为
L
c
l
s
t
=
1
∣
C
s
∣
1
∑
x
j
∈
D
t
w
j
∑
x
j
∈
D
t
w
j
L
y
(
G
y
∣
C
s
∣
+
1
(
G
f
(
x
j
)
)
,
l
u
k
)
L_{\mathrm{cls}}^t=\frac{1}{\left|\mathcal{C}_s\right|} \frac{1}{\sum_{\mathbf{x}_j \in \mathcal{D}_t} w_j} \sum_{\mathbf{x}_j \in \mathcal{D}_t} w_j L_y\left(G_y^{\left|\mathcal{C}_s\right|+1}\left(G_f\left(\mathbf{x}_j\right)\right), l_{\mathrm{uk}}\right)
Lclst=∣Cs∣1∑xj∈Dtwj1xj∈Dt∑wjLy(Gy∣Cs∣+1(Gf(xj)),luk)
其中
l
u
k
l_{uk}
luk 是未知类,并且通过训练将具有大权重
w
j
w_j
wj 的所有目标样本分配给未知类。类似地,
G
y
∣
C
s
∣
+
1
G_y^{\left|\mathcal{C}_s\right|+1}
Gy∣Cs∣+1 是分类器
G
y
G_y
Gy 将目标样本分配给未知类的概率。
进一步将熵最小化损失
L
e
L_e
Le合并到目标域的已知类别上,以保证决策边界包裹目标域中的低密度区域。
L
e
=
1
∑
x
j
∈
D
t
(
1
−
w
j
)
∑
x
j
∈
D
t
(
1
−
w
j
)
H
(
G
y
1
:
∣
C
s
∣
(
G
f
(
x
j
)
)
)
L_e=\frac{1}{\sum_{\mathbf{x}_j \in \mathcal{D}_t}\left(1-w_j\right)} \sum_{\mathbf{x}_j \in \mathcal{D}_t}\left(1-w_j\right) H\left(G_y^{1:\left|\mathcal{C}_s\right|}\left(G_f\left(\mathbf{x}_j\right)\right)\right)
Le=∑xj∈Dt(1−wj)1xj∈Dt∑(1−wj)H(Gy1:∣Cs∣(Gf(xj)))
只将目标样本预测为已知类的进行熵最小化,所以使用了
w
j
w_j
wj 作为权重。
3.5 训练程序
将训练过程分为两个步骤,已知/未知分离步骤和加权对抗性适应步骤。
步骤1. 首先训练特征提取器
G
f
G_f
Gf 和分类器
G
y
G_y
Gy 来对源样本进行分类。同时,多二进制分类器
G
c
G_c
Gc,
c
=
1
,
2
,
…
,
∣
C
s
∣
c = 1,2,…,|C_s|
c=1,2,…,∣Cs∣ 目标域样本与源域所有类别进行一对多的训练。之后进一步选择目标域中相似性高的、低的输入细粒度
G
b
G_b
Gb 二元分类器进行训练。
Denote by
θ
f
θ_f
θf ,
θ
y
θ_y
θy,
θ
b
θ_b
θb, and
θ
c
∣
c
=
1
∣
C
s
∣
θ_c|_{c=1}^{|C_s|}
θc∣c=1∣Cs∣ the parameters of
G
f
G_f
Gf ,
G
y
G_y
Gy,
G
b
G_b
Gb, and
G
c
∣
c
=
1
∣
C
s
∣
G_c|_{c=1}^{|C_s|}
Gc∣c=1∣Cs∣. The optimal parameters
θ
^
f
,
θ
^
b
,
θ
^
y
\hat{\theta}_f, \hat{\theta}_b, \hat{\theta}_y
θ^f,θ^b,θ^y, and
θ
^
c
∣
c
=
1
∣
C
s
∣
\left.\hat{\theta}_c\right|_{c=1} ^{\left|\mathcal{C}_s\right|}
θ^c
c=1∣Cs∣ can be found by
(
θ
^
f
,
θ
^
y
,
θ
^
b
,
θ
^
c
∣
c
=
1
∣
C
s
∣
)
=
arg
min
θ
f
,
θ
y
,
θ
b
,
θ
c
∣
c
=
1
∣
C
s
i
∣
L
c
l
s
s
+
L
s
+
L
b
\left(\hat{\theta}_f, \hat{\theta}_y, \hat{\theta}_b,\left.\hat{\theta}_c\right|_{c=1} ^{\left|\mathcal{C}_s\right|}\right)=\underset{\theta_f, \theta_y, \theta_b,\left.\theta_c\right|_{c=1} ^{\left|C_{s i}\right|}}{\arg \min } L_{\mathrm{cls}}^s+L_s+L_b
(θ^f,θ^y,θ^b,θ^c
c=1∣Cs∣)=θf,θy,θb,θc∣c=1∣Csi∣argminLclss+Ls+Lb
步骤2. 在此步骤中,我们实现对抗性自适应,以将目标域中已知类的特征分布与源域对齐,并使用来自未知类的数据训练额外类的
G
y
G_y
Gy。在这一步中,我们继续用源样本训练分类器,以保存来自已知类的知识。使用
θ
d
θ_d
θd 表示域鉴别器
G
d
G_d
Gd 的参数,可以如下实现最佳参数:
(
θ
^
y
,
θ
^
d
)
=
arg
min
θ
y
,
θ
d
L
c
l
s
s
+
L
c
l
s
t
+
L
d
+
λ
L
e
(
θ
^
f
)
=
arg
min
θ
f
L
c
l
s
s
+
L
c
l
s
t
−
L
d
+
λ
L
e
\begin{aligned} \left(\hat{\theta}_y, \hat{\theta}_d \right)=\underset{\theta_y, \theta_d}{\arg \min } L_{\mathrm{cls}}^s+L_{\mathrm{cls}}^t+L_d+λL_e\\ \left(\hat{\theta}_f \right)=\underset{\theta_f}{\arg \min } L_{\mathrm{cls}}^s+L_{\mathrm{cls}}^t-L_d+λL_e \end{aligned}
(θ^y,θ^d)=θy,θdargminLclss+Lclst+Ld+λLe(θ^f)=θfargminLclss+Lclst−Ld+λLe
λ是一个用于权衡熵损失的超参数。
利用所提出的自适应分离(STA)模型,我们可以有效地分离目标域中已知和未知类的数据。步骤1拒绝异常值以避免在步骤2中分散未知类的注意力,步骤2执行对抗性调整以使步骤1中的拒绝管道更准确。
4 小结
本文提出了分离适应(STA),这是一种端到端的方法,用于解决不同开放级别下的开放集域适应问题。作者采用领域对抗性学习框架,并为“未知”类的源分类器再添加一个类。已知类和未知类之间的主要区别在于,已知类与源域的差异仅在于分布偏移,而未知类与源领域的差异更大,存在领域差距和语义差距。基于这一关键观察结果,作者开发了一种由粗到细分离管道组成的渐进分离机制。第一步是用源数据训练多二进制分类器,以估计目标数据和每个源类之间的相似度。在第二步中,选择相似度极高和极低的数据作为已知和未知类的数据,并用它们训练二元分类器,以对所有目标样本进行精细分离。作者在这两个步骤之间迭代,并使用实例级权重来拒绝对抗性域自适应中的未知类样本。
参考文献
[1] Liu H , Cao Z , Long M , et al. Separate to Adapt: Open Set Domain Adaptation via Progressive Separation[C]// 2019 IEEE/CVF Conference on Computer Vision and Pattern Recognition (CVPR). IEEE, 2020.
[2] https://blog.csdn.net/qq_42325947/article/details/108291866