Open Set Domain Adaptation 开集域适应
1 本文贡献
-
将开集的概念引入到域自适应问题中,并提出了开集域自适应(open set domain adaptation)。闭集域自适应(closed set domain adaptation)和开集域自适应之间的差异如图所示.
-
提出了一种适用于闭集和开集的域自适应方法.
2 方法
2.1 无监督开集域适应
给定源域中的一组类
C
\mathcal{C}
C,包括
∣
C
−
1
∣
|C− 1|
∣C−1∣ 已知类和从其他无关类别中收集所有实例的附加未知类,我们的目标是用类
c
c
c 标记目标样本
T
=
{
T
1
,
…
,
T
∣
T
∣
}
,
c
∈
C
\mathcal{T}=\left\{T_1, \ldots, T_{|\mathcal{T}|}\right\},c∈ C
T={T1,…,T∣T∣},c∈C. 通过
d
c
t
=
∥
S
c
−
T
t
∥
2
2
d_{c t}=\left\|S_c-T_t\right\|_2^2
dct=∥Sc−Tt∥22定义将目标样本
T
t
T_t
Tt 分配给类
c
c
c 的成本,其中
T
t
∈
R
D
T_t \in \mathbb{R}^D
Tt∈RD 是目标样本
t
t
t 特征表示和
S
c
S_c
Sc 的
S
c
∈
R
D
S_c \in \mathbb{R}^D
Sc∈RD 是由类
c
c
c 标记的源域中所有样本的平均值. 将目标样本声明为异常值的成本由参数
λ
λ
λ 定义.
其中有两个约束:
- 第一个约束是说,对于任意 target 中的一个样本,要么 x c t = 1 x_{ct} = 1 xct=1,要么 o t = 1 o_t = 1 ot=1. 也就是,这个样本要么是属于已知类别 c c c,要么是未知类别.
- 第二个约束是说,对于任意一个已知类别 c c c,至少要有一个 x c t = 1 x_{ct} = 1 xct=1. 也就是,每个类别下都至少要有一个 sample. 不会存在有一个已知的共享类别,在 target 下找不到.
作者用 x c t x_{ct} xct 来标识 target domain 中的第 t t t 个样本是否被标记为类别 c c c, x c t ∈ { 0 , 1 } x_{ct} \in \left\{0,1\right\} xct∈{0,1} 。同时,因为是 open set,所以,引入一个 o t o_t ot 来标识第 t t t 个样本是否为未知类别(outlier;unknown), o t ∈ { 0 , 1 } o_t \in \left\{0,1\right\} ot∈{0,1} 。接下来,把这个问题直接表示成了一个二值的整数规划问题.
2.2 半监督开集域适应
暂不赘述.
2.3 学习source到target的映射
作者在这里要学习的目标是一个变换矩阵
W
W
W,
W
∈
R
D
X
D
W \in \mathbb{R}^{DXD}
W∈RDXD. 通过
W
W
W 可以把source变换到target空间中. 学习的目标函数是:
以矩阵形式重写:
通过求解偏导数,使其最小,可以求解出
W
W
W.
在估计转换
W
W
W 之后,我们将源样本映射到目标域. 因此,我们迭代解决分配问题并估计从源域到目标域的映射的过程,直到收敛为止. 在该方法收敛之后,我们在转换后的源样本上以一对一的设置训练线性 SVM.
3 小结
总的学习过程就是,学习label和学习映射进行交替,直到收敛或者目标值小于某一值即可. 作者在文章中说,迭代次数一般少于10次,通常为3~5次即可.
参考文献
[1] Busto P P , Gall J . Open Set Domain Adaptation[C]// IEEE International Conference on Computer Vision. IEEE, 2017.
[2] https://zhuanlan.zhihu.com/p/31230331