【读点论文】A Unified Approach to Domain Incremental Learning with Memory多损失融合加权调参加上历史数据记忆缓冲,平衡旧模型能力和新领域泛化
本文提出统一领域增量学习(UDIL)框架,用于解决带记忆的领域增量学习问题 —— 即模型需适应序列领域并仅访问少量过往领域数据(记忆库),同时缓解 “灾难性遗忘”。UDIL 的核心价值在于统一现有主流方法(如 ER、LwF、DER++ 等),理论分析表明这些方法本质是用不同固定系数最小化同一泛化误差界,而 UDIL 通过**自适应调整系数**始终实现更紧的误差界。域增量问题” 本质就是:**模型要
A Unified Approach to Domain Incremental Learning with Memory: Theory and Algorithm
Abstract
- 领域增量学习旨在适应一系列领域,仅访问先前领域的一小部分数据(即内存)。针对这个问题已经提出了各种方法,但目前还不清楚它们之间的关系以及实践者何时应该选择一种方法而不是另一种方法。作为回应,我们提出了一个统一的框架,称为统一领域增量学习(UDIL),用于带有记忆的领域增量学习。我们的 UDIL 统一了各种现有方法,并且我们的理论分析表明,与这些方法相比,UDIL 始终实现更严格的泛化误差界限。关键的见解是不同的现有方法对应于我们具有不同固定系数的界限;基于这种统一的见解,我们的 UDIL 允许在训练期间使用自适应系数,从而始终实现最紧密的界限。实证结果表明,我们的 UDIL 在合成数据集和真实数据集上都优于最先进的领域增量学习方法。代码将在以下位置提供:[GitHub - Wang-ML-Lab/unified-continual-learning: NeurIPS 2023] A Unified Approach to Domain Incremental Learning with Memory: Theory and Algorithm。
- 本文提出统一领域增量学习(UDIL)框架,用于解决带记忆的领域增量学习问题 —— 即模型需适应序列领域并仅访问少量过往领域数据(记忆库),同时缓解 “灾难性遗忘”。UDIL 的核心价值在于统一现有主流方法(如 ER、LwF、DER++ 等),理论分析表明这些方法本质是用不同固定系数最小化同一泛化误差界,而 UDIL 通过自适应调整系数始终实现更紧的误差界。
- 假设你要训练一个 “识别猫” 的模型,第一步先学白天的猫(第一个 “域”),模型学得很好;第二步要学夜晚的猫(第二个 “域”)—— 此时问题来了:如果直接用夜晚的猫数据训练,模型会慢慢 “忘记” 怎么识别白天的猫(这就是 “灾难性遗忘”);更麻烦的是,你不能把所有白天的猫数据都存着(内存有限,只能存少量,这就是 “记忆约束”)。“域增量问题” 本质就是:模型要依次学多个 “相似但不同” 的数据分布(比如白天 / 夜晚的猫、不同角度的车),既不能忘旧知识,又只能用少量旧数据,还要学好新知识。UDIL 的核心思路可以总结为 “先统一,再平衡,后适应”。
Introduction
-
尽管大规模机器学习模型最近取得了成功,但从不断变化的环境中持续学习仍然是一个长期的挑战。与在静态数据集上进行学习的传统机器学习范式不同,领域增量学习,即不断发展的领域的持续学习,希望使模型适应动态变化的数据分布,同时保留从先前领域学到的知识。简单的方法,例如在新领域中不断微调模型,将在以前的领域中遭受显着的性能下降;这被称为“灾难性遗忘”。一般来说,领域增量学习算法旨在最小化所有领域的总风险,即
-
L ∗ ( θ ) = L t ( θ ) + L 1 : t − 1 ( θ ) = E ( x , y ) ∼ D t [ ℓ ( y , h θ ( x ) ] + ∑ i = 1 t − 1 E ( x , y ) ∼ D i [ ℓ ( y , h θ ( x ) ] , ( 1 ) L ^∗ (θ) = L_t(θ) + L_{1:t−1}(θ) = E_{(x,y)∼D_t} [ℓ(y, h_θ(x)] + \sum^{t−1}_{i=1} E_{(x,y)∼D_i} [ℓ(y, h_θ(x)], (1) L∗(θ)=Lt(θ)+L1:t−1(θ)=E(x,y)∼Dt[ℓ(y,hθ(x)]+i=1∑t−1E(x,y)∼Di[ℓ(y,hθ(x)],(1)
-
其中 L t L_t Lt 计算模型 hθ 在当前域数据分布 Dt 上的预期预测误差 ℓ。 L 1 : t − 1 L_{1:t−1} L1:t−1 是对过去 t − 1 个域的数据分布评估的总误差,即 { D i } i = 1 t − 1 \{D_i\}^{t−1}_{i=1} {Di}i=1t−1。
-
-
领域增量学习的主要挑战来自于实际的内存限制,即不允许(或仅非常有限)访问过去领域的数据。在这样的约束下,准确估计和优化过去的误差 L 1 : t − 1 L_{1:t−1} L1:t−1 即使不是不可能,也是很困难的。因此,最近领域增量学习方法的主要焦点是为 L1:t−1 开发有效的替代学习目标。在这些方法中,基于重放的方法在训练期间重放一小组旧样本,一直显示出前景,因此在实践中得到广泛使用。
-
一个典型的例子是 ER ,它存储一组样本 M 并使用重放损失 Lreplay 作为 L 1 : t − 1 L_{1:t−1} L1:t−1 的替代。此外,固定的预定系数β用于平衡当前领域学习和过去样本回放。具体来说,
-
L ˉ ( θ ) = L t ( θ ) + β ⋅ L r e p l a y ( θ ) = L t ( θ ) + β ⋅ E ( x ′ , y ′ ) ∼ M [ ℓ ( y ′ , h θ ( x ′ ) ] . ( 2 ) \bar L(θ) = L_t(θ) + β · L_{replay}(θ) = L_t(θ) + β · E_{(x′ ,y′)∼M}[ℓ(y ′ , h_θ(x ′ )]. (2) Lˉ(θ)=Lt(θ)+β⋅Lreplay(θ)=Lt(θ)+β⋅E(x′,y′)∼M[ℓ(y′,hθ(x′)].(2)
-
虽然此类方法在实践中很流行,但代理损失(βLreplay)与真实目标( L 1 : t − 1 L_{1:t−1} L1:t−1 )之间仍然存在差距,导致它们缺乏理论支持,因此其可靠性受到质疑。此外,不同的方法使用不同的设置β的方案,并且尚不清楚它们如何相关以及实践者何时应该选择一种方法而不是另一种方法。
-
-
为了应对这些挑战,我们开发了一个统一的泛化误差界,并从理论上表明,不同的现有方法实际上是用不同的固定系数最小化相同的误差界(更多详细信息请参见表 1)。基于这些见解,我们开发了一种算法,允许在训练期间使用自适应系数,从而始终实现最紧界限并提高性能。我们的贡献如下:
- 我们提出了一个统一的框架,称为统一领域增量学习(UDIL),用于具有记忆的领域增量学习,以统一各种现有方法。
- 我们的理论分析表明,不同的现有方法相当于用不同的固定系数最小化相同的误差界。基于这种统一的见解,我们的 UDIL 允许在训练期间使用自适应系数,从而始终实现最紧密的界限并提高性能。
- 实证结果表明,我们的 UDIL 在合成数据集和真实数据集上都优于最先进的领域增量学习方法。
-
领域增量学习(DIL)定义:适应序列领域,保留过往知识。记忆约束(仅少量过往数据)+ 灾难性遗忘。现有方法局限缺乏理论统一,固定系数难权衡当前/过往学习。UDIL(Unified Domain Incremental Learning)统一现有方法,实现自适应系数优化。理论基础:泛化误差界,基础界:Lemma3.1(ERM-based界,依赖记忆库数据,界较松);改进界:Lemma3.2(域内模型界,用历史模型Ht-1,仍受记忆限制)、Lemma3.3(跨域模型界,用当前域数据,依赖域差异度);统一界:Theorem3.4(融合三界,引入系数αi/βi/γi,αi+βi+γi=1)。
-
损失转换:分类损失(ERM项)、蒸馏损失(域内/跨域项)、 divergence项(域对齐)。Algorithm1(初始化→判别器训练→系数更新→模型优化→记忆更新)。关键设计:自适应系数Ω(αi/βi/γi)、编码器-判别器对抗对齐
Related Work
-
持续学习。先前关于持续学习的工作可以大致分为三种场景:(i)任务增量学习,其中任务索引在训练和测试期间都可用,(ii)类别增量学习,其中新类别增量地包含在分类器中,以及(iii)领域增量学习,其中数据分布的增量变化被明确建模。无论哪种情况,持续学习的主要挑战是通过仅有限地访问先前的数据来减轻灾难性遗忘;因此,一种情况下的方法通常可以很容易地适应另一种情况。
-
人们提出了许多方法来应对这一挑战,包括功能和参数正则化,限制优化过程,开发增量更新组件,设计模块化模型架构,通过额外的归纳偏差改进表示学习,以及贝叶斯方法 。其中,在训练期间重放一小部分旧样本(即记忆)已显示出巨大的前景,因为它易于部署,适用于所有三种场景,而且最重要的是,实现了令人印象深刻的性能。因此,在本文中,我们专注于具有记忆的领域增量学习,旨在提供一个原则性的理论框架来统一这些现有方法。
-
领域适应和领域增量学习。与我们的工作松散相关的是域适应(DA)方法,它将在标记源域上训练的模型调整为未标记目标域。许多先前的 DA 工作侧重于通过直接匹配统计属性 或对抗性训练 来匹配源域和目标域的分布。与 DA 的受欢迎程度相比,领域增量学习(DIL)过去受到的关注有限。然而,它现在在研究界获得了巨大的关注。这些研究主要集中在 DIL 的实际应用上,例如语义分割 、自动驾驶的对象检测 以及在开放世界环境中持续学习 。
-
受对抗性 DA 理论基础的启发,据我们所知,我们提出了 DIL 的第一个统一上限。与我们的工作最相关的是以前的 DA 方法,它们根据相关的给定或推断的域索引 、域图 和域分类 灵活地对齐不同的域。 DA 和 DIL 之间的主要区别在于,前者侧重于提高目标域的准确性,而后者侧重于所有域的总误差,并采取额外措施来减轻先前域的遗忘。更重要的是,DA 方法通常需要访问目标域数据以匹配分布,因此不能直接应用于 DIL。
Theory: Unifying Domain Incremental Learning
-
在本节中,我们形式化了领域增量学习的问题,提供了在记忆库上简单应用经验风险最小化(ERM)的泛化界限,推导出更适合领域增量学习的两个误差界限(即域内和跨域误差界限),然后统一这三个界限以提供我们最终的自适应误差界限。然后,我们在第 4 节中开发了一种受此界限启发的算法。 所有引理、定理和推论的证明都可以在附录 A 中找到。
-
问题设置和符号。我们考虑 T 域一一到达的域增量学习问题。每个域 i 包含 Ni 个数据点 S i = { ( x j ( i ) , y j ( i ) ) } j = 1 N i S_i = \{(x ^{(i)}_j , y ^{(i)}_j )\} ^{N_i}_{j=1} Si={(xj(i),yj(i))}j=1Ni,其中 ( x j ( i ) , y j ( i ) ) (x^{(i)}_j , y^{(i)}_j ) (xj(i),yj(i)) 是从域 i 的数据分布 Di 中采样的。假设当域 t ∈ [ T ] ≜ { 1 , 2 , . . . , T } t ∈ [T] ≜ \{1, 2, ... , T\} t∈[T]≜{1,2,...,T} 在时间 t 到达,可以访问 (1) 当前域 t 的数据 S t S_t St,(2) 存储体 M = { M i } i = 1 t − 1 M = \{M_i\}^{t−1}_{i=1} M={Mi}i=1t−1 ,其中 M i = { ( x ˉ j ( i ) , y ˉ j ( i ) ) } j = 1 N ˉ i M_i = \{(\bar x^{(i)}_j , \bar y^{(i)}_j )\} ^{\bar N_i}_{j=1} Mi={(xˉj(i),yˉj(i))}j=1Nˉi 是从 Si 随机采样的一个小子集 (Nei ≪ Ni),以及 (3) 在之前 t − 1 个域上训练后的历史模型 Ht−1。为了方便起见,我们使用速记符号 X ˉ i ≜ { x j ( i ) } j = 1 N i \bar X_i ≜ \{x^{(i)}_j \} ^{N_i}_{j=1} Xˉi≜{xj(i)}j=1Ni 和 X ˉ i ≜ { x ˉ j ( i ) } j = 1 N ˉ i \bar X_i ≜ \{\bar x^{(i)}_j \}^{\bar N_i} _{j=1} Xˉi≜{xˉj(i)}j=1Nˉi。目标是学习最优模型(假设)h*,在每个域 t 到达后最小化所有 t 域的预测误差。正式地,
-
h ∗ = a r g min h ∑ i = 1 t ϵ D i ( h ) , ϵ D i ( h ) ≜ E x ∼ D i [ h ( x ) ≠ f i ( x ) ] , ( 3 ) h ∗ = arg \min_h\sum^t_{i=1} ϵD_i (h), ϵ_{D_i} (h) ≜ E_{x∼D_i} [h(x)\neq f_i(x)], (3) h∗=arghmini=1∑tϵDi(h),ϵDi(h)≜Ex∼Di[h(x)=fi(x)],(3)
-
其中对于域 i,我们假设标签 y ∈ Y = { 0 , 1 } y ∈ Y =\{0, 1\} y∈Y={0,1} 由未知的确定性函数 y = fi(x) 生成,并且 ϵ D i ( h ) ϵ_{D_i} (h) ϵDi(h) 表示域 i 的预期误差。
-
Naive Generalization Bound Based on ERM
-
定义 3.1(特定领域的经验风险)。当域 t 到达时,根据时间 t 的可用数据计算每个域 i(其中 i ≤ t)的模型 h 经验风险 ϵ ^ D i ( h ) \hat ϵ_{D_i} (h) ϵ^Di(h),即:
-
e ^ D i ( h ) = { 1 N i ∑ x ∈ X i m 1 h ( x ) ≠ f i ( x ) if i = t , 1 N i ∑ x ∈ X ~ i m 1 h ( x ) ≠ f i ( x ) if i < t . \widehat{e}_{D_{i}}(h)= \begin{cases} \frac{1}{N_{i}}\sum_{x\in X_{i}}\mathbb m{1}_{h(x)\neq f_{i}(x)} & \text{if }i=t, \\ \frac{1}{N_{i}}\sum_{x\in\widetilde{X}_{i}}\mathbb m{1}_{h(x)\neq f_{i}(x)} & \text{if }i<t. \end{cases} e Di(h)={Ni1∑x∈Xim1h(x)=fi(x)Ni1∑x∈X im1h(x)=fi(x)if i=t,if i<t.
-
请注意,在时间 t 时,内存库中只有来自先前域 (i < t) 的一小部分数据可用 ( N ˉ i ≪ N i \bar N_i \ll N_i Nˉi≪Ni)。因此,先前领域的经验风险( ϵ ^ D i ( h ) \hat ϵ_{D_i} (h) ϵ^Di(h),其中 i < t)可能与真实风险 ϵ D i ( h ) ϵ_{D_i} (h) ϵDi(h)(在方程 3 中定义)有很大偏差;这反映在下面的引理 3.1 中。
-
-
引理 3.1(基于 ERM 的泛化界限)。设H为VC维d的假设空间。当域 t 到达时,存储体中有来自域 t 的 Nt 个数据点和来自每个先前域 i < t 的 Nei 个数据点。概率至少为 1 − δ,我们有:
- ∑ i = 1 t ϵ D i ( h ) ≤ ∑ i = 1 t ϵ ^ D i ( h ) + ( 1 N t + ∑ i = 1 t − 1 1 N i ) ( 8 d log ( 2 e N d ) + 8 log ( 2 δ ) ) . ( 5 ) \sum_{i=1}^{t}\epsilon_{D_{i}}(h)\leq\sum_{i=1}^{t}\widehat{\epsilon}_{D_{i}}(h)+\sqrt{\left(\frac{1}{N_{t}}+\sum_{i=1}^{t-1}\frac{1}{N_{i}}\right)\left(8d\log\left(\frac{2eN}{d}\right)+8\log\left(\frac{2}{\delta}\right)\right)}.\quad(5) i=1∑tϵDi(h)≤i=1∑tϵ Di(h)+(Nt1+i=1∑t−1Ni1)(8dlog(d2eN)+8log(δ2)).(5)
-
引理 3.1 表明,天真地使用 ERM 来学习 h 相当于最小化方程 中的松散泛化界限。 由于 N ˉ i ≪ N i \bar N_i \ll N_i Nˉi≪Ni ,与 1 N t \frac1{N_t} Nt1 相比,存在一个大常数 ∑ i = 1 t − 1 1 N ˉ i \sum^{t−1}_{i=1}\frac 1{\bar N_i} ∑i=1t−1Nˉi1 ,使得方程的第二项。更大并且导致更宽松的限制。
Intra-Domain and Cross-Domain Model-Based Bounds
-
在领域增量学习中,除了记忆体 { M i } i = 1 t − 1 \{M_i\}^{t−1}_{i=1} {Mi}i=1t−1之外,还可以访问历史模型Ht−1;这提供了获得更严格的误差范围的机会,从而有可能产生更好的算法。在本节中,我们将推导出两个这样的界限,一个域内误差界限(引理 3.2)和一个跨域误差界限(引理 3.3),然后将它们与等式中基于 ERM 的界限整合。 到达我们的最终自适应界限(定理 3.4)。
-
引理 3.2(基于域内模型的界限)。令 h ∈ H 为假设空间 H 中的任意函数, H t − 1 H_{t−1} Ht−1 为域 t − 1 之后训练的模型。前一个域 i 上的域特定误差 ϵ D i ( h ) ϵ_{D_i} (h) ϵDi(h) 具有上限:
-
ϵ D i ( h ) ≤ ϵ D i ( h , H t − 1 ) + ϵ D i ( H t − 1 ) , ( 6 ) ϵ_{D_i} (h) ≤ ϵ_{D_i} (h, H_{t−1}) + ϵ_{D_i} (H_{t−1}), (6) ϵDi(h)≤ϵDi(h,Ht−1)+ϵDi(Ht−1),(6)
-
其中 ϵ D i ( h , H t − 1 ) ≜ E x ∼ D i [ h ( x ) ≠ H t − 1 ( x ) ] ϵ_{D_i} (h, H_{t−1}) ≜ E_{x∼D_i} [h(x) \neq H_{t−1}(x)] ϵDi(h,Ht−1)≜Ex∼Di[h(x)=Ht−1(x)]。
-
-
引理 3.2 显示当前模型 h 在域 i 上的误差受到 h 与历史模型 Ht−1 之间的差异加上 Ht−1 在域 i 上的误差的限制。绑定方程的一个潜在问题。 的缺点是,存储库中每个先前域 i 仅有有限数量的数据可用,这使得 $ϵ_{D_i} (h, H_{t−1}) + ϵ_{D_i} (H_{t−1}) $的经验估计具有挑战性。因此引理 3.3 提供了一个替代界限。
-
ϵ D i ( h ) ≤ ϵ D t ( h , H t − 1 ) + 1 2 d H ∆ H ( D i , D t ) + ϵ D i ( H t − 1 ) , ( 7 ) ϵ_{D_i} (h) ≤ ϵ_{D_t} (h, H_{t−1}) + \frac1 2 d_H∆_H(D_i , D_t) + ϵ_{D_i} (H_{t−1}), (7) ϵDi(h)≤ϵDt(h,Ht−1)+21dH∆H(Di,Dt)+ϵDi(Ht−1),(7)
-
其中 d H Δ H ( P , Q ) = 2 s u p h ∈ H Δ H ∣ P r x ∼ P [ h ( x ) = 1 ] − P r x ∼ Q [ h ( x ) = 1 ] ∣ d_HΔ_H(P, Q) = 2 sup_{h∈H}Δ_H |Pr_{x∼P} [h(x) = 1] − Prx∼Q[h(x) = 1]| dHΔH(P,Q)=2suph∈HΔH∣Prx∼P[h(x)=1]−Prx∼Q[h(x)=1]∣ 表示分布 P 和 Q 之间的 HΔH 散度, ϵ D t ( h , H t − 1 ) ≜ E x ∼ D t [ h ( x ) ≠ H t − 1 ( x ) ] ϵ_{D_t} (h, H_{t−1}) ≜ E_{x∼D_t} [h(x) \neq H_{t−1}(x)] ϵDt(h,Ht−1)≜Ex∼Dt[h(x)=Ht−1(x)]。
-
-
引理 3.3 表明,如果域 i 和域 t 之间的差异(即 d H Δ H ( D i , D t ) d_HΔ_H(D_i , D_t) dHΔH(Di,Dt))足够小,则可以使用在当前域 Dt 上评估的 H t − 1 H_{t−1} Ht−1 预测作为替代损失来防止灾难性遗忘。与误差界限方程相比。 受到先前领域有限数据的阻碍,方程。 依赖于包含丰富数据的当前域t,因此具有较低的泛化误差。我们的引理还证明了广泛采用的类似 LwF 的跨域蒸馏损失 ϵ D t ( h , H t − 1 ϵ_{D_t} (h, H_{t−1} ϵDt(h,Ht−1) 。
A Unified and Adaptive Generalization Error Bound
-
我们的引理 P 3.1、引理 3.2 和引理 3.3 提供了三种不同的方法来限制真实风险 ∑ i = 1 t ϵ D i ( h ) \sum^t_{i=1} ϵ_{D_i} (h) ∑i=1tϵDi(h);每个都有自己的优点和缺点。引理 3.1 过度依赖记忆库中先前域 i < t 的有限数量的数据点来计算经验风险;引理3.2利用历史模型 H t − 1 H_{t−1} Ht−1 进行知识蒸馏,但仍然受到记忆库中数据点数量有限的阻碍;引理 3.3 通过利用当前域 t 中丰富的数据 Dt 来改进引理 3.2,但只有当域 i 和域 t 之间的差异(即 d H Δ H ( D i , D t ) d_HΔ_H(D_i , D_t) dHΔH(Di,Dt))很小时才能很好地工作。因此,我们建议在下面的定理中使用系数 { α i , β i , γ i } i = 1 t − 1 \{α_i , β_i , γ_i\} ^{t−1}_{i=1} {αi,βi,γi}i=1t−1 (其中 αi + βi + γi = 1)对这三个界限进行积分。
-
定理 3.4(所有域的统一泛化界限)。设H为VC维d的假设空间。令 N = N t + ∑ i t − 1 N ˉ i N = N_t + \sum^{t−1}_i \bar N_i N=Nt+∑it−1Nˉi 表示可用于当前域 t 训练的数据点总数,其中 Nt 和 N ˉ i \bar N_i Nˉi 分别表示在域 t 收集的数据点数量和存储库中前一个域 i 的数据点数量。概率至少为 1 − δ,我们有:
-
∑ i = 1 t ϵ D i ( h ) ≤ { ∑ i = 1 t − 1 [ γ i ϵ ^ D i ( h ) + α i ϵ ^ D i ( h , H t − 1 ) ] } + { ϵ ^ D t ( h ) + ( ∑ i = 1 t − 1 β i ) ϵ ^ D t ( h , H t − 1 ) } + 1 2 ∑ i = 1 t − 1 β i d H Δ H ( D i , D t ) + ∑ i = 1 t − 1 ( α i + β i ) ϵ D i ( H t − 1 ) + ( ( 1 + ∑ i = 1 t − 1 β i ) 2 N t + ∑ i = 1 t − 1 ( γ i + α i ) 2 N i ) ( 8 d log ( 2 e N d ) + 8 log ( 2 δ ) ) ≜ g ( h , H t − 1 , Ω ) , ( 8 ) \sum_{i=1}^{t}\epsilon_{\mathcal{D}_{i}}(h)\leq\left\{\sum_{i=1}^{t-1}\left[\gamma_{i}\hat{\epsilon}_{\mathcal{D}_{i}}(h)+\alpha_{i}\hat{\epsilon}_{\mathcal{D}_{i}}(h,H_{t-1})\right]\right\}+\left\{\hat{\epsilon}_{\mathcal{D}_{t}}(h)+\left(\sum_{i=1}^{t-1}\beta_{i}\right)\hat{\epsilon}_{\mathcal{D}_{t}}(h,H_{t-1})\right\}\\ +\frac{1}{2}\sum_{i=1}^{t-1}\beta_{i}d_{\mathcal{H}\Delta\mathcal{H}}(\mathcal{D}_{i},\mathcal{D}_{t})+\sum_{i=1}^{t-1}(\alpha_{i}+\beta_{i})\epsilon_{\mathcal{D}_{i}}(H_{t-1})\\+\sqrt{\left(\frac{\left(1+\sum_{i=1}^{t-1}\beta_{i}\right)^{2}}{N_{t}}+\sum_{i=1}^{t-1}\frac{\left(\gamma_{i}+\alpha_{i}\right)^{2}}{N_{i}}\right)\left(8d\log\left(\frac{2eN}{d}\right)+8\log\left(\frac{2}{\delta}\right)\right)}\\ \triangleq g(h,H_{t-1},\Omega),(8) i=1∑tϵDi(h)≤{i=1∑t−1[γiϵ^Di(h)+αiϵ^Di(h,Ht−1)]}+{ϵ^Dt(h)+(i=1∑t−1βi)ϵ^Dt(h,Ht−1)}+21i=1∑t−1βidHΔH(Di,Dt)+i=1∑t−1(αi+βi)ϵDi(Ht−1)+ Nt(1+∑i=1t−1βi)2+i=1∑t−1Ni(γi+αi)2 (8dlog(d2eN)+8log(δ2))≜g(h,Ht−1,Ω),(8)
-
where bϵDi (h, Ht−1) = 1 eNi P x∈Xei 1h(x)̸=Ht−1(x) , bϵDt (h, Ht−1) = 1 Nt P x∈Xi 1h(x)̸=Ht−1(x) , and Ω ≜ {αi , βi , γi} t−1 i=1.
-
-
定理3.4提供了根据手头的数据(当前域数据St和存储体 M = { M i } i = 1 t − 1 M = \{M_i\}^{t−1}_{i=1} M={Mi}i=1t−1)和历史模型(Ht−1)自适应调整系数(αi、βi和γi)的机会,从而实现最紧界限。例如,当域 i 和域 t 之间的 HΔH 散度,即 d H Δ H ( D i , D t ) d_HΔ_H(D_i , D_t) dHΔH(Di,Dt) 很小时,最小化这个统一界限(方程 8)会导致系数 βi 很大,因此自然会更多地关注方程 1 中的跨域界限。 利用当前域 t 的数据来估计真实风险。
-

-
表一:UDIL是一个统一的框架,用于带记忆的领域增量学习。(LwF 、ER 和DER++ )默认与DIL设置兼容。对于其余四种CIL方法,(iCaRL ,CLS-ER ,EMS-ER 和BiC ),在分析之前,我们将其原始训练目标调整为DIL设置。对于CLS-ER 和EMS-ER ,λ和λ '是logits蒸馏的强度系数。对于BiC ,t是增量域的当前数。附录B中详细提供了实现每种方法统一的条件。
-
-
UDIL 作为统一框架。有趣的是,方程式 8 统一了各种领域增量学习方法。表1表明,不同的方法相当于将系数 { α i , β i , γ i } i = 1 t − 1 \{α_i,β_i,γ_i\}^{t−1}_{i=1} {αi,βi,γi}i=1t−1 固定为不同的值(详细讨论参见附录B)。例如,假设默认配置,LwF 对应于等式8固定系数{αi = γi = 0, βi = 1}; ER 对应于方程。 8 具有固定系数{αi = βi = 0, γi = 1},并且 DER++ 对应于方程 8 在某些可实现的条件下,固定系数{αi = γi = 0.5,βi = 0}。受这种统一的启发,我们的 UDIL 自适应地调整这些系数,以在域增量学习期间每个域到达时搜索 [0, 1] 范围内的最紧边界,从而提高性能。下面的推论 3.4.1 表明,这种自适应界限总是更严格,或者至少与任何具有固定系数的界限一样严格。
-
推论 3.4.1。对于任何具有固定系数 Ωfixed 的边界 g ( h , H t − 1 , Ω f i x e d ) g(h, H_{t−1}, Ω_{fixed}) g(h,Ht−1,Ωfixed)(在方程 8 中定义),例如,对于 ER , Ω f i x e d = Ω E R = { α i = β i = 0 , γ i = 1 } i = 1 t − 1 Ω_{fixed} = Ω_{ER} = \{α_i = β_i = 0, γ_i = 1\}^{t−1}_{i=1} Ωfixed=ΩER={αi=βi=0,γi=1}i=1t−1,我们有
- ∑ i = 1 t ϵ D i ( h ) ≤ min Ω g ( h , H t − 1 , Ω ) ≤ g ( h , H t − 1 , Ω f i x e d ) , ∀ h , H t − 1 ∈ H . ( 9 ) \sum^t_{i=1} ϵ_{D_i} (h) ≤ \min_Ω g(h, H_{t−1}, Ω) ≤ g(h, H_{t−1}, Ω_{fixed}), ∀h, H_{t−1} ∈ H. (9) i=1∑tϵDi(h)≤Ωming(h,Ht−1,Ω)≤g(h,Ht−1,Ωfixed),∀h,Ht−1∈H.(9)
-
推论3.4.1表明,具有自适应系数的统一边界方程8总是优于具有固定系数的其他边界。因此,我们在下面的第4节中使用它来开发更好的域增量学习算法。
Method: Adaptively Minimizing the Tightest Bound in UDIL
- 虽然定理3.4为领域增量学习提供了一个统一的视角,但它并没有立即转化为一个实际的目标函数来训练一个模型。对于方程8来说,什么样的系数是最好的选择也是不清楚的。事实上,静态和固定的设置是不够的,因为不同的问题可能涉及动态变化的不同领域序列;因此,理想情况下,模型应该是动态的(例如,αi = αi+1)和自适应的(即,可从数据中学习)。在本节中,我们首先将公式8中的统一界限映射到具体的损失项,讨论如何学习系数α i,然后提供最终的目标函数来学习最佳模型。
- UDIL 的想法是:这些方法其实都是同一个 “学习框架” 的不同情况 —— 只是 “花在旧知识和新知识上的时间比例”(系数)不同。所以 UDIL 做了两件事:
- 把所有方法统一到一个框架里(像把 “语文错题本”“旧老师笔记”“数学新课本” 整合到一个学习计划里);
- 动态调整 “时间比例”(系数):比如学数学时,发现自己语文忘得多了,就多花点时间看错题本;发现数学和语文有共通点(比如都要理解题意),就多找两者的相似性(域对齐)。
- 模型预测不准的程度可以用 “误差界” 表示(比如 “误差界≤5%” 就是模型最多错 5%)。以前的方法各有一个 “误差界”:ER 的误差界:靠错题本(旧数据)算,错题本少了,误差界就大(比如≤10%);LwF 的误差界:靠旧老师笔记(历史模型)算,新旧知识差异大了,误差界也大(比如≤12%)。UDIL 的数学核心是:把这几个误差界 “融合”,通过调整系数,找到最小的那个误差界。就像 “你有三个估算考试分数的方法,一个说你能考 80-90 分,一个说 75-85 分,一个说 85-95 分,UDIL 帮你选 75-85 分这个最小的范围,让你对自己的水平更有把握”。具体来说,UDIL 引入了三个系数(α、β、γ,加起来等于 1):
- α:花在 “旧老师笔记”(域内蒸馏)上的时间;
- β:花在 “找新旧知识共通点”(域对齐)上的时间;
- γ:花在 “错题本”(旧数据重放)上的时间。
From Theory to Practice: Translating the Bound in Eqn. 8 to Differentiable Loss Terms
-
(1)ERM项。我们使用下面定义4.1中的交叉熵分类损失来优化域t的ERM项 ϵ ^ D t ( h ) \hat \epsilon_{D_t}(h) ϵ^Dt(h)和公式8中的记忆重放ERM项 { γ i ϵ ^ D i ( h ) } t − 1 i = 1 \{γ_i\hat \epsilon D_i(h)\} ^{t−1}{i=1} {γiϵ^Di(h)}t−1i=1。
-
定义4.1(分类损失)。设h: R n → S K − 1 \R^n → S^{K−1} Rn→SK−1 是一个函数,它将输入x ∈ Rn映射到K类概率单形的空间,即 S K − 1 ≜ { z ∈ R K : z i ≥ 0 , ∑ i z i = 1 } S ^{K−1} \triangleq \{z ∈ \R^K:z_i ≥ 0,\sum_i z_i = 1\} SK−1≜{z∈RK:zi≥0,∑izi=1} ;设X是从任意数据分布中抽取的样本集合, f : R n → [ K ] f:\R^n → [K] f:Rn→[K] 是将输入映射到真实标签的函数。分类损失被定义为真实标签f(x)和预测概率h(x)之间的平均交叉熵,即,
-
ℓ ^ X ( h ) ≜ 1 ∣ X ∣ ∑ x ∈ X [ − ∑ j = 1 K 1 f ( x ) = j ⋅ l o g ( [ h ( x ) ] j ) . ( 10 ) \hat ℓ_X (h) ≜ \frac1{|X|}\sum_{x∈X}[− \sum^K_{j=1} 1_{f(x)=j} · log([h(x)]_j) . (10) ℓ^X(h)≜∣X∣1x∈X∑[−j=1∑K1f(x)=j⋅log([h(x)]j).(10)
-
根据定义4.1,我们用等式8中的 ϵ ^ D t ( h ) \hat \epsilon_{D_t}(h) ϵ^Dt(h) 和 ϵ ^ D i ( h ) \hat \epsilon_{D_i}(h) ϵ^Di(h) 替换等式8中的 ℓ ^ X t ( h ) \hat ℓ_{X_t}(h) ℓ^Xt(h) 和 ℓ ^ X i ( h ) \hat ℓ_{X_i}(h) ℓ^Xi(h) 。
-
-
(2)域内和跨域项。我们使用下面的蒸馏损失来优化等式8中基于域内({B <Di(h,Ht−1)} t−1 i=1)和跨域(B <Dt(h,Ht−1))模型的误差项。
-
定义4.2(蒸馏损失).设 h , H t − 1 : R n → S K − 1 h,H_{t−1}:\R^n → S ^{K−1} h,Ht−1:Rn→SK−1 都是将输入x ∈ Rn映射到定义4.1中定义的K类概率单形空间的函数;令X是从任意数据分布中抽取的样本集合。蒸馏损失定义为目标概率Ht-1(x)和预测概率h(x)之间的平均交叉熵,也就是说,
-
ℓ ^ X ( h , H t − 1 ) ≜ 1 ∣ X ∣ ∑ x ∈ X [ − ∑ j = 1 K [ H t − 1 ( x ) ] j ⋅ l o g ( [ h ( x ) ] j ) . ( 11 ) \hat ℓ_X (h,H_{t-1}) ≜ \frac1{|X|}\sum_{x∈X}[− \sum^K_{j=1} [H_{t-1}(x)]_j · log([h(x)]_j) . (11) ℓ^X(h,Ht−1)≜∣X∣1x∈X∑[−j=1∑K[Ht−1(x)]j⋅log([h(x)]j).(11)
-
相应地,我们将B Di(h,Ht−1)替换为bXi(h,Ht − 1),将B Dt(h,Ht−1)替换为bXt(h,Ht −1)。
-
-
(3)方程8中的误差项Pt−1 i=1(αi + βi)<$Di(Ht−1)是一个常数,不包含可训练参数(因为Ht−1是一个固定的历史模型);因此它不需要损失项。
-
(4)发散项。在等式8中,Pt−1 i=1 βidH H(Di,Dt)测量域i和域t的数据分布之间的相异性的加权平均值。受现有对抗域自适应方法的启发,我们可以通过考虑嵌入分布而不是使用可学习编码器的数据分布来进一步收紧该发散项。具体地,给定编码器e:Rn → Rm和一个域鉴别器(分类器)族Hd,我们有发散项的经验估计如下:
-
t − 1 X i = 1 β i b d H ∆ H ( e ( U i ) , e ( U t ) ) = 2 t − 1 X i = 1 β i − 2 m i n d ∈ H d t − 1 X i = 1 β i " 1 ∣ U i ∣ X x ∈ U i 1 ∆ i ( x ) ≥ 0 + 1 ∣ U t ∣ X x ∈ U t 1 ∆ i ( x ) < 0 , t−1 X i=1 βi bdH∆H(e(Ui), e(Ut)) = 2 t−1 X i=1 βi − 2 min d∈Hd t−1 X i=1 βi " 1 |Ui| X x∈Ui 1∆i(x)≥0 + 1 |Ut| X x∈Ut 1∆i(x)<0 , t−1Xi=1βibdH∆H(e(Ui),e(Ut))=2t−1Xi=1βi−2mind∈Hdt−1Xi=1βi"1∣Ui∣Xx∈Ui1∆i(x)≥0+1∣Ut∣Xx∈Ut1∆i(x)<0,
-
其中,Ui(和Ut)是从域Di(和Dt)中提取的样本集,d:R m → S t−1是域分类器,并且i(x)= [d(e(x))]i − [d(e(x))]t是x属于域i和域t的概率之间的差。用可微交叉熵损失替换指示函数,则上面的Pt−1 i=1 βi bdH H(e(Ui),e(Ut))变为
-
2 t − 1 X i = 1 β i − 2 m i n d ∈ H d t − 1 X i = 1 β i “ 1 e N i X x ∈ X i [ − l o g ( [ d ( e ( x )) ] i ) ] + 1 N t X x ∈ S t [ − l o g ( [ d ( e ( x )) ] t ) ] . ( 12 ) 2 t−1 X i=1 βi − 2 min d∈Hd t−1 X i=1 βi“1 eNi X x∈Xi [− log([d(e(x))]i)] + 1 Nt X x∈St [− log([d(e(x))]t)] .(12) 2t−1Xi=1βi−2mind∈Hdt−1Xi=1βi“1eNiXx∈Xi[−log([d(e(x))]i)]+1NtXx∈St[−log([d(e(x))]t)].(12)
-
Putting Everything Together: UDIL Training Algorithm
-
目标函数。有了上面的这些可微损失项,我们可以推导出一种算法,该算法通过最小化等式8中的最紧边界来学习最优模型。如上所述,为了实现更紧的dH H,我们将假设分解为h = p e,其中e:Rn → Rm和p:R m → S K−1分别是编码器和预测器。为了找到并最小化定理3.4中的最紧界,我们将R m = {αi,βi,γi} t−1 i=1作为可学习参数,并寻求优化以下目标(我们将“复制权重和停止梯度”操作表示为x = sg(x)):
-
m i n Ω , h = p ◦ e m a x d V l ( h , ◦Ω ) + V 0 − 1 ( ◦ h , Ω ) − λ d V d ( d , e , ◦Ω ) ( 13 ) s . t . α i + β i + γ i = 1 , ∀ i ∈ 1 , 2 , . . . , t − 1 α i , β i , γ i ≥ 0 , ∀ i ∈ 1 , 2 , . . . , t − 1 min {Ω,h=p◦e} max d Vl(h, ◦ Ω) + V0-1( ◦ h, Ω) − λdVd(d, e, ◦ Ω) (13) s.t. αi + βi + γi = 1, ∀i ∈ {1, 2, . . . , t − 1} αi , βi , γi ≥ 0, ∀i ∈ {1, 2, . . . , t − 1} minΩ,h=p◦emaxdVl(h,◦Ω)+V0−1(◦h,Ω)−λdVd(d,e,◦Ω)(13)s.t.αi+βi+γi=1,∀i∈1,2,...,t−1αi,βi,γi≥0,∀i∈1,2,...,t−1
-
Vl、V0-1和Vd的细节。Vl是用于学习模型h的损失,其中项k B·(·)是如等式10和等式11中定义的可微交叉熵损失:
-
KaTeX parse error: Can't use function '$' in math mode at position 28: …)= Xt−1 i=1 h <$̲γi B <$Xi(h)+<$…
-
V0-1是寻找最佳系数集的损失。其损失项分别使用定义3.1和公式12来估计ERM项和H-散度:
-
V 0 − 1 ( ◦ h , Ω ) = X t − 1 i = 1 γ i b ϵ D i ( ◦ h ) + α i b ϵ D i ( ◦ h , H t − 1 ) + ( X t − 1 i = 1 β i ) b ϵ D t ( ◦ h , H t − 1 ) + 12 X t − 1 i = 1 β i b d H ∆ H ◦ e ( X i ) , ◦ e ( S t ) + X t − 1 i = 1 ( α i + β i ) b ϵ D i ( H t − 1 ) + C ⋅ s ( 1 + P t − 1 i = 1 β i ) 2 N t + X t − 1 i = 1 ( γ i + α i ) 2 e N i . ( 15 ) V0-1( ◦ h, Ω) = Xt−1 i=1 γibϵDi ( ◦ h) + αibϵDi ( ◦ h, Ht−1) + (Xt−1 i=1 βi)bϵDt ( ◦ h, Ht−1) + 1 2 Xt−1 i=1 βi bdH∆H ◦ e(Xi), ◦ e(St) + Xt−1 i=1 (αi + βi)bϵDi (Ht−1) + C · s (1+Pt−1 i=1 βi) 2 Nt + Xt−1 i=1 (γi+αi) 2 eNi . (15) V0−1(◦h,Ω)=Xt−1i=1γibϵDi(◦h)+αibϵDi(◦h,Ht−1)+(Xt−1i=1βi)bϵDt(◦h,Ht−1)+12Xt−1i=1βibdH∆H◦e(Xi),◦e(St)+Xt−1i=1(αi+βi)bϵDi(Ht−1)+C⋅s(1+Pt−1i=1βi)2Nt+Xt−1i=1(γi+αi)2eNi.(15)
-
在公式15中,B b·(·)使用离散0-1损失,这与公式14不同,并且引入超参数C = p 8d log(2 eN/d)+ 8 log(2/δ)来模拟H的VC维数和δ的组合影响。Vd遵循等式12,以通过具有值函数的e和d之间的极大极小博弈来最小化不同域的嵌入分布(即,对齐域)之间的分歧:
-
V d ( d , e , ◦Ω ) = t − 1 X i = 1 ◦ β i ! 1 N i X x ∈ S t [ − l o g ( [ d ( e ( x ) ) ] t ) ] + t − 1 X i = 1 ◦ β i e N i X x ∈ X e i [ − l o g ( [ d ( e ( x ) ) ] i ) ] . ( 16 ) Vd(d, e, ◦ Ω) = t−1 X i=1 ◦ βi ! 1 Ni X x∈St [− log ([d(e(x))]t )] + t−1 X i=1 ◦ βi eNi X x∈Xei [− log ([d(e(x))]i )] . (16) Vd(d,e,◦Ω)=t−1Xi=1◦βi!1NiXx∈St[−log([d(e(x))]t)]+t−1Xi=1◦βieNiXx∈Xei[−log([d(e(x))]i)].(16)
-
这里,在等式16中,如果给定最佳d和固定的k,则相对于编码器e最大化 V d ( d ∗ , e , k ) V_d(d^*,e,k) Vd(d∗,e,k) 等效于最小化发散度 ∑ t − 1 i = 1 β i d H Δ H ( e ( D i ), e ( D t )) \sum^{t-1}{i=1} β_id_{H\Delta H}(e(D_i),e(D_t)) ∑t−1i=1βidHΔH(e(Di),e(Dt)) 的加权和。这个结果表明两个域的嵌入分布之间的分歧实际上可以最小化。直觉上,这个极大极小博弈学习了一个编码器e,该编码器e对齐不同域的嵌入分布,使得它们的域ID无法预测(区别于)给定嵌入e(x)的强大的下面的算法1概述了UDIL如何最小化最紧边界。请参考附录C了解更多实现细节,包括图2中的模型图。
-

-
图二:UDIL的图。 M = { M i } i = 1 t − 1 M = \{M_i\}^{t-1}_{i=1} M={Mi}i=1t−1 表示存储所有过去样本的存储库。St对应于来自当前域t的数据集,并且在图中单独描绘了当前模型 h = p ⊙ e h = p\odot e h=p⊙e。三种不同类别的损失在黑色矩形中示出,而学习的重放系数的加权效果 Ω = { α i , β i , γ i } i = 1 t − 1 Ω = \{α_i,β_i,γ_i\} ^{t−1}_{i=1} Ω={αi,βi,γi}i=1t−1 用虚线表示。
-

-
-
UDIL 背后藏着两个朴素的哲学观:
- 平衡与适应:既 “稳定”(不丢旧知识),又 “灵活”(学新知识)。就像人长大:不能一直用小时候的认知(太稳定),也不能完全推翻过去(太灵活),而是在保留核心经验的同时,调整自己适应新环境。
- 统一视角:不同方法不是 “对立的”,而是 “同一规律的不同表现”。比如 ER 和 LwF 看似不一样,但本质都是 “如何在学新时保旧”—— 只是侧重不同,UDIL 用一个框架把它们串起来,就像用 “力的分解” 解释不同方向的力,本质都是 “力”。
-
UDIL 的整套方案就像一个 “智能学习系统”,拆成 4 个模块,每个模块都有明确的作用、输入输出和参数,我们结合 “白天猫→夜晚猫” 的例子来讲:
- 模块 1:记忆库模块 ——“错题本” 管理:保存少量旧域数据,防止 “学新忘旧”。就像你学数学时,不会把所有语文书都带着,只带一本 “语文错题本”,记最关键的错题。输入:当前域训练完的数据(比如第一批白天猫图片);输出:精简的记忆库(比如从 1 万张白天猫里选 100 张,存在 “错题本” 里)。太大→占内存多(比如手机装不下),太小→保存的旧数据不够,模型容易忘(比如错题本只记 1 道题,等于没记)。采样策略(比如 “随机平衡采样”):如果只存 “容易识别的白天猫”,模型学了夜晚猫后,遇到难的白天猫还是会忘;平衡采样能保证记忆库覆盖各种情况(比如亮的、暗的白天猫都存几张)。
- 模块 2:系数自适应模块 ——“动态时间规划”,调整 α、β、γ 三个系数,决定 “花在旧知识和新知识上的时间比例”。就像你每天学数学和语文前,先看自己昨天语文错了多少、数学和语文有多少共通点,再决定今天花 1 小时学语文(α+γ)、0.5 小时找共通点(β)。输入:当前域数据(夜晚猫)、记忆库数据(白天猫)、历史模型(学完白天猫的旧模型);输出:三个系数(比如 α=0.2,β=0.5,γ=0.3)。初始值太偏 γ(比如 γ=0.8),模型一开始会只学新域(夜晚猫),很快忘旧域;初始值平均(1/3),能让模型慢慢调整,不容易走极端。太大→系数波动大(比如今天花 2 小时学语文,明天花 0 小时),模型不稳定;太小→系数调整慢,学新域时迟迟不增加新域的时间,学不好新知识。
- 模块 3:域对齐模块 ——“找新旧知识的共通点”,让不同域的特征 “变像”,比如让白天猫和夜晚猫的 “猫脸特征”(比如耳朵形状、眼睛位置)更一致,减少 “域差异” 带来的遗忘。就像你发现 “语文的‘理解段落’和数学的‘理解题意’都要找关键词”,把这个共通点学好,两边都能受益。输入:当前域特征(夜晚猫的图片特征)、记忆库特征(白天猫的图片特征)、判别器模型;输出:对齐后的特征(白天猫和夜晚猫的猫脸特征更像,判别器分不清是白天还是夜晚的猫)。判别器负责 “分辨特征是白天还是夜晚的”,编码器负责 “让特征变得让判别器分不清”—— 就像玩 “捉迷藏”,判别器是 “抓的人”,编码器是 “躲的人”,躲的人越厉害,白天和夜晚的特征越像。对齐强度系数(λd,比如 0.1、1.0):太大→特征太像,模型分不清白天和夜晚(比如把夜晚猫当成白天猫);太小→特征对齐不够,模型还是会忘旧域。
- 模块 4:模型训练模块 ——“整合所有知识,学好新模型”,把记忆库的旧知识、系数的时间分配、对齐后的特征整合起来,训练出 “既会认白天猫,又会认夜晚猫” 的新模型。就像你把 “语文错题本”“新旧知识共通点”“数学新课本” 整合起来,做一套综合题,巩固所有知识。输入:对齐后的特征、记忆库数据、历史模型、三个系数;输出:更新后的新模型(能识别白天和夜晚的猫)。蒸馏学习:把历史模型(旧模型)的知识 “教” 给新模型 —— 比如旧模型知道 “白天猫的眼睛是圆的”,新模型学夜晚猫时,通过蒸馏,不会把 “夜晚猫的圆眼睛” 当成别的形状。
Experiments
- 在本节中,我们将UDIL与现有方法在合成和真实世界数据集上进行比较。
Baselines and Implementation Details
-
我们将UDIL与最先进的持续学习方法进行比较,这些方法要么是专门为领域增量学习设计的,要么可以很容易地适应领域增量学习环境。为了公平比较,我们不考虑利用大规模预训练或快速调整的方法。无示例基线包括在线弹性权重合并(oEWC),突触智能(SI)和无遗忘学习(LwF)。基于记忆的领域增量学习基线包括梯度情景记忆(GEM),平均梯度情景记忆(A-GEM),经验重放(ER),Dark Experience Replay(DER++)和两种最近的方法,基于经验回放的互补学习系统(CLS-ER)和基于错误敏感度调制的经验回放(ESM-ER)(关于上述基准方法的详细介绍,请参见附录C.5)。此外,我们实现了微调(Fine-tune)和联合训练(Joint)作为性能下限和上限(Oracle)。
-

-
图三:HD-Balls上的更多结果。数据根据域ID进行着色。所有数据都在PCA后绘制。(a-h)Joint(oracle)、UDIL和六个带记忆的基线学习的准确性和嵌入。Joint作为oracle,自然对齐不同的域,而UDIL在嵌入对齐和准确性方面优于所有基线。
-
-
我们使用三种不同的随机种子训练所有模型,并报告平均值和标准差。所有方法均使用PyTorch 实现,基于the mammoth code base,并在单个NVIDIA RTX A5000 GPU上运行。为了公平比较,在同一数据集内,所有方法均采用相同的神经网络架构,内存采样策略设置为随机平衡采样(有关训练的更多实现细节,请参见附录C.2和附录C.6)。我们使用标准的持续学习指标评估所有方法,包括“平均准确性”、“遗忘”和“向前转移”(详细定义见附录C.4)。
Toy Dataset: High-Dimensional Balls
-
为了深入了解UDIL,我们从一个玩具数据集开始,即球体上的高维球HD-Balls包括20个域,每个域包含从高斯分布N采样的2,000个数据点(μ,0.2 2 I).平均值μ从100维单位球面中随机抽样,即 { μ ∈ R 100 : ∣ ∣ μ ∣ ∣ 2 = 1 } \{μ ∈ \R^{100}:||μ ||_2 = 1\} {μ∈R100:∣∣μ∣∣2=1} ;在HD-Balls中,每个域代表一个二元分类任务,其中决策边界是通过中心μ并与单位球面相切的超平面。图1(a-c)显示了HD-Balls上的一些可视化。
-

-
图一:在(a-b)中,数据根据标签着色;在(c-h)中,数据根据域ID着色。所有数据在PCA后绘制。(a)简化的HD-Balls数据集,在3D空间中具有3个域(仅用于可视化目的)。(b-c)由标签和域ID着色的HD-Balls的原始数据的嵌入。(d-h)由Joint学习的准确性和嵌入(Oracle)、UDIL和三个最佳基线(更多信息请参见附录C.5)。Joint作为Oracle,自然会对齐不同的域,而UDIL在嵌入对齐和准确性方面优于所有基线。
-
-
表2的第3列和第4列比较了我们的UDIL在不同基线下的性能。我们可以看到,UDIL实现了最高的最终平均准确率和最低的遗忘率。图1(d-h)显示了嵌入分布(即,e(x))。我们可以看到,跨域更好的嵌入对齐通常会带来更好的性能。具体来说,Joint作为oracle,自然对齐不同域的嵌入分布,并达到91.083%的准确率上限。类似地,我们的UDIL可以自适应地调整不同损失项的系数,包括等式12,成功地对齐不同的域,从而优于所有基线。
-

-
表二:HD-Balls,P-MNIST和R-MNIST的性能(%)。我们使用两个指标,平均准确度和遗忘,来评估方法的有效性。“↑”和“↓”分别表示更高和更低的数字更好。我们使用粗体和下划线分别表示最佳和次佳性能。我们使用“-”表示“不适用”。
-
Permutation MNIST
- 我们在Permutation MNIST(P-MNIST)数据集上进一步评估了我们的方法。P-MNIST包括20个连续域,每个域通过对图像中的像素应用固定的随机排列来构建。表2的第5列和第6列显示了不同方法的结果。我们的UDIL达到了第二好的效果(92.666%)最终平均准确率,仅比最佳基线DER++低0.284%。我们认为这是因为(i)由于联合训练(oracle)与大多数方法之间的差距很小,因此没有太大的改进空间;(2)在置换下,不同域的数据分布差异太大,域之间缺乏有意义的联系,削弱了嵌入对齐的效果。尽管如此,UDIL仍然在遗忘方面取得了最好的性能(2.853%)。这主要是因为我们的统一UDIL框架(i)直接来自所有域的总损失,(ii)使用自适应系数来实现学习当前域和避免遗忘先前域之间的更平衡的权衡。
Rotating MNIST
- 我们还在包含20个连续域的旋转MNIST数据集(R-MNIST)上评估了我们的方法。与从域t到域t + 1的移动是突然的P-MNIST不同,R-MNIST的域移动是渐进的。具体地说,域t的图像旋转了从范围[9 <$·(t-1),表2的第7列和第8列示出了我们的UDIL同时实现了最高的平均准确度(86.635%)和最低的遗忘度(8.506%),在最佳基线DER++(平均准确度84.258%和遗忘度13.692%)上显著提高。有趣的是,当我们的UDIL的βi很高时,这种改进是实现的,这进一步验证了UDIL确实利用了不同领域之间共享的相似性,从而降低了泛化误差。
Sequential CORe50
- CORe 50 是一个真实世界的连续对象识别数据集,其中包含从11个领域收集的50个家庭对象(总共120,000张图像)。先前的工作已使用CORe 50进行设置,例如域泛化(例如,仅在8个域上训练模型并在3个域上测试它),这与我们的领域增量学习设置不同,为了将评估集中在缓解灾难性遗忘上,我们保留了20%的数据作为测试集,并在这11个领域上持续训练模型;因此,我们将此数据集变体称为Seq-CORe 50。表3显示,我们的UDIL在Seq-CORe 50的各个方面都优于所有基线。除了所有域的平均准确度外,我们还报告了不同域间隔的平均准确度(例如,D1:3表示从域1到域3的平均准确度),以显示不同模型的性能如何随时间下降。经验结果展示,我们的UDIL持续达到最高的平均正确率,直到最后。值得一提的是,UDIL在遗忘和前向迁移两个指标上也取得了最好的性能。
-

-
表三:在Seq-CORe 50上评估的性能(%)。我们使用三个指标,平均准确度,遗忘和前向转移来评估方法的有效性。“↑”和“↓”分别表示更高和更低的数字更好。我们使用黑体和下划线表示最好和次好的性能,我们使用“-”表示“不适用”,使用“-”表示运行实验时的内存不足(OOM)错误。
-
Conclusion
-
本文提出了一个基于记忆的领域增量学习的基本框架UDIL,以统一现有的各种方法。理论分析表明,不同的方法等价于用不同的固定系数最小化相同的误差界。通过这种统一,我们的UDIL允许在训练过程中自适应系数,实验结果表明,我们的UDIL在合成数据集和真实数据集上的性能都优于最先进的领域增量学习方法。这项工作的一个局限性是隐含的i.i.d.样本假设,如果使用特定的策略选择记忆,这可能不成立。解决这个限制可以导致一个更强大的统一框架和算法,这将是有趣的未来工作。
-

-
表4:当达到某些条件时,UDIL下现有方法的统一。
-

-
表5:P-MNIST上评估的性能(%)。报告平均准确度(平均准确度)和遗忘来衡量方法的性能。“↑”和“↓”分别表示更高和更低的数字更好。我们使用粗体和下划线分别表示最佳和次佳性能。我们使用“-”表示“不适用”。
-
领域增量学习(DIL)核心
- 模型需适应序列领域(T 个域依次到达),最小化所有域的总风险: L ∗ ( θ ) = L t ( θ ) + L 1 : t − 1 ( θ ) \mathcal{L}^{*}(\theta)=\mathcal{L}_{t}(\theta)+\mathcal{L}_{1: t-1}(\theta) L∗(θ)=Lt(θ)+L1:t−1(θ),其中 L t \mathcal{L}_t Lt是当前域 D t \mathcal{D}_t Dt的误差, L 1 : t − 1 \mathcal{L}_{1:t-1} L1:t−1是过往 t − 1 t-1 t−1个域的总误差。记忆限制—— 仅能访问过往域的少量样本(记忆库M, N ~ i ≪ N i \tilde{N}_i \ll N_i N~i≪Ni, N ~ i \tilde{N}_i N~i为域i的记忆样本数)。灾难性遗忘”—— 直接微调新域数据会导致过往域性能大幅下降。
- 主流重放类方法(如 ER、DER++),用固定系数 β 平衡当前域损失与过往重放损失,但存在两点问题:替代损失(β L r e p l a y \mathcal{L}_{replay} Lreplay)与真实目标( L 1 : t − 1 \mathcal{L}_{1:t-1} L1:t−1)存在差距,缺乏理论支撑;不同方法系数设置无统一标准(如 ER 用 β=0,LwF 用 β=1),难以选择。
-
问题设定与符号:每个域i:数据 S i = { ( x j ( i ) , y j ( i ) ) } j = 1 N i S_i=\{(x_j^{(i)},y_j^{(i)})\}_{j=1}^{N_i} Si={(xj(i),yj(i))}j=1Ni,服从 D i \mathcal{D}_i Di;标签由 f i ( x ) f_i(x) fi(x)生成(二分类 y ∈ { 0 , 1 } y\in\{0,1\} y∈{0,1})。学习最优模型 h ∗ = arg min h ∑ i = 1 t ϵ D i ( h ) h^*=\arg\min_h \sum_{i=1}^t \epsilon_{\mathcal{D}_i}(h) h∗=argminh∑i=1tϵDi(h), ϵ D i ( h ) \epsilon_{\mathcal{D}_i}(h) ϵDi(h)为域i的期望误差。三类泛化误差界
-
误差界类型 核心思想 优缺点 Lemma3.1(ERM-based) 基于经验风险最小化(ERM),用记忆库计算过往域经验误差 优点:直观;缺点: N ~ i \tilde{N}_i N~i小导致 ∑ i = 1 t − 1 1 N ~ i \sum_{i=1}^{t-1}\frac{1}{\tilde{N}_i} ∑i=1t−1N~i1大,界松散 Lemma3.2(域内模型界) 用历史模型 H t − 1 H_{t-1} Ht−1约束当前模型: ϵ D i ( h ) ≤ ϵ D i ( h , H t − 1 ) + ϵ D i ( H t − 1 ) \epsilon_{\mathcal{D}_i}(h) \leq \epsilon_{\mathcal{D}_i}(h,H_{t-1})+\epsilon_{\mathcal{D}_i}(H_{t-1}) ϵDi(h)≤ϵDi(h,Ht−1)+ϵDi(Ht−1) 优点:利用历史知识;缺点:仍依赖记忆库估计 ϵ D i ( h , H t − 1 ) \epsilon_{\mathcal{D}_i}(h,H_{t-1}) ϵDi(h,Ht−1) Lemma3.3(跨域模型界) 用当前域数据估计过往域误差: ϵ D i ( h ) ≤ ϵ D t ( h , H t − 1 ) + 1 2 d H Δ H ( D i , D t ) + ϵ D i ( H t − 1 ) \epsilon_{\mathcal{D}_i}(h) \leq \epsilon_{\mathcal{D}_t}(h,H_{t-1})+\frac{1}{2}d_{\mathcal{H}\Delta\mathcal{H}}(\mathcal{D}_i,\mathcal{D}_t)+\epsilon_{\mathcal{D}_i}(H_{t-1}) ϵDi(h)≤ϵDt(h,Ht−1)+21dHΔH(Di,Dt)+ϵDi(Ht−1) 优点:用当前域充足数据,界更紧;缺点:依赖域差异度 d H Δ H d_{\mathcal{H}\Delta\mathcal{H}} dHΔH(差异大时失效)
-
-
统一界(Theorem3.4):融合三类界,引入系数 α i \alpha_i αi(域内项权重)、 β i \beta_i βi(跨域项权重)、 γ i \gamma_i γi(ERM 项权重),满足 α i + β i + γ i = 1 \alpha_i+\beta_i+\gamma_i=1 αi+βi+γi=1,最终界为: ∑ i = 1 t ϵ D i ( h ) ≤ g ( h , H t − 1 , Ω ) \sum_{i=1}^t \epsilon_{\mathcal{D}_i}(h) \leq g(h,H_{t-1},\Omega) ∑i=1tϵDi(h)≤g(h,Ht−1,Ω)(g包含经验损失项、divergence 项、泛化误差项)。理论优势(Corollary3.4.1):UDIL 的自适应系数界始终≤固定系数界,即 ∑ i = 1 t ϵ D i ( h ) ≤ min Ω g ( . . . ) ≤ g ( . . . , Ω f i x e d ) \sum_{i=1}^t \epsilon_{\mathcal{D}_i}(h) \leq \min_\Omega g(...) \leq g(...,\Omega_{fixed}) ∑i=1tϵDi(h)≤minΩg(...)≤g(...,Ωfixed)。
-
UDIL 方法实现:
- ERM 项:用交叉熵分类损失(Definition4.1)替代经验误差 ϵ ^ D t ( h ) \hat{\epsilon}_{\mathcal{D}_t}(h) ϵ^Dt(h)和 ϵ ^ D i ( h ) \hat{\epsilon}_{\mathcal{D}_i}(h) ϵ^Di(h),公式为: ℓ ^ X ( h ) = 1 ∣ X ∣ ∑ x ∈ X [ − ∑ j = 1 K 1 f ( x ) = j ⋅ log ( [ h ( x ) ] j ) ] \hat{\ell}_{\mathcal{X}}(h) = \frac{1}{|\mathcal{X}|}\sum_{x\in\mathcal{X}}[-\sum_{j=1}^K \mathbb{1}_{f(x)=j}\cdot\log([h(x)]_j)] ℓ^X(h)=∣X∣1∑x∈X[−∑j=1K1f(x)=j⋅log([h(x)]j)]。
- 域内 / 跨域项:用蒸馏损失(Definition4.2)替代 ϵ ^ D i ( h , H t − 1 ) \hat{\epsilon}_{\mathcal{D}_i}(h,H_{t-1}) ϵ^Di(h,Ht−1)和 ϵ ^ D t ( h , H t − 1 ) \hat{\epsilon}_{\mathcal{D}_t}(h,H_{t-1}) ϵ^Dt(h,Ht−1),公式为: ℓ ^ X ( h , H t − 1 ) = 1 ∣ X ∣ ∑ x ∈ X [ − ∑ j = 1 K [ H t − 1 ( x ) ] j ⋅ log ( [ h ( x ) ] j ) ] \hat{\ell}_{\mathcal{X}}(h,H_{t-1}) = \frac{1}{|\mathcal{X}|}\sum_{x\in\mathcal{X}}[-\sum_{j=1}^K [H_{t-1}(x)]_j\cdot\log([h(x)]_j)] ℓ^X(h,Ht−1)=∣X∣1∑x∈X[−∑j=1K[Ht−1(x)]j⋅log([h(x)]j)]。
- Divergence 项:用编码器 - 判别器对抗学习最小化域差异,经验估计公式(Eqn.12): 2 ∑ i = 1 t − 1 β i − 2 min d ∈ H d ∑ i = 1 t − 1 β i [ 1 N ~ i ∑ x ∈ X ~ i ( − log [ d ( e ( x ) ) ] i ) + 1 N t ∑ x ∈ S t ( − log [ d ( e ( x ) ) ] t ) ] 2\sum_{i=1}^{t-1}\beta_i - 2\min_{d\in\mathcal{H}_d}\sum_{i=1}^{t-1}\beta_i\left[\frac{1}{\tilde{N}_i}\sum_{x\in\tilde{\mathcal{X}}_i}(-\log[d(e(x))]_i) + \frac{1}{N_t}\sum_{x\in\mathcal{S}_t}(-\log[d(e(x))]_t)\right] 2∑i=1t−1βi−2mind∈Hd∑i=1t−1βi[N~i1∑x∈X~i(−log[d(e(x))]i)+Nt1∑x∈St(−log[d(e(x))]t)]。
-
训练算法(Algorithm1)
- 当前模型 h θ h_\theta hθ继承历史模型 H t − 1 H_{t-1} Ht−1,系数 Ω = { α i = β i = γ i = 1 / 3 } \Omega=\{\alpha_i=\beta_i=\gamma_i=1/3\} Ω={αi=βi=γi=1/3};迭代训练(共 S 步):
- 采样:当前域 batch B t B_t Bt + 记忆库 batch B i B_i Bi( i < t i<t i<t);
- 判别器训练:优化 V d V_d Vd(Eqn.16),实现域嵌入对齐;
- 系数更新:最小化 V 0 − 1 V_{0-1} V0−1(Eqn.15),搜索更紧误差界;
- 模型优化:最小化 V l − λ d V d V_l - \lambda_d V_d Vl−λdVd(Eqn.14+16),平衡分类与域对齐;
- 历史模型 H t = h θ H_t=h_\theta Ht=hθ,记忆库M用平衡采样补充当前域数据。
- 当前模型 h θ h_\theta hθ继承历史模型 H t − 1 H_{t-1} Ht−1,系数 Ω = { α i = β i = γ i = 1 / 3 } \Omega=\{\alpha_i=\beta_i=\gamma_i=1/3\} Ω={αi=βi=γi=1/3};迭代训练(共 S 步):
-
UDIL 的统一基础是泛化误差界(Theorem3.4),核心机制是 “现有方法对应统一界中的固定系数”:
- 统一界设计:融合 ERM-based 界(Lemma3.1)、域内模型界(Lemma3.2)、跨域模型界(Lemma3.3),引入三个系数 α i \alpha_i αi(域内项权重)、 β i \beta_i βi(跨域项权重)、 γ i \gamma_i γi(ERM 项权重),且满足 α i + β i + γ i = 1 \alpha_i+\beta_i+\gamma_i=1 αi+βi+γi=1;
- 方法映射:现有方法本质是将系数固定为特定值,例如:ER :仅用记忆库重放(ERM 项),对应 α i = β i = 0 \alpha_i=\beta_i=0 αi=βi=0, γ i = 1 \gamma_i=1 γi=1;LwF :仅用当前域蒸馏(跨域项),对应 α i = γ i = 0 \alpha_i=\gamma_i=0 αi=γi=0, β i = 1 \beta_i=1 βi=1;DER++ :记忆库重放 + 域内蒸馏,对应 α i = γ i = 0.5 \alpha_i=\gamma_i=0.5 αi=γi=0.5, β i = 0 \beta_i=0 βi=0;
- 理论优势:Corollary3.4.1 证明,UDIL 的自适应系数能最小化统一界,其界始终≤固定系数界,因此统一且更优。
-
三个引理的核心缺陷:
- Lemma3.1(ERM-based 界):依赖记忆库中过往域的少量样本( N ~ i ≪ N i \tilde{N}_i \ll N_i N~i≪Ni)计算经验误差,导致 ∑ i = 1 t − 1 1 N ~ i \sum_{i=1}^{t-1}\frac{1}{\tilde{N}_i} ∑i=1t−1N~i1过大,泛化误差界松散;
- Lemma3.2(域内模型界):虽引入历史模型 H t − 1 H_{t-1} Ht−1约束当前模型误差( ϵ D i ( h ) ≤ ϵ D i ( h , H t − 1 ) + ϵ D i ( H t − 1 ) \epsilon_{\mathcal{D}_i}(h) \leq \epsilon_{\mathcal{D}_i}(h,H_{t-1})+\epsilon_{\mathcal{D}_i}(H_{t-1}) ϵDi(h)≤ϵDi(h,Ht−1)+ϵDi(Ht−1)),但 ϵ D i ( h , H t − 1 ) \epsilon_{\mathcal{D}_i}(h,H_{t-1}) ϵDi(h,Ht−1)仍需记忆库样本估计,受记忆限制;
- Lemma3.3(跨域模型界):用当前域充足数据估计误差( ϵ D i ( h ) ≤ ϵ D t ( h , H t − 1 ) + 1 2 d H Δ H ( D i , D t ) + ϵ D i ( H t − 1 ) \epsilon_{\mathcal{D}_i}(h) \leq \epsilon_{\mathcal{D}_t}(h,H_{t-1})+\frac{1}{2}d_{\mathcal{H}\Delta\mathcal{H}}(\mathcal{D}_i,\mathcal{D}_t)+\epsilon_{\mathcal{D}_i}(H_{t-1}) ϵDi(h)≤ϵDt(h,Ht−1)+21dHΔH(Di,Dt)+ϵDi(Ht−1)),但依赖域差异度 d H Δ H d_{\mathcal{H}\Delta\mathcal{H}} dHΔH,若域差异大则界失效。
-
融合三界:通过系数 α i / β i / γ i \alpha_i/\beta_i/\gamma_i αi/βi/γi动态分配各边界的权重,例如域差异小时增大 β i \beta_i βi(侧重跨域界),记忆库充足时增大 γ i \gamma_i γi(侧重 ERM 界);缓解记忆依赖:跨域界( β i \beta_i βi项)用当前域数据,减少对记忆库的依赖;平衡域差异:divergence 项( ∑ i = 1 t − 1 β i d H Δ H ( D i , D t ) \sum_{i=1}^{t-1}\beta_i d_{\mathcal{H}\Delta\mathcal{H}}(\mathcal{D}_i,\mathcal{D}_t) ∑i=1t−1βidHΔH(Di,Dt))显式建模域差异,避免跨域界在差异大时失效。
代码整体结构
-
核心模块包括模型(
models/)、数据集(datasets/)、骨干网络(backbones/)、工具函数(utils/)和实验脚本(scripts/),整体服务于论文的两大核心目标:统一现有域增量学习;提出具有自适应系数的 UDIL 算法,实现更紧的误差边界。 -
模型模块(models/):统一框架与对比方法实现
udil.py:实现论文提出的 UDIL 模型,包含四大核心损失项:交叉熵分类损失:在observe方法中通过当前数据和记忆数据的分类误差实现;蒸馏损失:通过soft_ce函数(类似lwf.py中的知识蒸馏)对齐当前模型与历史模型的输出;对抗特征对齐损失:通过disc(判别器)实现域间特征分布对齐,对应论文中 “交叉域边界”; 自适应系数优化:通过task_logits参数化系数并优化,实现论文中 “收紧误差边界” 的核心思想。
-
数据集模块(datasets/):实验场景复现,每个数据集类均定义了任务数(
N_TASKS)、每任务类别数(N_CLASSES_PER_TASK)等核心参数 -
骨干网络(backbones/):特征提取器适配,网络通过
forward方法返回特征(features)、logits 等,支持论文中 “特征空间对齐”(对抗损失)和 “分类器优化”(交叉熵损失)的需求。mnistmlp.py:简单 MLP,用于 MNIST 系列数据集(维度低、任务简单);resnet18.py:ResNet-18,用于 CORe50(高维图像,需要更强的特征提取能力)。
-
工具函数(utils/):核心机制支撑
buffer.py/buffer_feature.py:实现记忆缓冲机制(论文中 “记忆组件”),存储过去域的数据和特征,支持增量学习中的回放策略;loss.py:包含论文中提到的各类损失函数(如交叉熵、蒸馏损失、对比损失supcon);loggers.py/visualization.py:记录实验结果并可视化(如论文中的准确率矩阵、嵌入空间分布),对应论文 “定性结果” 部分。
-
main.py:解析参数、初始化模型和数据集,调用训练入口;training.py:实现核心训练循环,对应论文中 UDIL 的迭代过程:- 每个任务开始前(
begin_task):保存历史模型输出、初始化记忆缓冲; - 训练中(
observe):交替更新判别器(域对齐)、自适应系数(边界优化)和主模型(多损失联合优化); - 每个任务结束后(
end_task):更新记忆缓冲、评估跨任务性能(evaluate函数)。
- 每个任务开始前(
-
UDIL 论文的核心理论之一是通过多损失融合实现跨域特征对齐与抗遗忘,其中监督对比损失(含跨域版本)是关键组成部分。
-
ERM 项(当前域分类损失):最小化当前域的经验风险;
-
蒸馏项(历史知识保留):通过知识蒸馏约束当前模型与历史模型的输出一致性;
-
对齐项(跨域分布对齐):通过对抗学习或对比学习减小域间特征分布差异(对应论文中 “divergence terms”)。其中,
SupConLoss和CrossDomainSupConLoss直接服务于对齐项,通过增强跨域同类特征的聚集性,实现论文提出的 “特征空间域无关化” 目标。 -
论文理论模块 代码实现( utils/loss.py)核心逻辑 域内特征紧凑性(intra-bound) SupConLoss通过同类样本对比,增强单域内特征聚集性 跨域特征对齐(cross-bound) CrossDomainSupConLoss通过 “同类异域” 样本对比,强制不同域同类特征分布对齐 损失权重自适应 结合 udil.py的系数优化对比损失权重由 Ω动态调整,平衡对齐强度与抗遗忘需求
-
-
该损失函数对应论文中 “域内特征紧凑性约束”,确保同一域内同类样本的特征在嵌入空间中聚集,是跨域对齐的基础。论文提到 “intra-domain bound” 要求同一域内同类样本的特征分布尽可能集中。
SupConLoss通过最大化同类样本的相似度、最小化异类样本的相似度,实现这一约束。-
# 计算标签掩码:同类样本为1,异类为0 labels = labels.contiguous().view(-1, 1) mask = torch.eq(labels, labels.T).float().to(device) # 同类别掩码 -
“同类样本应具有高相似度” 的理论,通过
torch.eq(labels, labels.T)生成同类样本的正例对。 -
# 相似度计算(支持点积或L2距离) if self.loss_form == 'dotprod': anchor_dot_contrast = torch.div(torch.matmul(anchor_feature, contrast_feature.T), self.temperature) elif self.loss_form == 'l2': anchor_dot_contrast = torch.div(2 * dot_prod - anchor_sq - contrast_sq.T, self.temperature) -
“特征空间距离度量” 的选择,温度系数(
temperature)控制相似度的锐度,确保同类样本的区分性 -
# 损失计算:最大化正例对的对数概率 mean_log_prob_pos = (mask * log_prob).sum(1) / mask.sum(1) loss = - (self.temperature / self.base_temperature) * mean_log_prob_pos
-
-
CrossDomainSupConLoss:跨域特征对齐的关键实现, “跨域同类特征分布对齐” 的理论要求,解决不同域间同类样本特征偏移的问题。 “cross-domain bound” 需要最小化不同域间同类样本的分布差异。
CrossDomainSupConLoss通过构建 “同类别但不同域” 的正例对,强制跨域同类特征在嵌入空间中聚集,直接服务于论文中的 “对抗特征对齐损失” 目标。-
# 跨域掩码设计:同类别且不同域的样本为1 label_mask = torch.eq(labels, labels.T).to(device) # 同类掩码 domain_mask = torch.eq(domains, domains.T).to(device) # 同域掩码 mask = torch.logical_xor(label_mask, domain_mask).float() # 异或:同类且不同域 -
掩码设计是核心创新,通过
logical_xor实现 “同类别但不同域” 的样本对筛选,匹配论文中 “跨域同类特征应对齐” 的理论(区别于传统对比损失仅关注同域同类)。 -
# 排除自对比(避免样本与自身对比) logits_mask = torch.scatter(torch.ones_like(mask), 1, torch.arange(...).view(-1, 1), 0) mask = mask * logits_mask # 数值稳定性处理 mean_log_prob_pos = (mask * log_prob).sum(1) / (mask.sum(1) + self.eps)
-
训练全流程解析
-
UDIL 的训练流程严格遵循 “增量域学习” 范式,通过多模块协同实现 “抗遗忘 + 域对齐”,核心流程分布在
main.py(入口)、training.py(训练循环)和models/udil.py(模型逻辑)中: -
初始化阶段(
main.py)- 解析命令行参数(如
--dataset=perm-mnist、--buffer-size=400),通过get_model和get_dataset初始化模型与数据集。 - 骨干网络(如
mnistmlp)和判别器(同类型网络)通过backbones/mnistmlp.py定义,前者输出特征用于分类,后者输出域预测用于对齐。
- 解析命令行参数(如
-
任务开始前(
udil.py的begin_task)- 若为非首个任务,加载历史模型对当前域数据的预测结果(
setup_logits),初始化记忆缓冲中的特征和标签(setup_memory)。 - 重置判别器参数(
setup_discriminators)并初始化自适应系数优化器(setup_task_weights),对应论文中 “每域重新优化系数” 的设定。
- 若为非首个任务,加载历史模型对当前域数据的预测结果(
-
训练循环(
training.py的train函数)- 每个域任务执行
real_epochs轮训练(由get_epochs函数决定,默认const模式为固定轮数)。 - 每轮迭代中,通过
meta_observe调用udil.py的observe方法,完成三大核心步骤:- 判别器更新(
update_disc):输入当前域数据与记忆缓冲的历史数据,训练判别器区分域来源。通过交叉熵损失优化,使判别器无法区分当前与历史特征(对抗训练),实现特征分布对齐(“对抗特征对齐损失”)。 - 系数优化(
update_task_weights):基于当前与历史损失(分类、蒸馏)及判别器估计的域差异(hdivs),通过梯度下降优化task_logits,动态调整损失权重(“自适应系数优化”)。 - 主模型更新(
update_weights):联合四大损失训练骨干网络,包括当前域分类损失、历史知识蒸馏损失、对抗特征对齐损失(反向梯度)、监督对比损失(增强同类特征聚集)。
- 判别器更新(
- 每个域任务执行
-
任务结束后(
udil.py的end_task)- 通过
setup_buffer将当前域数据存入记忆缓冲(均匀采样,避免偏差),为下一轮增量学习保留数据。 - 计算当前模型在历史域上的误差(
setup_past_err),用于后续系数优化。
- 通过
-
论文理论模块 代码实现位置 核心逻辑 记忆缓冲机制 utils/buffer_feature.py存储历史数据与特征,缓解遗忘 对抗特征对齐 udil.py的update_disc判别器区分域来源,反向梯度迫使骨干网络输出域无关特征 自适应系数优化 udil.py的update_task_weights通过 task_logits参数化系数,基于损失和域差异动态调整监督对比损失 utils/loss.py的CrossDomainSupConLoss增强跨域同类特征聚集性,辅助对齐
损失计算与融合
- 交叉熵损失:当前数据 logits 与标签的分类误差(
loss_cur_erm)。 - 蒸馏损失:当前模型对历史数据的 logits 与缓冲中存储的历史 logits 的差异(
soft_ce函数,温度系数 2,udil.py的compute_current_kd)。 - 对抗特征对齐损失:判别器域预测误差的反向梯度(
-loss_disc),通过update_disc实现特征分布对齐。 - 监督对比损失:跨域同类特征的相似度损失(
CrossDomainSupConLoss),使同类特征在嵌入空间聚集(supcon-sim=l2用 L2 距离计算相似度)。 - 总损失:通过自适应系数
α, β, γ(由task_logits参数化)加权求和,系数通过update_task_weights动态优化。
更多推荐



所有评论(0)