用于解决无源域适应的方法大致分为两个阶段:
- 获取阶段
我们有一个带标签的源数据集
D
s
=
{
(
x
s
,
y
s
)
:
x
s
∼
p
,
y
s
∈
C
s
}
D_{s}=\{(x_{s},y_{s}):x_{s}\sim p,y_{s}\in C_{s} \}
Ds={(xs,ys):xs∼p,ys∈Cs} 这里的
p
p
p是源样本的分布,
C
s
C_{s}
Cs表示源域的标签集。
这里的主要目的是让模型可以进行之后的无源适应,模型将会遇到目标域上未知的域移位和类别差距。
为此我们依赖于一个人为生成的负数据集
D
n
=
{
(
x
n
,
y
n
)
:
x
n
∼
p
n
,
y
n
∼
C
n
}
D_{n}=\{(x_{n},y_{n}):x_{n}\sim p_{n},y_{n}\sim C_{n} \}
Dn={(xn,yn):xn∼pn,yn∼Cn},这里
p
n
p_{n}
pn是负源样本的分布,并且
C
n
∩
C
s
=
∅
C_n \cap C_s=\varnothing
Cn∩Cs=∅。
- 部署阶段
在获取阶段得到一个训练模型后,这个模型将会在部署环境中遇到未标记的目标域样本。我们表示未标记的目标数据为
D
t
=
{
x
t
:
x
t
∼
q
}
D_t=\{x_t:x_t\sim q\}
Dt={xt:xt∼q},这里的
q
q
q是目标样本分布。
注意,获取阶段的源数据集
D
s
D_s
Ds在部署阶段进行适应时是不可用的,
C
t
C_t
Ct是目标域的标签集。
在通用设定中,我们不知道
C
t
C_t
Ct和
C
s
C_s
Cs的关系,定义共享标签
C
=
C
s
∩
C
t
C=C_s\cap C_t
C=Cs∩Ct,源域和目标域的私有标签集为
C
s
ˉ
=
C
s
\
C
t
\bar{C_s}=C_s\backslash C_t
Csˉ=Cs\Ct,
C
t
ˉ
=
C
t
\
C
s
\bar{C_t}=C_t\backslash C_s
Ctˉ=Ct\Cs。
1.获取阶段的学习
-
挑战
通常DA情景中,部署阶段可以用源样本,通常采用的方法是学习域不变特征,其中源类簇的位置实在无标记目标样本的存在下学习到的,其中 C s C_s Cs和 C t C_t Ct之间的关系作为监督。
获取阶段的目的有两个:
(1)学习对所有类差异场景都适合的源簇位置,无源场景不允许我们在适应过程中改变这个位置(目标样本存在)。
(2)模型有能力拒绝分别外样本,这是域转移下进行无监督适应的关键要求。 -
解决方案
源数据存在下,想要限制模型的域和类别差异。采用两种正则化策略:使用一个带标记的模拟负源数据集来对未被给定正源样本覆盖的潜在区域泛化,通过生成模型的正则化。 -
配置负数据集方法
-
训练过程
生成源分类器分为三个阶段:1)骨干模型 M M M,2)特征提取器 F s F_s Fs,3)分类器D。
骨干网的输出记作 v = M ( x ) v=M(x) v=M(x),这里 x x x取自 D s D_s Ds或 D n D_n Dn。类似的, F s F_s Fs和 D D D的输出分别表示为 u , v u,v u,v。
D D D输出一个K维的元向量记作 d = [ d ( k ) ] , k = 1 , 2 , . . . , K , K = ∣ C s ∣ + ∣ C n ∣ d=[d^(k)],k=1,2,...,K,K=|C_s|+|C_n| d=[d(k)],k=1,2,...,K,K=∣Cs∣+∣Cn∣。然后做softmax得到每个类概率 y ^ ( k ) = σ ( k ) ( D ∘ F s ∘ M ( x ) ) \hat{y}^{(k)}=\sigma^{(k)}(D \circ F_s\circ M(x)) y^(k)=σ(k)(D∘Fs∘M(x)),这里的 σ \sigma σ表示softmax激活,上标 ( k ) (k) (k)代表类索引。
并且,仅对正源类定义了先验, P ( u s ∣ c i ) = N ( u s ∣ μ c i , ∑ c i ) , i = 1 , 2... ∣ C s ∣ P(u_s|c_i)=N(u_s|{\mu}_{c_i},\sum{c_i}),i=1,2...|C_s| P(us∣ci)=N(us∣μci,∑ci),i=1,2...∣Cs∣在中间嵌入中 u s = F s ∘ M ( x s ) u_s=F_s\circ M(x_s) us=Fs∘M(xs)。在这些先验分布上的交叉熵损失定义为 L p L_p Lp,有效地增强了类内完整性和类间可分离性。
还引入了一个解码器 G G G,有选择地对来自正源类的样本 v s v_s vs最小化循环重建损失并随机地从对应的类先验 ( L v , L u ) (L_v,L_u) (Lv,Lu)抽取样本 u r u_r ur。同时对负源类(在交叉熵损失 L C E L_{CE} LCE)赋予较低权重 α \alpha α,组合来将偏差 F s F_s Fs偏向正源样本,考虑到生成负数据集不可靠的程度。
2. 部署阶段的学习
-
挑战
大量负源类和正源类一起 C s ∪ C t C_s\cup C_t Cs∪Ct,可以subsume一堆目标域的标签集 C t C_t Ct。还想实现一个统一的适应算法,用于各种类差异。强制把负样本适应到正源类会导致目标私有样本分类为源私有或公共标签集的一个实例,而非分类为 u n k n o w n unknown unknown,(负类中一个)。 -
解决方法
寻找一种支持域特定特征的架构,因为我们必须避免扰乱获取阶段得到的源簇位置。这是保持来自源数据集的任务依赖特征的必要要求。因此,我们引入了一个域特定特征提取器 F t F_t Ft,它的参数是从完全训练的 F s F_s Fs初始化而来的。进一步,想要利用获取阶段学得的生成分类器,来补充之前各个ad-hoc网络的目的。
(a)源相似度矩阵(SSM)
对每个目标样本 x t x_t xt,定义了一个权重因子 w ( x t ) w(x_t) w(xt)叫做SSM。高值: x t x_t xt倾向于正源类,特别是公共标签集 C C C。低值:倾向负源类 C n C_n Cn,更倾向目标私有标签 C t ˉ \bar{C_t} Ctˉ。
w ( x t ) = m a x i = 1... ∣ C s ∣ e x p ( y ^ ( i ) ) w(x_t)=\mathop{max}\limits_{i=1...|C_s|}exp(\hat{y}^{(i)}) w(xt)=i=1...∣Cs∣maxexp(y^(i))
w ′ ( x t ) = m a x i = 1... ∣ C s ∣ e x p ( 1 − y ^ ( i ) ) w'(x_t)=\mathop{max}\limits_{i=1...|C_s|}exp(1-\hat{y}^{(i)}) w′(xt)=i=1...∣Cs∣maxexp(1−y^(i))
(b)无源域适应
目的:高SSM值的目标样本–>正源类簇,反之亦然(在获取阶段的冻结源嵌入u空间中),在部署阶段只能训练 F t F_t Ft网络的参数。但是,在目标样本上对loss赋值的计算过程用到了源特征提取器 F s F_s Fs。定义部署模型为 h = D ∘ F t ∘ M ( x t ) h=D\circ F_t\circ M(x_t) h=D∘Ft∘M(xt)(用到了目标特征提取器),在K个类别上进行的softmax预测为 z ^ ( k ) = σ ( k ) ( h ) \hat{z}^{(k)}=\sigma^{(k)}(h) z^(k)=σ(k)(h)
因此,可以得到用于适应的主要损失方程为:
L d 1 = w ( x t ) ⋅ ( − l o g ( ∑ k = 1 ∣ C s ∣ z ^ ( k ) ) + w ′ ( x t ) ⋅ ( − l o g ( ∑ k = ∣ C s ∣ + 1 ∣ C s ∣ + ∣ C n ∣ z ^ ( k ) ) L_d1=w(x_t)\cdot(-log(\sum^{|C_s|}_{k=1}\hat{z}^{(k)})+w'(x_t)\cdot(-log(\sum^{|C_s|+|C_n|}_{k=|C_s|+1}\hat{z}^(k)) Ld1=w(xt)⋅(−log(k=1∑∣Cs∣z^(k))+w′(xt)⋅(−log(k=∣Cs∣+1∑∣Cs∣+∣Cn∣z^(k))
没有标签信息,预测KaTeX parse error: Expected '}', got 'EOF' at end of input: \hat{z}^{(k)会有不确定性,导致样本更高的熵。采用:熵最小化,将目标样本移向高置信区域(正和负簇中心)。正负源类要分别进行,从而将目标私有从整个目标数据集分开。对正、负源类定义两个不同的类概率向量:
z ~ s ( i ) e x p ( h ( i ) ) ∑ j = 1 ∣ C s ∣ e x p ( h ( j ) ) ; z ~ n ( i ) e x p ( h ( i + ∣ C s ∣ ) ) ∑ j = 1 ∣ C n ∣ e x p ( h ( j + ∣ C s ∣ ) ) \widetilde{z}_s^{(i)}\frac{exp(h^(i))}{\sum^{|C_s|}_{j=1}exp(h^{(j)})};\widetilde{z}_n^{(i)}\frac{exp(h^(i+|C_s|))}{\sum^{|C_n|}_{j=1}exp(h^{(j+|C_s|)})} z s(i)∑j=1∣Cs∣exp(h(j))exp(h(i));z n(i)∑j=1∣Cn∣exp(h(j+∣Cs∣))exp(h(i+∣Cs∣))
得到正源类的目标样本熵为 H s ( x t ) = − ∑ i = 1 ∣ C s ∣ z ~ s ( i ) l o g z ~ s ( i ) H_s(x_t)=-\sum^{|C_s|}_{i=1}\widetilde{z}_s^{(i)}log\widetilde{z}_s^{(i)} Hs(xt)=−∑i=1∣Cs∣z s(i)logz s(i),负类的为 H n ( x t ) = − ∑ i = 1 ∣ C n ∣ z ~ n ( i ) l o g z ~ n ( i ) H_n(x_t)=-\sum^{|C_n|}_{i=1}\widetilde{z}_n^{(i)}log\widetilde{z}_n^{(i)} Hn(xt)=−∑i=1∣Cn∣z n(i)logz n(i)。因此,熵最小化为:
L d 2 = w ( x t ) ⋅ H s ( x t ) + w ′ ( x t ) ⋅ H n ( x t ) L_d2=w(x_t)\cdot H_s(x_t)+w'(x_t)\cdot H_n(x_t) Ld2=w(xt)⋅Hs(xt)+w′(xt)⋅Hn(xt)
因此最终的loss方程为 L d = L d 1 + β L d 2 L_d=L_{d1}+\beta L_{d2} Ld=Ld1+βLd2。这里的 β \beta β是控制适应过程中熵最小化重要性的超参数。