论文信息
论文标题:Joint domain alignment and discriminative feature learning for unsupervised deep domain adaptation 论文作者:Chao Chen , Zhihong Chen , Boyuan Jiang , Xinyu Jin 论文来源:AAAI 2019 论文地址:download 论文代码:download 引用次数:175
1 Introduction
近年来,大多数工作集中于减少不同领域之间的分布差异来学习共享的特征表示,由于所有的域对齐方法只能减少而不能消除域偏移,因此分布在簇边缘或远离相应类中心的目标域样本很容易被从源域学习到的超平面误分类。为缓解这一问题,提出联合域对齐和判别特征学习,有利于 域对齐 和 分类。具体提出了一种基于实例的判别特征学习方法和一种基于中心的判别特征学习方法,两者均保证了域不变特征具有更好的类内紧凑性和类间可分性。大量的实验表明,在共享特征空间中学习鉴别特征可以显著提高性能。 域适应,关注如何从源域的大量标记样本和目标域有限或没有标记的目标样本学习分类,可以分为如下三种方法:
feature-based domain adaptation
instance-based domain adaptation
classifier-based domain adaptation
2 Method
总体框架如下:
2.1 Problem statement
In this work, following the settings of unsupervised domain adaptation, we define the labeled source data as D s = { X s , Y s } = { ( x s i , y s i ) } n s i = 1 D s = { X s , Y s } = { ( x i s , y i s ) } i = 1 n s and define the unlabeled target data as D t = { X t } = { x t i } n t i = 1 D t = { X t } = { x i t } i = 1 n t , where x s x s and x t x t have the same dimension x s ( t ) ∈ R d x s ( t ) ∈ R d . Let Θ Θ denotes the shared parameters to be learned. H s ∈ R b × L H s ∈ R b × L and H t ∈ R b × L H t ∈ R b × L denote the learned deep features in the bottleneck layer regard to the source stream and target stream, respectively. b b indicates the batch size during the training stage and L L is the number of hidden neurons in the bottleneck layer. Then, the networks can be trained by minimizing the following loss function.
L ( Θ ∣ X s , Y s , X t ) = L s + λ 1 L c + λ 2 L d ( 1 ) L s = 1 n s ∑ n s i = 1 c ( Θ ∣ x s i , y s i ) ( 2 ) L c = C O R A L ( H s , H t ) ( 3 ) L d = J d ( Θ ∣ X s , Y s ) ( 4 ) L ( Θ ∣ X s , Y s , X t ) = L s + λ 1 L c + λ 2 L d ( 1 ) L s = 1 n s ∑ i = 1 n s c ( Θ ∣ x i s , y i s ) ( 2 ) L c = C O R A L ( H s , H t ) ( 3 ) L d = J d ( Θ ∣ X s , Y s ) ( 4 )
其中
L s L s 代表源域分类损失;
L c = CORAL ( H s , H t ) L c = CORAL ( H s , H t ) 表示通过相关性对齐度量的域差异损失;
J d ( Θ ∣ X s , Y s ) J d ( Θ ∣ X s , Y s ) 代表鉴别损失,保证了域不变特征具有更好的类内紧致性和类间可分性;
2.2 Correlation Alignment (CORAL CORAL )
为学习域不变特征,通过对齐源特征和目标特征的协方差来减少域差异。域差异损失如下:
L c = CORAL ( H s , H t ) = 1 4 L 2 ∥ Cov ( H s ) − Cov ( H t ) ∥ 2 F ( 5 ) L c = CORAL ( H s , H t ) = 1 4 L 2 ‖ Cov ( H s ) − Cov ( H t ) ‖ F 2 ( 5 )
其中:
∥ ⋅ ∥ 2 F ‖ ⋅ ‖ F 2 为矩阵 Frobenius Frobenius 范数;
Cov ( H s ) Cov ( H s ) 和 Cov ( H t ) Cov ( H t ) 表示 bottleneck layer bottleneck layer 中源特征和目标特征的协方差矩阵;
Cov ( H s ) = H ⊤ s J b H s Cov ( H s ) = H s ⊤ J b H s
Cov ( H t ) = H ⊤ t J b H t Cov ( H t ) = H t ⊤ J b H t
J b = I b − 1 b 1 n 1 T s n J b = I b − 1 b 1 n 1 n T s 是 centralized matrix centralized matrix ;
1 b ∈ R b 1 b ∈ R b 全 1 1 列向量;
b b 是批大小;
注意,训练过程是通过小批量 SGD SGD 实现的,因此,在每次迭代中,只有一批训练样本被对齐。
2.3 Discriminative Feature Learning
为学习更具判别性的特征,提出两种判别特征学习方法:基于实例的判别特征学习 和 基于中心的判别特征学习 。
注意,整个训练阶段都是基于小批量 SGD SGD 的。因此,下面给出的鉴别损失是基于一批样本的。
2.3.1 Instance-Based Discriminative Loss
基于实例的判别特征学习的动机是:同一类的样本在特征空间中应该尽可能地接近,不同类的样本之间应有较大距离。
基于实例的判别损失 L I d L d I 可以表示为:
J I d ( h s i , h s j ) = ⎧ ⎪
⎪ ⎨ ⎪
⎪ ⎩ max ( 0 , ∥ ∥ h s i − h s j ∥ ∥ 2 − m 1 ) 2 C i j = 1 max ( 0 , m 2 − ∥ ∥ h s i − h s j ∥ ∥ 2 ) 2 C i j = 0 ( 6 ) J d I ( h i s , h j s ) = { max ( 0 , ‖ h i s − h j s ‖ 2 − m 1 ) 2 C i j = 1 max ( 0 , m 2 − ‖ h i s − h j s ‖ 2 ) 2 C i j = 0 ( 6 )
L I d = n s ∑ i , j = 1 J I d ( h s i , h s j ) ( 7 ) L d I = ∑ i , j = 1 n s J d I ( h i s , h j s ) ( 7 )
其中:
H s = [ h s 1 ; h s 2 ; ⋯ ; h s b ] H s = [ h 1 s ; h 2 s ; ⋯ ; h b s ] ;
C i j = 1 C i j = 1 表示 h s i h i s 和 h s j h j s 来自同一个类,C i j = 0 C i j = 0 表示 h s i h i s 和 h s j h j s 来自不同的类;
m 2 m 2 大于 m 1 m 1 ;
从 Eq.6 Eq.6 、Eq.7 Eq.7 中可以看出,判别损失会使类内样本之间的距离不超过 m 1 m 1 ,而类间样本之间的距离至少 m 2 m 2 。
为简洁起见,将深度特征 H s H s 的成对距离表示为 D H ∈ R b × b D H ∈ R b × b ,其中 D H i j = ∥ ∥ h s i − h s j ∥ ∥ 2 D i j H = ‖ h i s − h j s ‖ 2 。设 L ∈ R b × b L ∈ R b × b 表示指示器矩阵,如果第 i i 个样本和第 j j 个样本来自同一个类,则表示 L i j = 1 L i j = 1 ,如果它们来自不同的类,则表示 L i j = 0 L i j = 0 。然后,基于实例的判别损失可简化为:
L I d = α ∥ ∥ ∥ max ( 0 , D H − m 1 ) 2 ∘ L ∥ ∥ ∥ sum + ∥ ∥ ∥ max ( 0 , m 2 − D H ) 2 ∘ ( 1 − L ) ∥ ∥ ∥ s u m ( 8 ) L d I = α ‖ max ( 0 , D H − m 1 ) 2 ∘ L ‖ sum + ‖ max ( 0 , m 2 − D H ) 2 ∘ ( 1 − L ) ‖ s u m ( 8 )
2.3.2 Center-Based Discriminative Loss
基于实例的鉴别损失 需要计算样本之间的成对距离,计算成本较高。受 Center Loss 惩罚每个样本到相应类中心的距离的启发,本文提出基于中心的判别特征学习:
L C d = β n s ∑ i = 1 max ( 0 , ∥ ∥ h s i − c y i ∥ ∥ 2 2 − m 1 ) + c ∑ i , j = 1 , i ≠ j max ( 0 , m 2 − ∥ ∥ c i − c j ∥ ∥ 2 2 ) ( 9 ) L d C = β ∑ i = 1 n s max ( 0 , ‖ h i s − c y i ‖ 2 2 − m 1 ) + ∑ i , j = 1 , i ≠ j c max ( 0 , m 2 − ‖ c i − c j ‖ 2 2 ) ( 9 )
其中:
β β 为权衡参数;
m 1 m 1 和 m 2 m 2 为两个约束边距 ( m 1 < m 2 ) ( m 1 < m 2 ) ;
c y i ∈ R d c y i ∈ R d 表示第 y i y i 类的质心,y i ∈ { 1 , 2 , ⋯ , c } y i ∈ { 1 , 2 , ⋯ , c } ,c c 表示类数;
理想情况下,类中心 c i c i 应通过平均所有样本的深层特征来计算。但由于本文是基于小批量进行更新的,因此很难用整个训练集对深度特征进行平均。在此,本文做了一个必要的修改,对于 Eq.9 Eq.9 中判别损失的第二项,用于度量类间可分性的 c i c i 和 c j c j 是通过对当前一批深度特征进行平均来近似计算的,称之为 “批类中心” 。相反,用于测量类内紧致性的 c y i c y i 应该更准确,也更接近 “全局类中心”。因此,在每次迭代中更新 c y i c y i 为
Δ c j = b ∑ i = 1 δ ( y i = j ) ( c j − h s i ) 1 + b ∑ i = 1 δ ( y i = j ) ( 10 ) c t + 1 j = c t j − γ ⋅ Δ c t j ( 11 ) Δ c j = ∑ i = 1 b δ ( y i = j ) ( c j − h i s ) 1 + ∑ i = 1 b δ ( y i = j ) ( 10 ) c j t + 1 = c j t − γ ⋅ Δ c j t ( 11 )
“全局类中心” 在第一次迭代中被初始化为“批类中心”,在每次迭代中通过 Eq.10 Eq.10 、Eq.11 Eq.11 进行更新,其中 γ γ 是更新“全局类中心”的学习速率。为简洁起见,Eq.9 Eq.9 可以简化为
L C d = β ∥ max ( 0 , H c − m 1 ) ∥ sum + ∥ max ( 0 , m 2 − D c ) ∘ M ∥ sum L d C = β ‖ max ( 0 , H c − m 1 ) ‖ sum + ‖ max ( 0 , m 2 − D c ) ∘ M ‖ sum
其中:
H c = [ h c 1 ; h c 2 ; … ; h c b ] H c = [ h 1 c ; h 2 c ; … ; h b c ] ,h c i = ∥ ∥ h s i − c y i ∥ ∥ 2 2 h i c = ‖ h i s − c y i ‖ 2 2 表示第 i i 个样本深层特征与其对应的中心 c y i c y i 之间的距离;
D c ∈ R c × c D c ∈ R c × c 表示“批类中心”的成对距离,即 D c i j = ∥ ∥ c i − c j ∥ ∥ 2 2 D i j c = ‖ c i − c j ‖ 2 2 ;
不同于 Center Loss Center Loss ,它只考虑类内的紧致性,本文不仅惩罚了深度特征与其相应的类中心之间的距离,而且在不同类别的中心之间加强了较大的边际。
2.4 Training
所提出的 Instance-Based joint discriminative domain adaptation (JDDA-I) Instance-Based joint discriminative domain adaptation (JDDA-I) 和 Center-Based joint discriminative domain adaptation (JDDA-C) Center-Based joint discriminative domain adaptation (JDDA-C) 都可以通过小批量SGD轻松实现。对于 JDDA-I JDDA-I ,总损失为 L = L s + λ 1 L c + λ I 2 L I d L = L s + λ 1 L c + λ 2 I L d I ,L c L c 代表源域的分类损失。因此,参数 Θ Θ 可以通过标准的反向传播直接更新
Θ t + 1 = Θ t − η ∂ ( L s + λ 1 L c + λ I 2 L I d ) ∂ x i ( 13 ) Θ t + 1 = Θ t − η ∂ ( L s + λ 1 L c + λ 2 I L d I ) ∂ x i ( 13 )
由于 “global class center” 不能通过一批样本来计算,因此 JDDA-C JDDA-C 必须在每次迭代中同时更新 Θ Θ 和“全局类中心”:
Θ t + 1 = Θ t − η ∂ ( L s + λ 1 L c + λ C 2 L C d ) ∂ x i Θ t + 1 = Θ t − η ∂ ( L s + λ 1 L c + λ 2 C L d C ) ∂ x i
c t + 1 j = c t j − γ ⋅ Δ c t j j = 1 , 2 , ⋯ , c ( 14 ) c j t + 1 = c j t − γ ⋅ Δ c j t j = 1 , 2 , ⋯ , c ( 14 )
3 Experiments
====
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 展开说说关于C#中ORM框架的用法!
2022-01-12 论文解读(DEC)《Unsupervised Deep Embedding for Clustering Analysis》