为了强迫自己阅读论文特此开了这个专题,每天分享一篇DA(Domain Adaptation)的论文,欢迎大家交流沟通。今天开始将分享ICLR2025关于DA的论文,我分享的论文主要基于自己的理解用最通俗的表达讲解清楚!
《Revisiting Source-Free Domain Adaptation: A New Perspective via Uncertainty Control》-ICLR2025
一、论文核心思想:
目的:探索如何系统建模并有效控制模型迁移过程中的不确定性,从而提升模型在未知分布下的稳定性与泛化能力。(作者想让模型在“不知道的领域”、“信不过的伪标签”、“混乱的训练信号”里,也能做出不盲目、不鲁莽、但又有效的判断。)
contribution:
- 重新审视“对比学习”在迁移中的副作用。现有方法往往简单地拿相似样本当“正对”,拿剩下样本当“反例”,但在迁移场景中,这种操作误差很大 。
- 提出一种泛化更强的鲁棒训练框架;作者引入分布鲁棒优化(DRO),用“最坏情况”的视角来构建损失函数,不是为了更复杂,而是为了更稳、更抗干扰。
- 让机器在面对“不确定”样本时更聪明、更保守;对于那些模型预测分布非常模糊的样本(比如同时给出猫0.4,狗0.35,狐狸0.25),与其硬选一个标签,不如承认不确定,给它“部分标签”,让模型慢慢学习。
对于SFDA(Source-Free Domain Adaptation)很多方法尝试用伪标签、数据增强等技巧适应目标域,但作者发现这些方法忽视了两个很关键的不确定性:
-
负样本不确定性:你以为是“反例”,其实是“同类”;
-
正样本监督不确定性:你以为是可靠的“邻居”,其实人家也没搞懂自己是谁。
图1:SFDA框架图
图中的“邻居”是指:特征提取器 𝑓(图1中所示)将在目标域图像中提取的样本映射到特征空间后,依据特征之间的相似性所形成的局部邻域结构。具体而言,每个目标样本在该空间中会有一组距离较近的样本,这些相似样本即被视为其“邻居”,常用于伪标签传播、对比学习或结构保持等任务中。这种邻居结构能够反映目标域样本之间的潜在语义关系,即使在缺乏真实标签的情况下,也可以作为可靠的“局部监督信息”引导模型进行自适应训练。因此,构建高质量的邻居图结构是许多 SFDA 方法中提升伪标签质量、增强训练鲁棒性的关键手段之一。
正负样本来源于对比学习;对比学习是一种通过“比较样本之间的相似性与差异性”来训练模型的方法,目标是让模型学会:
1.相似的样本要靠近(正样本);
2.不相似的样本要远离(负样本;
常见的方法一般认为"邻居"为正样本,非邻居样本则被视为负样本。由于聚类假设,相同类别的样本映射到特征空间时会倾向于邻居关系,但是这种映射并不是100%,也会存在错误的邻居关系。于是作者设计了一种机制——UCon-SFDA,它做了两件事:
- 控制负样本的“偏差风险”
- 缓解正样本的“伪指导风险”
二、公式详解
公式 1:基础对比损失(Contrastive Loss)
L C L = L C L + + λ C L − L C L − L_{CL} = L_{CL}^{+} + \lambda_{CL}^{-} L_{CL}^{-} LCL=LCL++λCL−LCL−
解释:
- L C L + L_{CL}^{+} LCL+:正样本损失;让目标数据和“同类”更像。
- L C L − L_{CL}^{-} LCL−:负样本损失;让目标数据和“非同类”更不像。
类比举例:
想象你正在分辨猫狗照片,把“猫图1”和“猫图2”变得特征更接近(这是正样本);“猫图1”和“狗图3”变远(这是负样本)。但因为你没标签,只能用特征邻近关系+原模型判断,这容易搞错。
公式 2:负样本不确定性 DRO 表达式
R
x
−
(
θ
;
P
−
,
δ
)
=
sup
Q
−
∈
Γ
δ
(
P
−
)
E
Q
−
[
S
θ
(
X
−
,
x
)
]
R_{x}^{-}(\theta; P^{-}, \delta) = \sup_{Q^{-} \in \Gamma_\delta(P^{-})} \mathbb{E}_{Q^{-}}[S_\theta(X^{-}, x)]
Rx−(θ;P−,δ)=Q−∈Γδ(P−)supEQ−[Sθ(X−,x)]
DRO核心思想:
不再假设负样本分布
(
P
−
)
( P^- )
(P−) 完全可靠,而是从 所有可能的负样本分布(即
(
Γ
δ
(
P
−
)
)
内的
(
Q
−
)
( \Gamma_\delta(P^-) ) 内的 ( Q^- )
(Γδ(P−))内的(Q−))中,选择 最坏情况 来优化模型——迫使模型对“最不利的负样本分布”也保持鲁棒性,避免过拟合噪声负样本。
解释:
符号 | 解释 |
---|---|
( P − ) ( P^- ) (P−) | 负样本的 参考分布(理想情况下为真实负样本的概率分布)。 |
( Q − ) ( Q^- ) (Q−) | 属于不确定性集 ( Γ δ ( P − ) ) ( \Gamma_\delta(P^-) ) (Γδ(P−)) 的任意负样本分布,代表“最坏情况”的可能分布。 |
( Γ δ ( P − ) ) ( \Gamma_\delta(P^-) ) (Γδ(P−)) | 以 ( P − ) ( P^- ) (P−) 为中心、半径为 ( δ ) ( \delta ) (δ) 的不确定性集,通常基于距离度量定义 |
( S θ ( X − , x ) ) ( S_\theta(X^-, x) ) (Sθ(X−,x)) | 锚点 ( x ) 与负样本 ( X^- ) 的相似性度量(如余弦相似性)。 |
由于负样本采样可能包含 假阴性(False Negatives),导致训练阶段的经验分布
P
train
−
P_{\text{train}}^-
Ptrain−被污染:
P
train
−
=
(
1
−
ϵ
)
P
−
+
ϵ
P
~
−
P_{\text{train}}^- = (1-\epsilon)P^- + \epsilon\tilde{P}^-
Ptrain−=(1−ϵ)P−+ϵP~−
其中,
(
ϵ
)
( \epsilon )
(ϵ) 为污染率(假阴性占比),
(
P
~
−
)
(\tilde{P}^- )
(P~−)为异常分布(被误判为负样本的同类分布)。
定理推导:
当采用 χ²散度 定义不确定性集时,风险 ( R_x^- ) 可拆解为 “平均相似性” + “相似性方差的上界”:
R
x
−
≤
E
[
S
]
+
δ
⋅
Var
[
S
]
R_x^- \leq \mathbb{E}[S] + \sqrt{\delta \cdot \text{Var}[S]}
Rx−≤E[S]+δ⋅Var[S]
这意味着需同时控制负样本相似性的 均值 和 方差(对应后续的 分散控制项
(
L
D
C
−
)
( L_{DC}^- )
(LDC−))。
通过 数据增强 模拟“伪负样本”,显式优化负样本分布的不确定性:
-
伪负样本构造:
对锚点 ( x_i ) 施加随机增强(如模糊、旋转、裁剪),得到增强样本 ( AUG ( x i ) ) ( \text{AUG}(x_i) ) (AUG(xi))。若模型对 ( x i ) ( x_i ) (xi)和 ( AUG ( x i ) ) ( \text{AUG}(x_i) ) (AUG(xi))的预测不一致(如类别概率差异超过阈值),则将 ( AUG ( x i ) ) ( \text{AUG}(x_i) ) (AUG(xi)) 视为 伪负样本。 -
分散控制损失:
最小化锚点与伪负样本的相似性,迫使模型区分“真负样本”和“伪负样本”:
L D C − = − 1 N T ∑ i = 1 N T ⟨ f ( x i ; θ ) , log f ( AUG ( x i ) ; θ ) ⟩ L_{DC}^{-} = -\frac{1}{N_T} \sum_{i=1}^{N_T} \left\langle f(x_i; \theta), \log f\big(\text{AUG}(x_i); \theta\big) \right\rangle LDC−=−NT1i=1∑NT⟨f(xi;θ),logf(AUG(xi);θ)⟩
(其中 ( ⟨ ⋅ , ⋅ ⟩ ) ( \langle \cdot, \cdot \rangle ) (⟨⋅,⋅⟩)表示向量内积,衡量特征相似性。)该操作扩大了 真负样本 与 伪负样本 的相似性差距,降低负样本分布的不确定性,提升模型对假阴性的鲁棒性。
公式 3:正样本的部分标签 DRO 解
p ∗ = arg min p ∈ Δ K − 1 sup q ∈ Γ δ ( p + ) ⟨ q , − p ⟩ p^* = \arg\min_{p \in \Delta^{K-1}} \sup_{q \in \Gamma_\delta(p^+)} \langle q, -p \rangle p∗=argp∈ΔK−1minq∈Γδ(p+)sup⟨q,−p⟩
解释:
- 原本你用正样本预测为“猫”的概率分布 p + p^+ p+,去指导锚点样本的预测 p p p,
- 但这个“正样本”也可能预测分布很分散,所以你不能全信它。
- 作者构造了一个不确定性集 Γ δ ( p + ) \Gamma_\delta(p^+) Γδ(p+),然后看最差的 q 影响下你能否稳住预测。
结果:
如果你对某个样本不是很确定它是猫、狗还是狐狸,那就干脆别只选一个标签——给它一组可能的候选标签(partial label set),让模型更稳一点。
部分标签损失 ( L P L + ) (L_{PL}^{+}) (LPL+)
L P L + = 1 N T ∑ i = 1 N T ∑ y k , i ∈ Y P L , i 1 { x i ∈ U } ℓ C E ( y k , i , f ( x i ; θ ) ) \mathcal{L}_{PL}^{+} = \frac{1}{N_{T}} \sum_{i=1}^{N_{T}} \sum_{y_{k,i} \in \mathcal{Y}_{PL,i}} \mathbb{1}_{\left\{x_{i} \in \mathcal{U}\right\}} \ell_{CE}\left(y_{k,i}, f\left(x_{i} ; \theta\right)\right) LPL+=NT1i=1∑NTyk,i∈YPL,i∑1{xi∈U}ℓCE(yk,i,f(xi;θ))
解释
-
(
Y
P
L
,
i
)
(\mathcal{Y}_{PL,i})
(YPL,i):
针对样本 ( x i ) (x_i) (xi) 的部分标签集,包含其历史预测中概率最高的前 ( K P L ) (K_{PL}) (KPL) 个标签(例如,若 ( K P L = 2 ) (K_{PL}=2) (KPL=2),则保留前两个可能的标签)。 -
(
U
)
(\mathcal{U})
(U):
不确定样本集合,通过阈值 ( τ ) (\tau) (τ) 筛选(如 ( f ( x ; θ ) ( 1 ) f ( x ; θ ) ( 2 ) ≤ τ ) (\frac{f(x;\theta)_{(1)}}{f(x;\theta)_{(2)}} \leq \tau) (f(x;θ)(2)f(x;θ)(1)≤τ),即当最高和次高预测概率的比值小于阈值时,视为不确定样本)。 -
(
ℓ
C
E
)
(\ell_{CE})
(ℓCE):
平滑交叉熵损失(Smoothed Cross-Entropy Loss),用于计算预测概率 ( f ( x i ; θ ) ) (f(x_i;\theta)) (f(xi;θ)) 与部分标签 ( y k , i ) (y_{k,i}) (yk,i) 之间的损失。
损失作用:
当模型对目标样本的预测概率分布较为分散(即不确定)时,直接使用单一伪标签可能引入噪声。通过保留前
(
K
P
L
)
(K_{PL})
(KPL) 个可能的标签(如 top-2 标签),允许模型在训练中考虑多个潜在类别,避免因单一错误标签导致的过拟合。
三、方法构成与架构细节
总体架构
UCon-SFDA 方法包含两条主线(负样本、正样本):
模块 | 方法 | 作用 |
---|---|---|
负样本分支 | Dispersion Control via Data Aug | 缓解 false negative 误差 |
正样本分支 | Partial Label Learning via DRO | 缓解伪标签指导风险 |
最终损失函数结构:
L UCon-SFDA = L C L + λ D C L D C − + λ P L L P L + L_{\text{UCon-SFDA}} = L_{CL} + \lambda_{DC} L_{DC}^{-} + \lambda_{PL} L_{PL}^{+} LUCon-SFDA=LCL+λDCLDC−+λPLLPL+
- L C L L_{CL} LCL:常规对比损失
- L D C − L_{DC}^{-} LDC−:负样本的不确定性控制项(利用增强图像模拟“伪负样本”)
- L P L + L_{PL}^{+} LPL+:正样本的部分标签监督项(只对不确定样本加多标签)
伪负样本举例:
把一只猫图加上模糊+旋转,你的模型居然把它认成狗?那说明模型不稳定,于是这张图就成了“伪负样本”,拿来专门训练模型不要乱认。
四、总结
- 原始问题:目标域无标签,无源域数据,只能靠源域模型来适应新域。
- 问题发现:
- 错把“正样本”当“负样本”:负样本选错。
- 正样本伪标签不靠谱。
- 理论支撑:用 DRO 构造“最坏情形下的风险”,让模型“先假设自己看错了”,再求最安全的决策。
- 方法亮点:
- 引入伪负样本控制负样本误差;
- 使用部分标签,允许“不太确定”的数据有多种解释。