A Primer on Domain Adaptation Theory and Applications

Pirmin Lemberger, Ivan Panico, A Primer on Domain Adaptation
Theory and Applications, 2019.

机器学习分为训练和测试俩步骤, 且往往假设训练样本的分布和测试样本的分布是一致的, 但是这种情况在实际中并不一定成立. 作者就prior shift, covratie shift, concept shift, subspace mapping 四种情形给出相应的'解决方案".

主要内容

符号说明

xXRp: 数据
yY={ω1,,ωk}: 类别标签
S={(x1,y1),(xm,ym)}: 训练样本
hH:XY: 拟合函数/分类器
y^=h(x):预测
:Y×YR: 损失函数
R[h]:=E(x,y)p[(y,h(x)]: risk
R^[h]:=1mi=1m[(yi,h(xi)]: 经验风险函数
pS: 训练数据对应的分布
pT: 目标数据对应的分布
p^:近似的分布

Prior shift

pS(x|y)=pT(x|y)pS(y)pT(y). (如, 训练的时候,对每一类, 我们往往选择相同数目的样本以求保证类别的均衡).

在这里插入图片描述

假设根据训练样本S和算法A,我们得到了一个近似后验分布p^S(y|x), 且近似的先验分布p^S(y=ωk)=mk/|S|, 并同样假设p^S(x|y)=p^T(x|y), 有

(9)p^T(ωk|x)=w^(ωk)p^S(ωk|x)k=1Kw^(ωk)p^S(ωk|x),w^(ωk):=p^T(ωk)p^S(ωk).

倘若我们知道p^T(ωk),k=1,,K, 那么我们就直接可以利用(9)式来针对目标数据集了, 而这里的真正的难点在于, 如果不知道, 应该怎么办.

假设, 我们的目标数据集的样本数据为x1,,xm, 则我们的目标是求出p^T(ωk|x), 有

(10)p^T(ωk)=i=1mp^T(ωk,xi)=1mi=1mp^T(ωk|xi),

其中在最后一个等号部分, 我们假设了p(xi)=1m, 这个假设并非空穴来风, 我们可以从EM算法角度去理解.

于是, 很自然地, 我们可以利用交替迭代求解

(11)p^T(s)(ωk|x)=w^(ωk)p^S(ωk|x)k=1Kw^(ωk)p^S(ωk|x),w^(ωk):=p^T(s)(ωk)p^S(ωk).p^T(s+1)(ωk)=1mi=1mp^T(s)(ωk|xi).

注: 在实际中, 由于各种因素, 这么做反而画蛇添足, 起到反效果, 我们可以通过假设检验来判断是否接受.
在这里插入图片描述

在这里插入图片描述

其趋向于χ(K1)2对于足够多地样本.

Covariate shift

pS(y|x)=pT(y|x), 但是pS(x)pT(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 pT(x) in the training set.
在这里插入图片描述

我们所希望最小化,

(14,15)RT[h]:=EpT[(h(x)),y)]=EpS[w(x)(h(x)),y)].

在实际中, 若我们有w(x)=pT(x)/pS(x)或者其一个估计w^(x), 我们最小化经验风险

(16)R^S,w[h]:=1mi=1mw(xi)(h(xi),yi).

注: 以下情况不适合用(16):

  1. pS(xi)=0 但是pT(x)i0;
  2. pS,pT二者差距很大, 使得w波动很大.

pS最好是选取范围和pT近似, 这些是根据下面的理论结果的到的:
在这里插入图片描述
(17)有1δ的可信度.

w^

显然, 解决(16)的关键在于w^:=p^T(x)/p^S(x), 有很多的概率密度估计方法(如核密度估计(KDE)), 但是在实际应用中, 这种估计可能会导致不可控的差的结果.

一个策略是直接估计w^, 而非分别估计p^T,p^S:

  • 期望均方误差EpS[(w^pT/pS)2](怎么玩?);
  • KL散度KL(pTw^pS)(怎么玩?);
  • 最大平均差异(maximum mean discrepancy, MMD).
KMM

选择kernel K(x,y), 相当于将x映入一个希尔伯特空间(RKHS), xΦx, 其内积为Φx,Φy=K(x,y). 则MMD定义为:

(MMD[α,β])2:=Exα[Φx]Exβ[Φx]2=Exα[Φx]22Exα[Φx],Exβ[Φx]+Exβ[Φx]2.

则令α=w^p^S,β=p^T
在这里插入图片描述

(21)(MMD[p^T,w^p^S])2=1mS2(12w^TKw^kTw^)+const,

其中w^:=(w^(x1),,w^(xmS))T, Kij:=2K(xi,xk), ki:=2mSmTj=1mTK(xi,xj).

在实际中, 求解下面的优化问题

minw12w^TKw^kTw^s.t.w^(xi)[0,B],|1mSi=1mSw^(xi)1|ϵ.

第一个条件为了保证p^S,p^T之间差距不大, 第二个条件是为了保证概率的积分为1的性质.

Concept shift

pS(y|x)pT(y|x)pS(x)=pT(x). 其往往是在时序系统下, 即分布p与时间有关.

  1. 周期性地利用新数据重新训练模型;
  2. 保留部分旧数据, 结合新数据训练;
  3. 加入权重;
  4. 引入有效的迭代机制;
  5. 检测偏移, 并作出反应.

在这里插入图片描述

Subspace mapping

训练数据为x, 而目标数据为x=T(x), 且pT(T(x),y)=pS(x,y),且T是未知的.

我们现在的目标是找到一个有关

Wasserstein distance

以离散情形为例, 介绍,

α:=i=1mαiδzi,

其中δz表示狄拉克函数.

Tα:=i=1mαiδT(zi),

则, 自然地, 我们希望

argminT,Tα=βEzα[c(z,T(z))],

其中c(,)是我们给定的一个损失函数, 这类问题被称为 Monge 问题.
在这里插入图片描述

但是呢, 这种方式找T非常困难, 于是有了一种概率替代方案,

(30)γ:=i,jγijδzi,zj

为以离散概率分布, 则

(33)E(z,z)γ[c(z,z)]:=i,jγi,jc(zi,zj),

(34)Lc(α,β):=minγU(α,β)E(z,z)γ[c(z,z)]

衡量了从分布α变换到分布β的难易程度, 其中

U(α,β):={γ:j=1sγij=αi,i=1rγij=βj},

注意这实际上是一个事实, 因为α,β是其联合分布γ的边缘分布.

而Wasserstein distance实际上就是

(35)Wp(α,β):=[Ldp(α,β)]1/p,c(z,z)=[d(z,z)]p,p1.

d为一距离.

应用于 subspace mapping

策略一:
α=p^S(x),β=p^T(x), 通过(34)可以找到一个γ, 再利用γ把训练数据S映射到p^T分布上, 再利用新的训练数据重新训练模型. (? 如何利用γ变换呢?)

注:为了防止(xi,yi),(xj,yj),yiyj变换到同一个新数据, 需要添加一个惩罚项.

策略二:
α=p^S(x,y),β=p^T(x,y), 但是y我们是不知道的, 所以用h(x)代替, 且

p^Th(x,y):=p^T(x)δy=h(x),

于是

(37)hOT:=argminhHW1(p^S,p^Th),

(38)hOT=argminhHminγU(p^S,p^Th)i,jγijd((xi,yi),(xj,h(xj))).

其中

d((x,y),(x,y)):=λρ(x,x)+(y,y).

在实际使用中, 视实际情况而定, 加入惩罚项

(39)hOT=argminhHminγU(p^S,p^Th)(i,jγij[λρ(xi,xj)+(yi,h(xj))]+ϵreg[h]).

Prior shift 的EM解释

考虑联合概率pθ(x1,,xm;z1,,zm), 其中zi,i=1,,m为隐变量, xi,i=1,,m为观测变量,EM算法步骤如下:

  1. E步: Ez[logpθ(x1,,xm;z1,,zm)](下面是离散情况)

在这里插入图片描述
2. M步:

在这里插入图片描述

Prior shift中, θ:=[pT(ω1),,pT(ωK)]T, 隐变量zi:=(zi1,,ziK)yi{ω1,,ωK}的one-hot-encodings. 则

在这里插入图片描述
其对数似然为
在这里插入图片描述
条件概率为
在这里插入图片描述
且易知
在这里插入图片描述
在这里插入图片描述
所以:
在这里插入图片描述
因为θk满足kθk=1并不相互独立, 所以利用拉格朗日乘子法
在这里插入图片描述
取得极值的必要条件为
在这里插入图片描述

在这里插入图片描述

posted @   馒头and花卷  阅读(329)  评论(0编辑  收藏  举报
编辑推荐:
· 开发者必知的日志记录最佳实践
· 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
点击右上角即可分享
微信分享提示