- 监督学习的目的就是从训练集
Dtr={ (xtr1,ytr1),...,(xtrm,ytrm)}⊆X×Y
中寻找出一个合适的模型 f 使它适用于测试集
Dte={ (xte1,yte1),...,(xten,yten)}⊆X×Y
其中 ytei 是未知的。很多情况下训练集和测试集并不是同分布,例如 PtrXY≠PteXY ,因此需要引入域适应算法来解决此类问题。
![85%]()
5工况标签分布图                       5工况数据分布图
以JDA为例,进行域适应
JDA |
JDA+调整Y分布 |
工况1-5 |
24.45 |
工况1-4 |
16.41 |
目录
[toc]
Why and how to correct for target/conditional shift?
- Target shift(TarS)
PtrX∣Y=PteX∣Y 并且 Ptr(Y)≠Pte(Y)
- Conditional Shift(ConS)
PtrX∣Y≠PteX∣Y 并且 Ptr(Y)=Pte(Y)
- Generalized target shift(GeTarS)
PtrX∣Y≠PteX∣Y 并且 Ptr(Y)≠Pte(Y)
为了从训练集 Dtr={xi,yi}mi=1 中寻找出回归、分类器 f(x) ,在测试集上可以精准预测。文中提出两种方法:
1. Importance reweighting
2.Sample transformation and reweighting
Importance reweighting
最小测试集上的化期望损失函数
R[Pte,θ,l(x,y,θ)]=E(x,y)∼PteXY[l(x,y,θ)]=
E(x,y)∼PtrXY⋅PteY/PtrY⋅PteX∣Y/PtrX∣Y⋅l(x,y,θ)dxdy
- PteXY 被包含于 PtrXY
- PXY 分解为 PYPX∣Y 而不是 PXPY∣X
- θ 表示损失函数 l(x,y,θ) 的参数
- 令 β∗(y)=PteY/PtrY ,而且, γ∗=PteX∣Y/PtrX∣Y
最终需要使得经验损失最小:
R^=∑i=1mβ∗(ytri)γ∗(xtri,ytri)l(xi,yi,θ)
在寻找一个转换器 Γ 使得:
Xnew=Γ(Xtr,Ytr)
并且使得
PnewX∣Y=PteX∣Y
测试集上的期望损失为:
R[Pte,θ,l(x,y,θ)]=EPteXY[l(x,y,θ)]=∫PtrY⋅β∗(ytri)⋅l(x,y,θ)dxdy=E(x,y)∼PtrYPnewx∣y[β∗(y)l(x,y,θ)]
Ytr 在转化函数 Γ 中是一个关键,不同的 Y 可能导致 Γ 的不同
最终需要使得经验损失最小:
R^=∑i=1mβ∗(ytri)l(xnewi,ytri,θ)
Correction for target shift
目标是在 PtrX∣Y=PteX∣Y 和 PtrY≠PteY 的情况下,寻找 β∗(y)=PteY/PtrY ,并且有如下几个假设:
- 训练数据比测试数据丰富
- Y 只存在一种可能的分布,与 Ptrx|y 影响 PteX
- k,l 分别是 X,Y 的核,并且是特有的
kernel mean matching
PX 的核均值嵌入是在再生核希尔伯特空间(RKHS)中的一个点,可以通过下式计算得到:
μ[Px]=Ex∼PX[ψ(X)]
其经验估计是:
μ[Px]=1m∑i=1mψ(xi)
![120%]()
核均值嵌入
PX∣Y 的可以认为是从 G 空间到 F 空间的映射定义为:
U[PX]=CXYC−1YY
其中 CXY 表示互协方差, CYY 为自协方差,并且可以得到
μ[PX]=U[PX∣Y]μ[PY]
经验估计为:
U^X∣Y=Ψ(L+λI)−1ΦT
为了使得 PnewY=β(y)PtrY ,需要在匹配 PnewX 和 PteX 的过程中计算得出 β(y)
β∗=argmin||μ[Pnew(X)]−μ[Pte(X)]||
=U[Ptr(X∣Y)]EY∼Ptr(Y)[β(y)ϕ(y)]−μ[Pte(X)]||
根据经验估计值计算上式的平方:
||U^X∣Y⋅1m∑i=1mβiϕ(yi)tr−1nψ(xtei)||2
=1m2βTL(L+λmI)−1K(L+λmI)−1Lβ
−2mn1TKc(L+λmI)−1Lβ+const
令
βTL(L+λmI)−1K(L+λmI)−1L=J
1TKc(L+λmI)−1L=M
问题可以等价为一个QP问题
min.12βTJβ−mnMβ
s.t. βi∈[0,B] 并且 |∑mi=1βi−m|≤mε , B , ε 是参数
Location-scale generalized target shift
假设: PY 和 PX∣Y 都发生了改变,但是 PX∣Y 仅仅在位置和尺度上发生了变化。
例如: ∃ W(Ytr)=diag[w1(Ytr),...,wd(Ytr)] ,并且 B(Ytr)=[b1(Ytr),...,bd(Ytr)]T
Thanks for watching