Pirmin Lemberger, Ivan Panico, A Primer on Domain Adaptation
Theory and Applications, 2019.
概
机器学习分为训练和测试俩步骤, 且往往假设训练样本的分布和测试样本的分布是一致的, 但是这种情况在实际中并不一定成立. 作者就prior shift, covratie shift, concept shift, subspace mapping 四种情形给出相应的'解决方案".
主要内容
符号说明
x ∈ X ⊂ R p x ∈ X ⊂ R p : 数据
y ∈ Y = { ω 1 , … , ω k } y ∈ Y = { ω 1 , … , ω k } : 类别标签
S = { ( x 1 , y 1 ) , … ( x m , y m ) } S = { ( x 1 , y 1 ) , … ( x m , y m ) } : 训练样本
h ∈ H : X → Y h ∈ H : X → Y : 拟合函数/分类器
^ y = h ( x ) y ^ = h ( x ) :预测
ℓ : Y × Y → R ℓ : Y × Y → R : 损失函数
R [ h ] := E ( x , y ) ∼ p [ ℓ ( y , h ( x ) ] R [ h ] := E ( x , y ) ∼ p [ ℓ ( y , h ( x ) ] : risk
^ R [ h ] := 1 m ∑ m i = 1 [ ℓ ( y i , h ( x i ) ] R ^ [ h ] := 1 m ∑ i = 1 m [ ℓ ( y i , h ( x i ) ] : 经验风险函数
p S p S : 训练数据对应的分布
p T p T : 目标数据对应的分布
^ p p ^ :近似的分布
Prior shift
p S ( x | y ) = p T ( x | y ) p S ( x | y ) = p T ( x | y ) 但p S ( y ) ≠ p T ( y ) p S ( y ) ≠ p T ( y ) . (如, 训练的时候,对每一类, 我们往往选择相同数目的样本以求保证类别的均衡).
假设根据训练样本S S 和算法A A ,我们得到了一个近似后验分布^ p S ( y | x ) p ^ S ( y | x ) , 且近似的先验分布^ p S ( y = ω k ) = m k / | S | p ^ S ( y = ω k ) = m k / | S | , 并同样假设^ p S ( x | y ) = ^ p T ( x | y ) p ^ S ( x | y ) = p ^ T ( x | y ) , 有
^ p T ( ω k | x ) = ^ w ( ω k ) ^ p S ( ω k | x ) ∑ K k ′ = 1 ^ w ( ω k ′ ) ^ p S ( ω k ′ | x ) , ^ w ( ω k ) := ^ p T ( ω k ) ^ p S ( ω k ) . (9) (9) p ^ T ( ω k | x ) = w ^ ( ω k ) p ^ S ( ω k | x ) ∑ k ′ = 1 K w ^ ( ω k ′ ) p ^ S ( ω k ′ | x ) , w ^ ( ω k ) := p ^ T ( ω k ) p ^ S ( ω k ) .
倘若我们知道^ p T ( ω k ) , k = 1 , … , K p ^ T ( ω k ) , k = 1 , … , K , 那么我们就直接可以利用(9)式来针对目标数据集了, 而这里的真正的难点在于, 如果不知道, 应该怎么办.
假设, 我们的目标数据集的样本数据为x ′ 1 , … , x ′ m x 1 ′ , … , x m ′ , 则我们的目标是求出^ p T ( ω k | x ′ ) p ^ T ( ω k | x ′ ) , 有
^ p T ( ω k ) = m ∑ i = 1 ^ p T ( ω k , x ′ i ) = 1 m m ∑ i = 1 ^ p T ( ω k | x ′ i ) , (10) (10) p ^ T ( ω k ) = ∑ i = 1 m p ^ T ( ω k , x i ′ ) = 1 m ∑ i = 1 m p ^ T ( ω k | x i ′ ) ,
其中在最后一个等号部分, 我们假设了p ( x ′ i ) = 1 m p ( x i ′ ) = 1 m , 这个假设并非空穴来风, 我们可以从EM算法角度去理解.
于是, 很自然地, 我们可以利用交替迭代求解
^ p ( s ) T ( ω k | x ′ ) = ^ w ( ω k ) ^ p S ( ω k | x ′ ) ∑ K k ′ = 1 ^ w ( ω k ′ ) ^ p S ( ω k ′ | x ′ ) , ^ w ( ω k ) := ^ p ( s ) T ( ω k ) ^ p S ( ω k ) . ^ p ( s + 1 ) T ( ω k ) = 1 m m ∑ i = 1 ^ p ( s ) T ( ω k | x ′ i ) . (11) (11) p ^ T ( s ) ( ω k | x ′ ) = w ^ ( ω k ) p ^ S ( ω k | x ′ ) ∑ k ′ = 1 K w ^ ( ω k ′ ) p ^ S ( ω k ′ | x ′ ) , w ^ ( ω k ) := p ^ T ( s ) ( ω k ) p ^ S ( ω k ) . p ^ T ( s + 1 ) ( ω k ) = 1 m ∑ i = 1 m p ^ T ( s ) ( ω k | x i ′ ) .
注: 在实际中, 由于各种因素, 这么做反而画蛇添足, 起到反效果, 我们可以通过假设检验来判断是否接受.
其趋向于χ 2 ( K − 1 ) χ ( K − 1 ) 2 对于足够多地样本.
Covariate shift
p S ( y | x ) = p T ( y | x ) p S ( y | x ) = p T ( y | x ) , 但是p S ( x ) ≠ p T ( x ) p S ( x ) ≠ p T ( x ) .
A covariate shift typically occurs when the cost or the difficulty of picking an observation with given features x strongly impacts the probability of selecting an observation (x, y) thus making it practically impossible to replicate the target feature distribution p T ( x ) p T ( x ) in the training set.
我们所希望最小化,
R T [ h ] := E p T [ ℓ ( h ( x ) ) , y ) ] = E p S [ w ( x ) ℓ ( h ( x ) ) , y ) ] . (14,15) (14,15) R T [ h ] := E p T [ ℓ ( h ( x ) ) , y ) ] = E p S [ w ( x ) ℓ ( h ( x ) ) , y ) ] .
在实际中, 若我们有w ( x ) = p T ( x ) / p S ( x ) w ( x ) = p T ( x ) / p S ( x ) 或者其一个估计^ w ( x ) w ^ ( x ) , 我们最小化经验风险
^ R S , w [ h ] := 1 m m ∑ i = 1 w ( x i ) ℓ ( h ( x i ) , y i ) . (16) (16) R ^ S , w [ h ] := 1 m ∑ i = 1 m w ( x i ) ℓ ( h ( x i ) , y i ) .
注: 以下情况不适合用(16):
p S ( x i ) = 0 p S ( x i ) = 0 但是p T ( x ) i ≠ 0 p T ( x ) i ≠ 0 ;
p S , p T p S , p T 二者差距很大, 使得w w 波动很大.
即p S p S 最好是选取范围和p T p T 近似, 这些是根据下面的理论结果的到的:
(17)有1 − δ 1 − δ 的可信度.
^ w w ^
显然, 解决(16)的关键在于^ w := ^ p T ( x ) / ^ p S ( x ) w ^ := p ^ T ( x ) / p ^ S ( x ) , 有很多的概率密度估计方法(如核密度估计(KDE)), 但是在实际应用中, 这种估计可能会导致不可控的差的结果.
一个策略是直接估计^ w w ^ , 而非分别估计^ p T , ^ p S p ^ T , p ^ S :
期望均方误差E p S [ ( ^ w − p T / p S ) 2 ] E p S [ ( w ^ − p T / p S ) 2 ] (怎么玩?);
KL散度K L ( p T ∥ ^ w p S ) K L ( p T ‖ w ^ p S ) (怎么玩?);
最大平均差异(maximum mean discrepancy, MMD).
KMM
选择kernel K ( x , y ) K ( x , y ) , 相当于将x x 映入一个希尔伯特空间(RKHS), x → Φ x x → Φ x , 其内积为⟨ Φ x , Φ y ⟩ = K ( x , y ) ⟨ Φ x , Φ y ⟩ = K ( x , y ) . 则MMD定义为:
( M M D [ α , β ] ) 2 := ∥ E x ∼ α [ Φ x ] − E x ∼ β [ Φ x ] ∥ 2 = ∥ E x ∼ α [ Φ x ] ∥ 2 − 2 ⟨ E x ∼ α [ Φ x ] , E x ∼ β [ Φ x ] ⟩ + ∥ E x ∼ β [ Φ x ] ∥ 2 . ( M M D [ α , β ] ) 2 := ‖ E x ∼ α [ Φ x ] − E x ∼ β [ Φ x ] ‖ 2 = ‖ E x ∼ α [ Φ x ] ‖ 2 − 2 ⟨ E x ∼ α [ Φ x ] , E x ∼ β [ Φ x ] ⟩ + ‖ E x ∼ β [ Φ x ] ‖ 2 .
则令α = ^ w ^ p S , β = ^ p T α = w ^ p ^ S , β = p ^ T 则
( M M D [ ^ p T , ^ w ^ p S ] ) 2 = 1 m 2 S ( 1 2 ^ w T K ^ w − k T ^ w ) + c o n s t , (21) (21) ( M M D [ p ^ T , w ^ p ^ S ] ) 2 = 1 m S 2 ( 1 2 w ^ T K w ^ − k T w ^ ) + c o n s t ,
其中^ w := ( ^ w ( x 1 ) , … , ^ w ( x m S ) ) T w ^ := ( w ^ ( x 1 ) , … , w ^ ( x m S ) ) T , K i j := 2 K ( x i , x k ) K i j := 2 K ( x i , x k ) , k i := 2 m S m T ∑ m T j = 1 K ( x i , x j ) k i := 2 m S m T ∑ j = 1 m T K ( x i , x j ) .
在实际中, 求解下面的优化问题
min w 1 2 ^ w T K ^ w − k T ^ w s . t . ^ w ( x i ) ∈ [ 0 , B ] , | 1 m S ∑ m S i = 1 ^ w ( x i ) − 1 | ≤ ϵ . min w 1 2 w ^ T K w ^ − k T w ^ s . t . w ^ ( x i ) ∈ [ 0 , B ] , | 1 m S ∑ i = 1 m S w ^ ( x i ) − 1 | ≤ ϵ .
第一个条件为了保证^ p S , ^ p T p ^ S , p ^ T 之间差距不大, 第二个条件是为了保证概率的积分为1的性质.
Concept shift
p S ( y | x ) ≠ p T ( y | x ) p S ( y | x ) ≠ p T ( y | x ) ,p S ( x ) = p T ( x ) p S ( x ) = p T ( x ) . 其往往是在时序系统下, 即分布p p 与时间有关.
周期性地利用新数据重新训练模型;
保留部分旧数据, 结合新数据训练;
加入权重;
引入有效的迭代机制;
检测偏移, 并作出反应.
Subspace mapping
训练数据为x x , 而目标数据为x ′ = T ( x ) x ′ = T ( x ) , 且p T ( T ( x ) , y ) = p S ( x , y ) p T ( T ( x ) , y ) = p S ( x , y ) ,且T T 是未知的.
我们现在的目标是找到一个有关
Wasserstein distance
以离散情形为例, 介绍,
α := m ∑ i = 1 α i δ z i , α := ∑ i = 1 m α i δ z i ,
其中δ z δ z 表示狄拉克函数.
T α := m ∑ i = 1 α i δ T ( z i ) , T α := ∑ i = 1 m α i δ T ( z i ) ,
则, 自然地, 我们希望
arg min T , T α = β E z ∼ α [ c ( z , T ( z ) ) ] , arg min T , T α = β E z ∼ α [ c ( z , T ( z ) ) ] ,
其中c ( ⋅ , ⋅ ) c ( ⋅ , ⋅ ) 是我们给定的一个损失函数, 这类问题被称为 Monge 问题.
但是呢, 这种方式找T T 非常困难, 于是有了一种概率替代方案,
γ := ∑ i , j γ i j δ z i , z ′ j (30) (30) γ := ∑ i , j γ i j δ z i , z j ′
为以离散概率分布, 则
E ( z , z ′ ) ∼ γ [ c ( z , z ′ ) ] := ∑ i , j γ i , j c ( z i , z j ) , (33) (33) E ( z , z ′ ) ∼ γ [ c ( z , z ′ ) ] := ∑ i , j γ i , j c ( z i , z j ) ,
L c ( α , β ) := min γ ∈ U ( α , β ) E ( z , z ′ ) ∼ γ [ c ( z , z ′ ) ] (34) (34) L c ( α , β ) := min γ ∈ U ( α , β ) E ( z , z ′ ) ∼ γ [ c ( z , z ′ ) ]
衡量了从分布α α 变换到分布β β 的难易程度, 其中
U ( α , β ) := { γ : s ∑ j = 1 γ i j = α i , r ∑ i = 1 γ i j = β j } , U ( α , β ) := { γ : ∑ j = 1 s γ i j = α i , ∑ i = 1 r γ i j = β j } ,
注意这实际上是一个事实, 因为α , β α , β 是其联合分布γ γ 的边缘分布.
而Wasserstein distance实际上就是
W p ( α , β ) := [ L d p ( α , β ) ] 1 / p , c ( z , z ′ ) = [ d ( z , z ′ ) ] p , p ≥ 1. (35) (35) W p ( α , β ) := [ L d p ( α , β ) ] 1 / p , c ( z , z ′ ) = [ d ( z , z ′ ) ] p , p ≥ 1.
d d 为一距离.
应用于 subspace mapping
策略一:
α = ^ p S ( x ) , β = ^ p T ( x ′ ) α = p ^ S ( x ) , β = p ^ T ( x ′ ) , 通过(34)可以找到一个γ γ , 再利用γ γ 把训练数据S S 映射到^ p T p ^ T 分布上, 再利用新的训练数据重新训练模型. (? 如何利用γ γ 变换呢?)
注:为了防止( x i , y i ) , ( x j , y j ) , y i ≠ y j ( x i , y i ) , ( x j , y j ) , y i ≠ y j 变换到同一个新数据, 需要添加一个惩罚项.
策略二:
α = ^ p S ( x , y ) , β = ^ p T ( x ′ , y ′ ) α = p ^ S ( x , y ) , β = p ^ T ( x ′ , y ′ ) , 但是y ′ y ′ 我们是不知道的, 所以用h ( x ′ ) h ( x ′ ) 代替, 且
^ p h T ( x ′ , y ′ ) := ^ p T ( x ′ ) δ y ′ = h ( x ′ ) , p ^ T h ( x ′ , y ′ ) := p ^ T ( x ′ ) δ y ′ = h ( x ′ ) ,
于是
h O T := arg min h ∈ H W 1 ( ^ p S , ^ p h T ) , (37) (37) h O T := arg min h ∈ H W 1 ( p ^ S , p ^ T h ) ,
即
h O T = arg min h ∈ H min γ ∈ U ( ^ p S , ^ p h T ) ∑ i , j γ i j d ( ( x i , y i ) , ( x ′ j , h ( x ′ j ) ) ) . (38) (38) h O T = arg min h ∈ H min γ ∈ U ( p ^ S , p ^ T h ) ∑ i , j γ i j d ( ( x i , y i ) , ( x j ′ , h ( x j ′ ) ) ) .
其中
d ( ( x , y ) , ( x ′ , y ′ ) ) := λ ρ ( x , x ′ ) + ℓ ( y , y ′ ) . d ( ( x , y ) , ( x ′ , y ′ ) ) := λ ρ ( x , x ′ ) + ℓ ( y , y ′ ) .
在实际使用中, 视实际情况而定, 加入惩罚项
h O T = arg min h ∈ H min γ ∈ U ( ^ p S , ^ p h T ) ( ∑ i , j γ i j [ λ ρ ( x i , x ′ j ) + ℓ ( y i , h ( x ′ j ) ) ] + ϵ r e g [ h ] ) . (39) (39) h O T = arg min h ∈ H min γ ∈ U ( p ^ S , p ^ T h ) ( ∑ i , j γ i j [ λ ρ ( x i , x j ′ ) + ℓ ( y i , h ( x j ′ ) ) ] + ϵ r e g [ h ] ) .
Prior shift 的EM解释
考虑联合概率p θ ( x 1 , … , x m ; z 1 , … , z m ) p θ ( x 1 , … , x m ; z 1 , … , z m ) , 其中z i , i = 1 , … , m z i , i = 1 , … , m 为隐变量, x i , i = 1 , … , m x i , i = 1 , … , m 为观测变量,EM算法步骤如下:
E步: E z [ log p θ ( x 1 , … , x m ; z 1 , … , z m ) ] E z [ log p θ ( x 1 , … , x m ; z 1 , … , z m ) ] (下面是离散情况)
2. M步:
Prior shift中, θ := [ p T ( ω 1 ) , … , p T ( ω K ) ] T θ := [ p T ( ω 1 ) , … , p T ( ω K ) ] T , 隐变量z i := ( z i 1 , … , z i K ) z i := ( z i 1 , … , z i K ) 为y i ∈ { ω 1 , … , ω K } y i ∈ { ω 1 , … , ω K } 的one-hot-encodings. 则
其对数似然为
条件概率为
且易知
所以:
因为θ k θ k 满足∑ k θ k = 1 ∑ k θ k = 1 并不相互独立, 所以利用拉格朗日乘子法
取得极值的必要条件为
即
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix