PFI、BSC、PIMA的个人理解

​作为学习PFI、BSC、PIMA的笔记,方便理解与复习。

三者均来自论文"Doubly Perturbed Task Free Continual Learning",论文链接为:点此跳转

其中:

  • PFI(Perturbed Function Interpolation),扰动函数插值
  • BSC(Branched Stochastic Classifiers),分支随机分类器
  • PIMA(Perturbation-Induced Memory man-agement and Adaptive learning rate),扰动诱导的记忆管理与自适应学习率

一.原理

1.传统的无任务持续学习

这里考虑理论上的理想状态。

传统的无任务持续学习的在 t t t 参数 θ t \theta_t θt 应满足的条件如下:
θ t ∈ arg ⁡ min ⁡ θ L t ( θ ) subject to  L τ ( θ ) ≤ L τ ( θ t − 1 ) ; ∀ τ ∈ [ 0 , … , t − 1 ] . \theta^{t} \in \arg\min_{\theta} \mathcal{L}_{t}(\theta) \\ \text{subject to } \mathcal{L}_\tau(\theta) \leq \mathcal{L}_\tau(\theta_{t-1}); \quad \forall \tau \in [0, \ldots, t-1]. θtargθminLt(θ)subject to Lτ(θ)Lτ(θt1);τ[0,,t1].可以简单的理解为,新的参数 θ t \theta_t θt 不仅要让当前任务 t t t 的损失函数最小,还要满足在当前参数 θ t \theta_t θt 下之前的任务 τ \tau τ 的损失函数 L τ \mathcal{L}_\tau Lτ 也要比之前小。

前者保证的是可塑性,后者保证的是稳定性。

2.考虑未来样本的新型无任务持续学习

许多持续学习研究将 “独立同分布离线” 训练视为理想方案,因为它在过去、现在和未来数据上均能保持较低的损失,因此,考虑未来样本有助于提升无任务持续学习设置下的性能。

也就是说,在损失函数中,引入对未来样本的考量。需要注意的是,这里考虑的是理论上的理想状态,所以先别管未来样本的部分怎么计算,看式子是否合理即可。

①放松单一约束(针对旧样本)

将前文中对之前任务 的约束放松为单一约束:
1 t ∑ τ = 0 t − 1 L τ ( θ ) ≤ 1 t ∑ τ = 0 t − 1 L τ ( θ t − 1 ) \frac{1}{t} \sum_{\tau=0}^{t-1} \mathcal{L}_\tau(\theta) \leq \frac{1}{t} \sum_{\tau=0}^{t-1} \mathcal{L}_\tau(\theta_{t-1}) t1τ=0t1Lτ(θ)t1τ=0t1Lτ(θt1)也就是把之前强制的每个任务的损失都有降低,改成了之前任务损失的均值降低就行,约束放宽了。

②引入冗余参数(针对新样本)

引入一个含冗余参数 θ ′ \theta' θ 的附加约束,以考虑未来样本:
L t + 1 ( θ ′ ) ≤ L t + 1 ( θ ) \mathcal{L}_{t+1}(\theta') \leq \mathcal{L}_{t+1}(\theta) Lt+1(θ)Lt+1(θ)这里的 θ ′ \theta' θ 是一个理论上的、辅助性的概念,它代表一个“如果看到了未来数据,模型可能会变成什么样”的理想化版本。

也就是说,在理想状况下我们见到了新样本后得到的参数 θ ′ \theta' θ 在时间 t + 1 t+1 t+1 时的损失,肯定要比我们现在时间 t t t 得到的参数 θ \theta θ 算出来的损失要小。

③综合约束

在前文提到的①和②的改进下,利用拉格朗日乘数法,可以将传统无任务持续学习应满足的参数条件改写为:
θ t ∈ arg ⁡ min ⁡ θ L t ( θ ) + λ t ∑ τ = 0 t − 1 ( L τ ( θ ) − L τ ( θ t − 1 ) ) + ρ ( L t + 1 ( θ ′ ) − L t + 1 ( θ ) ) \theta^{t} \in \arg\min_{\theta} \mathcal{L}_{t}(\theta) + \frac{\lambda}{t} \sum_{\tau=0}^{t-1} \left( \mathcal{L}_{\tau}(\theta) - \mathcal{L}_{\tau}(\theta^{t-1}) \right) + \rho \left( \mathcal{L}_{t+1}(\theta') - \mathcal{L}_{t+1}(\theta) \right) θtargθminLt(θ)+tλτ=0t1(Lτ(θ)Lτ(θt1))+ρ(Lt+1(θ)Lt+1(θ))其中, λ > 0 \lambda>0 λ>0 ρ > 0 \rho>0 ρ>0 为拉格朗日乘数。

式子中的三项分别对应当前样本约束过去样本约束未来样本约束

至于怎么用拉格朗日乘数法得到的这个东西,这里就略过了。

3.双重扰动无任务持续学习

已知结论:

  • 在无任务持续学习中,未来样本和大多数过去样本是不可用的,无法直接优化前文得到的损失函数。
  • 根据之前论文的描述,分类器中的参数变化比编码器中的参数变化更为显著。

①网络拆分

设网络 h = g ∘ f h = g \circ f h=gf 由编码器 f f f 和分类器 g g g 组成,其参数化形式为:
h ( ⋅ ; θ ) = g ( f ( ⋅ ; θ e ) ; ϕ ) h(\cdot; \theta) = g(f(\cdot; \theta_{e}); \phi) h(;θ)=g(f(;θe);ϕ)其中, θ = [ θ e ; ϕ ] \theta = [\theta_{e}; \phi] θ=[θe;ϕ]

h ( x ; θ ) h(x; \theta) h(x;θ) 表示该网络为 h h h ,其输入为 x x x ,参数为 θ \theta θ ,输出为 h ( x ; θ ) h(x; \theta) h(x;θ)

上面一段话实际上就是把原来的大网络 h h h 拆成了两个小网络 f f f g g g ,后半部分网络 g g g 也就是分类器,它的输入是编码器 f f f 的输出。

②更新后参数假设

假设对于未来样本 ( x t + 1 , y t + 1 ) (x^{t+1}, y^{t+1}) (xt+1,yt+1) ,新参数 θ ′ ≈ [ θ e ; ϕ ′ ] \theta' \approx [\theta_{e}; \phi'] θ[θe;ϕ] 在编码器中几乎无变化,而在分类器中可能有显著变化。

也就是根据其他人的论文中提出的观点“分类器中的参数变化比编码器中的参数变化更为显著”,这里才假设只有分类器的参数 ϕ \phi ϕ 更新成了 ϕ ′ \phi' ϕ ,而编码器的参数 θ e \theta_{e} θe 几乎无变化,更新后还是原来的 θ e \theta_{e} θe

③限制范围定义

定义:

  • η 1 t : = max ⁡ τ ∥ x t − x τ ∥ < ∞ , τ = 0 , … , t − 1 , t + 1 \eta_{1}^{t} := \max_{\tau} \| x^{t} - x^{\tau} \| < \infty , \tau = 0, \dots, t-1, t+1 η1t:=maxτxtxτ<,τ=0,,t1,t+1
  • η 2 t : = max ⁡ ϕ ′ ∥ ϕ ′ − ϕ t ∥ \eta_{2}^{t} := \max_{\phi'} \| \phi' - \phi^{t} \| η2t:=maxϕϕϕt

则可得到一个前文综合约束中提到损失的替代损失。

这里的两个参数实际上分别代表的是:

  • η 1 t \eta_{1}^{t} η1t当前样本 x t x^t xt 与包括过去的和未来的所有其他样本之间可能存在的最大差异。
  • η 2 t \eta_{2}^{t} η2t :在下一个时间步,分类器权重 ϕ ′ \phi' ϕ 可能发生的最大变化。

总之这两个参数定义的都是范围,定义了对抗性扰动的可行域或允许的最大扰动半径。

4.命题1

假设对于所有 t t t L t ( θ ) \mathcal{L}_{t}(\theta) Lt(θ) 是 Lipschitz 连续的,且 ϕ ′ \phi' ϕ 通过有限梯度步骤从更新得到,因此 ϕ ′ \phi' ϕ 是有界随机变量,且 η 2 t < ∞ \eta_{2}^{t} < \infty η2t<(概率很高),则前文综合约束部分中提到的损失的上界为:
L t ( θ ) + λ max ⁡ ∥ Δ x ∥ ≤ η 1 t L t , Δ ( θ ) + ρ max ⁡ ∥ Δ ϕ ∥ ≤ η 2 t max ⁡ ∥ Δ x ∥ ≤ η 1 t L t , Δ ( [ θ e ; ϕ t + Δ ϕ ] ) \mathcal{L}_{t}(\theta) + \lambda \max_{\| \Delta x \| \leq \eta_{1}^{t}} \mathcal{L}_{t, \Delta}(\theta) + \rho \max_{\| \Delta \phi \| \leq \eta_{2}^{t}} \max_{\| \Delta x \| \leq \eta_{1}^{t}} \mathcal{L}_{t, \Delta}\left( [\theta_{e}; \phi^{t} + \Delta \phi] \right) Lt(θ)+λ∥Δxη1tmaxLt,Δ(θ)+ρ∥Δϕη2tmax∥Δxη1tmaxLt,Δ([θe;ϕt+Δϕ])其中 L t , Δ ( θ ) = ℓ ( h ( x t + Δ x ; θ ) , y t ) \mathcal{L}_{t, \Delta}(\theta) = \ell(h(x^{t} + \Delta x; \theta), y^{t}) Lt,Δ(θ)=(h(xt+Δx;θ),yt)

所以优化它就可以了。

①为什么一定要是上界?

A ( θ ) ≥ B ( θ ) A(\theta) \geq B(\theta) A(θ)B(θ) 时,如果我们找到 θ ∗ \theta^* θ 使得 A ( θ ∗ ) A(\theta^*) A(θ) 很小,那么由于 B ( θ ∗ ) ≤ A ( θ ∗ ) B(\theta^*) \leq A(\theta^*) B(θ)A(θ) ,我们可以保证 B ( θ ∗ ) B(\theta^*) B(θ) 也很小,这提供了一个性能安全网:通过让上界变小,我们迫使真实目标也必须变小。

②Lipschitz 连续

设有一个函数 f : R m → R n f: \mathbb{R}^m \to \mathbb{R}^n f:RmRn ,它将一个 m m m 维向量映射为一个 n n n 维向量。

如果存在一个常数 L ≥ 0 L \geq 0 L0 (称为 Lipschitz 常数),使得对于定义域内所有的向量 x 1 , x 2 ∈ R m x_1,x_2 \in \mathbb{R}^m x1,x2Rm ,都有:
∥ f ( x 1 ) − f ( x 2 ) ∥ ≤ L ⋅ ∥ x 1 − x 2 ∥ \|f(x_1) - f(x_2)\| \leq L \cdot \|x_1 - x_2\| f(x1)f(x2)Lx1x2那么,函数 f f f 被称为是 Lipschitz 连续的。

③第二项怎么来的?

第二项的公式为:

λ max ⁡ ∥ Δ x ∥ ≤ η 1 t L t , Δ ( θ ) \lambda \max_{\| \Delta x \| \leq \eta_{1}^{t}} \mathcal{L}_{t, \Delta}(\theta) λmax∥Δxη1tLt,Δ(θ)

它由过去约束项

λ t ∑ τ = 0 t − 1 ( L τ ( θ ) − L τ ( θ t − 1 ) ) \frac{\lambda}{t} \sum_{\tau=0}^{t-1} \left( \mathcal{L}_{\tau}(\theta) - \mathcal{L}_{\tau}(\theta^{t-1}) \right) tλτ=0t1(Lτ(θ)Lτ(θt1))

转化而来,接下来我会讲解转化的步骤。

根据 Lipschitz 连续性假设,损失函数 L τ ( θ ) = ℓ ( h ( x τ ; θ ) , y τ ) \mathcal{L}_{\tau}(\theta) = \ell(h(x_{\tau}; \theta), y_{\tau}) Lτ(θ)=(h(xτ;θ),yτ) 关于输入 x x x 是 Lipschitz 连续的。即,存在常数 L x > 0 L_x > 0 Lx>0 ,使得对于所有 θ \theta θ ,有:

∣ L τ ( θ ) − L t ( θ ) ∣ ≤ L x ∥ x τ − x t ∥ |\mathcal{L}_{\tau}(\theta) - \mathcal{L}_t(\theta)| \leq \mathcal{L}_x \|x_{\tau} - x_t\| Lτ(θ)Lt(θ)Lxxτxt

这个假设是合理的,因为神经网络通常满足局部 Lipschitz 连续性。

因为损失是一个标量,所以原式子可以转化为:

L τ ( θ ) − L t ( θ ) ≤ L x ∥ x τ − x t ∥ \mathcal{L}_{\tau}(\theta) - \mathcal{L}_t(\theta) \leq \mathcal{L}_x \|x_{\tau} - x_t\| Lτ(θ)Lt(θ)Lxxτxt

移项可得:

L τ ( θ ) ≤ L t ( θ ) + L x ∥ x τ − x t ∥ \mathcal{L}_{\tau}(\theta) \leq \mathcal{L}_t(\theta) + \mathcal{L}_x \|x_{\tau} - x_t\| Lτ(θ)Lt(θ)+Lxxτxt

带入 L τ ( θ ) = ℓ ( h ( x τ ; θ ) , y τ ) \mathcal{L}_{\tau}(\theta) = \ell(h(x_{\tau}; \theta), y_{\tau}) Lτ(θ)=(h(xτ;θ),yτ) 可以得到:

L τ ( θ ) = ℓ ( h ( x τ ; θ ) , y τ ) ≤ ℓ ( h ( x t ; θ ) , y t ) + L x ∥ x τ − x t ∥ \mathcal{L}_{\tau}(\theta) = \ell(h(x_{\tau}; \theta), y_{\tau}) \leq \ell(h(x_t; \theta), y_t) + \mathcal{L}_x \|x_{\tau} - x_t\| Lτ(θ)=(h(xτ;θ),yτ)(h(xt;θ),yt)+Lxxτxt

因为 ∥ x τ − x t ∥ ≤ η 1 t \|x_{\tau} - x_t\| \leq \eta_1^t xτxtη1t ,所以在 x t x^t xt η 1 t \eta_1^t η1t-邻域内最坏情况的损失是该损失一个更紧的上界:

L τ ( θ ) ≤ max ⁡ ∥ Δ x ∥ ≤ η 1 t ℓ ( h ( x t + Δ x ; θ ) , y t ) = max ⁡ ∥ Δ x ∥ ≤ η 1 t L t , Δ ( θ ) \mathcal{L}_{\tau}(\theta) \leq \max_{\|\Delta x\| \leq \eta_1^t} \ell(h(x_t + \Delta x; \theta), y_t) = \max_{\|\Delta x\| \leq \eta_1^t} \mathcal{L}_{t,\Delta}(\theta) Lτ(θ)max∥Δxη1t(h(xt+Δx;θ),yt)=max∥Δxη1tLt,Δ(θ)

在这个公式中, x t + Δ x x_t + \Delta x xt+Δx 的范围其实就是 x τ x_\tau xτ 的范围,所以可以理解成小于等于一个所有可能取值中最大的取值,这也是这个取值被称为最坏情况损失的原因。

这个上界的意义是:如果一个模型对当前样本 x t x^t xt 的所有微小扰动版本都具有低损失,那么它很可能对那些与 x t x^t xt 相似的过去样本也具有低损失

因此,过去所有 t t t 个样本损失和的上界为:

∑ τ = 0 t − 1 L τ ( θ ) ≤ ∑ τ = 0 t − 1 max ⁡ ∥ Δ x ∥ ≤ η 1 t L t , Δ ( θ ) = t ⋅ max ⁡ ∥ Δ x ∥ ≤ η 1 t L t , Δ ( θ ) \sum_{\tau=0}^{t-1} \mathcal{L}_{\tau}(\theta) \leq \sum_{\tau=0}^{t-1} \max_{\|\Delta x\| \leq \eta_1^t} \mathcal{L}_{t,\Delta}(\theta) = t \cdot \max_{\|\Delta x\| \leq \eta_1^t} \mathcal{L}_{t,\Delta}(\theta) τ=0t1Lτ(θ)τ=0t1max∥Δxη1tLt,Δ(θ)=tmax∥Δxη1tLt,Δ(θ)

也就是说,既然每个过去样本的上界都是右边那个与 τ \tau τ 无关的最坏情况,那么 t t t 个过去样本的上界自然也就是单个过去样本的 t t t 倍。

带入我们需要转化的过去约束项 λ t ∑ τ = 0 t − 1 ( L τ ( θ ) − L τ ( θ t − 1 ) ) \frac{\lambda}{t} \sum_{\tau=0}^{t-1} \left( \mathcal{L}_{\tau}(\theta) - \mathcal{L}_{\tau}(\theta^{t-1}) \right) tλτ=0t1(Lτ(θ)Lτ(θt1)) ,我们就可以得到:

λ t ∑ τ = 0 t − 1 ( L τ ( θ ) − L τ ( θ t − 1 ) ) ≤ λ ( max ⁡ ∥ Δ x ∥ ≤ η 1 t L t , Δ ( θ ) − 1 t ∑ τ = 0 t − 1 L τ ( θ t − 1 ) ) \frac{\lambda}{t} \sum_{\tau=0}^{t-1} (\mathcal{L}_{\tau}(\theta) - \mathcal{L}_{\tau}(\theta_{t-1})) \leq \lambda \left( \max_{\|\Delta x\| \leq \eta_1^t} \mathcal{L}_{t,\Delta}(\theta) - \frac{1}{t} \sum_{\tau=0}^{t-1} \mathcal{L}_{\tau}(\theta_{t-1}) \right) tλτ=0t1(Lτ(θ)Lτ(θt1))λ(max∥Δxη1tLt,Δ(θ)t1τ=0t1Lτ(θt1))

又因为 − 1 t ∑ τ = 0 t − 1 L τ ( θ t − 1 ) -\frac{1}{t} \sum_{\tau=0}^{t-1} \mathcal{L}_{\tau}(\theta_{t-1}) t1τ=0t1Lτ(θt1) 是一个常数,不影响 θ \theta θ 的优化方向,所以可以忽略掉(因为使用梯度优化训练模型时,常数的导数为0)。

因此,过去约束项可由上界项近似:
λ t ∑ τ = 0 t − 1 ( L τ ( θ ) − L τ ( θ t − 1 ) ) ⟶ Proxy λ max ⁡ ∥ Δ x ∥ ≤ η 1 t L t , Δ ( θ ) \frac{\lambda}{t} \sum_{\tau=0}^{t-1} \left( \mathcal{L}_{\tau}(\theta) - \mathcal{L}_{\tau}(\theta_{t-1}) \right) \overset{\text{Proxy}}{\longrightarrow} \lambda \max_{\|\Delta x\| \leq \eta_1^t} \mathcal{L}_{t,\Delta}(\theta) tλτ=0t1(Lτ(θ)Lτ(θt1))Proxyλ∥Δxη1tmaxLt,Δ(θ)

④第三项怎么来的?

第三项的公式为:

ρ max ⁡ ∥ Δ ϕ ∥ ≤ η 2 t max ⁡ ∥ Δ x ∥ ≤ η 1 t L t , Δ ( [ θ e ; ϕ t + Δ ϕ ] ) \rho \max_{\|\Delta \phi\| \leq \eta_2^t} \max_{\|\Delta x\| \leq \eta_1^t} \mathcal{L}_{t,\Delta}\left( [\theta_e; \phi^t + \Delta \phi] \right) ρmax∥Δϕη2tmax∥Δxη1tLt,Δ([θe;ϕt+Δϕ])

它由未来约束项

ρ ( L t + 1 ( θ ′ ) − L t + 1 ( θ ) ) \rho \left( \mathcal{L}_{t+1}(\theta') - \mathcal{L}_{t+1}(\theta) \right) ρ(Lt+1(θ)Lt+1(θ))

​转化而来,接下来我会讲解转化的步骤。

未来约束项是希望未来参数 θ ′ \theta' θ 下的损失比当前参数 θ \theta θ 下的损失小,也就是模型越训练越好,表达形式就是两者损失相减尽可能小。但这样的表达就会带来一个问题,那就是为了最小化这个未来约束项,模型可能会倾向于让 L t + 1 ( θ ) \mathcal{L}_{t+1}(\theta) Lt+1(θ) 变大,这与我们训练模型的初衷相悖。

所以一个更合理的优化目标是,不强求未来的损失一定更小,只希望模型对未来的参数变化不敏感。

即,当参数从 ϕ t \phi^t ϕt 变为 ϕ ′ \phi' ϕ 时,模型对于当前样本 x t x^t xt 的预测不应剧烈变化(保持稳定性),根据参数变化分解假设, θ ′ ≈ [ θ e ; ϕ ′ ] \theta' \approx [\theta_e; \phi'] θ[θe;ϕ] ,且 ∥ ϕ ′ − ϕ t ∥ ≤ η 2 t \|\phi' - \phi^t\| \leq \eta_2^t ϕϕtη2t ,这个目标可以通过最小化以下项实现:

max ⁡ ∥ Δ ϕ ∥ ≤ η 2 t L t ( [ θ e ; ϕ t + Δ ϕ ] ) \max_{\|\Delta \phi\| \leq \eta_2^t} \mathcal{L}_t\left( [\theta_e; \phi^t + \Delta \phi] \right) max∥Δϕη2tLt([θe;ϕt+Δϕ])

与过去样本类似,我们依然用当前输入 x t x^t xt 的扰动来近似未来输入。即,假设未来样本落在 x t x^t xt η 1 t \eta_1^t η1t-邻域内:

L t + 1 ( θ ) = ℓ ( h ( x t + 1 ; θ ) , y t + 1 ) ≤ max ⁡ ∥ Δ x ∥ ≤ η 1 t L t , Δ ( θ ) \mathcal{L}_{t+1}(\theta) = \ell(h(x_{t+1}; \theta), y_{t+1}) \leq \max_{\|\Delta x\| \leq \eta_1^t} \mathcal{L}_{t,\Delta}(\theta) Lt+1(θ)=(h(xt+1;θ),yt+1)max∥Δxη1tLt,Δ(θ)

叠加未来参数与未来输入的变化,就得到了如下所示的双重扰动项:

max ⁡ ∥ Δ ϕ ∥ ≤ η 2 t max ⁡ ∥ Δ x ∥ ≤ η 1 t L t , Δ ( [ θ e ; ϕ t + Δ ϕ ] ) \max_{\|\Delta \phi\| \leq \eta_2^t} \max_{\|\Delta x\| \leq \eta_1^t} \mathcal{L}_{t,\Delta}\left( [\theta_e; \phi^t + \Delta \phi] \right) max∥Δϕη2tmax∥Δxη1tLt,Δ([θe;ϕt+Δϕ])

最小化这个项,意味着无论参数在 η 2 t \eta_2^t η2t 范围内如何变化,也无论输入在 η 1 t \eta_1^t η1t 范围内如何变化,模型的损失都很小。这直接促进了权重空间的平坦性(对 Δ ϕ \Delta \phi Δϕ )和输入空间的平坦性(对 Δ x \Delta x Δx ),从而满足了对未来适应性的要求。

因此,未来约束项可由上界项近似:
ρ ( L t + 1 ( θ ′ ) − L t + 1 ( θ ) ) ⟶ Proxy ρ max ⁡ ∥ Δ ϕ ∥ ≤ η 2 t max ⁡ ∥ Δ x ∥ ≤ η 1 t L t , Δ ( [ θ e ; ϕ t + Δ ϕ ] ) \rho \left( \mathcal{L}_{t+1}(\theta') - \mathcal{L}_{t+1}(\theta) \right) \overset{\text{Proxy}}{\longrightarrow} \rho \max_{\|\Delta \phi\| \leq \eta_2^t} \max_{\|\Delta x\| \leq \eta_1^t} \mathcal{L}_{t,\Delta}\left( [\theta_e; \phi^t + \Delta \phi] \right) ρ(Lt+1(θ)Lt+1(θ))Proxyρ∥Δϕη2tmax∥Δxη1tmaxLt,Δ([θe;ϕt+Δϕ])

二.扰动函数插值(PFI)

扰动函数插值(Perturbed Function Interpolation,PFI)旨在为命题1中提到的损失上界的第二项提供一个高效的优化方法,原式子如下所示:
min ⁡ θ    λ max ⁡ ∥ Δ x ∥ ≤ η 1 t L t , Δ ( θ ) \min_{\theta} \; \lambda \max_{\|\Delta x\| \leq \eta_1^t} \mathcal{L}_{t,\Delta}(\theta) θminλ∥Δxη1tmaxLt,Δ(θ)直接计算该式中的最大化问题(即寻找对抗样本)需要额外的梯度步骤,计算成本高昂,不适合在线学习。因此,作者提出了PFI作为一种高效的近似方法。

PFI的核心思想是在函数空间中进行扰动和插值,而不是直接对输入 x x x 进行扰动。具体步骤如下:

1.分层扰动特征

首先,随机选择编码器 f f f 中的第 l l l 层,设 f 0 : l f_{0:l} f0:l 为从输入到第 l l l 层隐藏表示的映射, f l = f 0 : l ( x ) \mathrm{f}_l = f_{0:l}(x) fl=f0:l(x) 即为该层的特征。然后,对该特征进行扰动:
f ~ l = ( 1 + μ m ξ m ) ⊙ f l + μ a ξ a \tilde{\mathrm{f}}_l = (1 + \mu_m \boldsymbol{\xi}_m) \odot \mathrm{f}_l + \mu_a \boldsymbol{\xi}_a f~l=(1+μmξm)fl+μaξa其中:

  • ξ m , ξ a ∼ N ( 0 , I ) \boldsymbol{\xi}_m, \boldsymbol{\xi}_a \sim \mathcal{N}(0,\mathbf{I}) ξm,ξaN(0,I) 是独立采样的高斯噪声。
  • ⊙ \odot 表示逐元素相乘(Hadamard积)。
  • μ m \mu_m μm μ a \mu_a μa 是控制扰动强度的系数,它们与当前类别 y y y 的历史平均损失 ℓ ˉ y \bar{\ell}_y ˉy 有关:
    μ m = σ m tan ⁡ − 1 ( ℓ ˉ y ) , μ a = σ a tan ⁡ − 1 ( ℓ ˉ y ) \mu_m = \sigma_m \tan^{-1}(\bar{\ell}_y), \quad \mu_a = \sigma_a \tan^{-1}(\bar{\ell}_y) μm=σmtan1(ˉy),μa=σatan1(ˉy)

这里 σ m , σ a \sigma_m, \sigma_a σm,σa 是超参数, ℓ ˉ y \bar{\ell}_y ˉy 通过指数移动平均进行更新,这种设计使得对于损失较高的类别,扰动强度更大。

PS: ℓ ˉ y \bar{\ell}_{y} ˉy 的更新

原文指出,实际上的 ℓ ˉ y \bar{\ell}_{y} ˉy 应由以下式子给出:
ℓ ˉ y = ∑ τ : y τ = y ℓ ( h ( x τ ; θ τ ) , y τ ) ∣ { τ : y τ = y } ∣ \bar{\ell}_y = \frac{\sum_{\tau: y_\tau = y} \ell(h(x_\tau; \theta_\tau), y_\tau)}{|\{\tau: y_\tau = y\}|} ˉy={τ:yτ=y}τ:yτ=y(h(xτ;θτ),yτ)

但受限于持续学习场景,文中明确说为了避免计算这个真实的算术平均,在实际代码中使用了指数移动平均来更新 ℓ ˉ y \bar{\ell}_{y} ˉy

文中并没有直接说明 ℓ ˉ y \bar{\ell}_{y} ˉy 的更新公式,猜测使用一般的指数移动平均公式,如下所示:
( 这是猜测的公式 ) ℓ ˉ y new = β ⋅ ℓ ˉ y old + ( 1 − β ) ⋅ ℓ current (\text{这是猜测的公式})\bar{\ell}_y^{\text{new}} = \beta \cdot \bar{\ell}_y^{\text{old}} + (1 - \beta) \cdot \ell_{\text{current}} (这是猜测的公式)ˉynew=βˉyold+(1β)current

2.特征插值

接着,对两个不同样本 ( x i , y i ) ( \mathrm{x}_i,y_i) (xi,yi) ( x j , y j ) ( \mathrm{x}_j,y_j) (xj,yj) 经过上述扰动后得到的特征 f ~ i l \tilde{\mathrm{f}}_i^l f~il f ~ j l \tilde{\mathrm{f}}_j^l f~jl 进行插值:
( f ~ l , y ~ ) = ( ζ f ~ i l + ( 1 − ζ ) f ~ j l , ζ y i + ( 1 − ζ ) y j ) (\tilde{\mathrm{f}}_l, \tilde{y}) = \left( \zeta \tilde{\mathrm{f}}_i^l + (1 - \zeta) \tilde{\mathrm{f}}_j^l, \zeta y_i + (1 - \zeta) y_j \right) (f~l,y~)=(ζf~il+(1ζ)f~jl,ζyi+(1ζ)yj)其中 ζ ∼ B e t a ( α , β ) \zeta \sim Beta(\alpha,\beta) ζBeta(α,β)

PS: Beta 分布

Beta 分布的概率密度函数(PDF)由两个正参数 α \alpha α β \beta β 控制:
f ( p ; α , β ) = p α − 1 ( 1 − p ) β − 1 B ( α , β ) f(p; \alpha, \beta) = \frac{p^{\alpha-1} (1-p)^{\beta-1}}{B(\alpha, \beta)} f(p;α,β)=B(α,β)pα1(1p)β1其中 B ( α , β ) B(\alpha,\beta) B(α,β) 是Beta函数,它主要作为一个标准化常数,确保曲线下的总面积为1。

其中:

  • α \alpha α :可以理解为 “成功的次数” 或 “先验的正面次数”。
  • β \beta β :可以理解为 “失败的次数” 或 “先验的反面次数”。

通过调整 α \alpha α β \beta β,Beta分布可以呈现出极其丰富的形态:

  • α = β = 1 \alpha=\beta=1 α=β=1 时,Beta分布退化为 [ 0 , 1 ] [0,1] [0,1] 上的均匀分布,这表示我们对 p p p 没有任何先验信息,认为所有值都是等可能的。这正是在PFI中使用的默认设置( α = β = 1 \alpha=\beta=1 α=β=1),意味着插值权重 ζ \zeta ζ 在0和1之间是均匀随机的。
  • α > 1 , β > 1 \alpha>1,\beta>1 α>1,β>1 时,分布呈单峰状,峰值在 p = α − 1 α + β − 2 p = \frac{\alpha - 1}{\alpha + \beta - 2} p=α+β2α1
  • α < 1 , β < 1 \alpha<1,\beta<1 α<1,β<1 时,分布呈U形,意味着极端值(接近0或1)更可能出现。

3. 前向传播计算损失

最后,将插值后的特征 f ~ l \tilde{\mathrm{f}}^l f~l 送入网络的剩余部分 f ( l + 1 ) : L f_{(l+1):L} f(l+1):L ,得到最终输出,并计算损失:
L ~ τ ( θ ) = ℓ ( g ( f ~ ( x τ ) ) , y τ ) \tilde{\mathcal{L}}_{\tau}(\theta) = \ell\left(g(\tilde{f}(x^{\tau})), y^{\tau}\right) L~τ(θ)=(g(f~(xτ)),yτ)这个损失 L ~ τ ( θ ) \tilde{\mathcal{L}}_{\tau}(\theta) L~τ(θ) 就被用作原始优化目标中对抗性输入扰动项的高效近似。

4.理论依据(命题2)

命题2指出,在一定的假设下(如小扰动范围 ϵ \epsilon ϵ ,以及将多分类视为多个二分类问题等),PFI损失 L ~ τ ( θ ) \tilde{\mathcal{L}}_{\tau}(\theta) L~τ(θ) 是原始对抗损失的一个上界:
L ~ τ ( θ ) ≥ max ⁡ ∥ δ ∥ ≤ ϵ ℓ ( h ( x τ + δ ; θ ) , y τ ) + L τ reg + ϵ 2 ψ 1 ( ϵ ) \tilde{\mathcal{L}}_{\tau}(\theta) \geq \max_{\|\delta\| \leq \epsilon} \ell(h(x^{\tau} + \delta; \theta), y^{\tau}) + \mathcal{L}_{\tau}^{\text{reg}} + \epsilon^2 \psi_1(\epsilon) L~τ(θ)δϵmax(h(xτ+δ;θ),yτ)+Lτreg+ϵ2ψ1(ϵ)其中,当 ϵ \epsilon ϵ 很小时,正则项 L τ reg \mathcal{L}_{\tau}^{\text{reg}} Lτreg 和高阶项 ϵ 2 ψ 1 ( ϵ ) \epsilon^2 \psi_1(\epsilon) ϵ2ψ1(ϵ) 可以忽略,使得PFI损失主要主导了对抗损失。因此,最小化PFI损失就有助于最小化原始的对抗性损失,从而实现平滑输入损失景观的目的。

命题2还引用了很多其他论文中的正则性假设,所以略过该命题的证明过程。

总之,它为PFI的有效性提供了理论支持。

三.分支随机分类器(BSC)

分支随机分类器(Branched Stochastic Classifiers,BSC)是论文中 “双重扰动” 的另一半,专门用于高效地处理权重扰动。

在命题1给出的上界中,第三项是权重扰动项:
max ⁡ ∥ Δ ϕ ∥ ≤ η 2 t max ⁡ ∥ Δ x ∥ ≤ η 1 t L t , Δ ( [ θ e ; ϕ t + Δ ϕ ] ) \max_{\|\Delta\phi\|\leq\eta_2^t} \max_{\|\Delta x\|\leq\eta_1^t} \mathcal{L}_{t,\Delta}([\theta_e; \phi^t + \Delta\phi]) ∥Δϕη2tmax∥Δxη1tmaxLt,Δ([θe;ϕt+Δϕ])与输入扰动一样,直接寻找这个对抗性的权重扰动 Δ ϕ \Delta\phi Δϕ 在计算上是不可行的。

BSC的核心思想是:我们不去寻找那个“最坏”的权重扰动,而是通过维护一个权重的概率分布,并从这个分布中采样,来近似模拟各种可能的权重扰动。 这种方法被认为能够平滑权重的损失景观。

BSC的实现包含两个关键点:权重平均和多分支推理。

1.权重平均

作者不对整个网络做扰动,而是只针对分类器 g g g 的权重,因为他们观察到在持续学习中分类器的变化比编码器更显著。

一个分类器 g g g 的权重 ϕ = [ ϕ 1 , ϕ 1 , . . . , ϕ C ] \phi=[\phi_1,\phi_1,...,\phi_C] ϕ=[ϕ1,ϕ1,...,ϕC] ,其中,BSC为每个类 c c c 的分类器权重 ϕ c \phi_c ϕc ,维护一个随时间演变的高斯分布 N ( ϕ ˉ c t , Σ c s ) \mathcal{N}\left(\bar{\phi}_c^t, \Sigma_c^s\right) N(ϕˉct,Σcs)

①如何更新均值 ϕ ˉ c t \bar{\phi}_c^t ϕˉct?

这是一个移动平均的过程,每 P P P 个迭代步,更新一次:
ϕ ˉ c t = k c ϕ ˉ c ( t − P ) + ϕ c t k c + 1 \bar{\phi}_c^t = \frac{k_c \bar{\phi}_c^{(t-P)} + \phi_c^t}{k_c + 1} ϕˉct=kc+1kcϕˉc(tP)+ϕct其中, k c = ⌊ ( t − T c ) / P ⌋ k_c = \left\lfloor (t - T_c) / P \right\rfloor kc=(tTc)/P T c T_c Tc 是首次遇到类别 c c c 的时间,这相当于对类别 c c c 的权重历史取平均,越近的权重占比越高。

②如何更新协方差 Σ c s \Sigma_c^s Σcs ?

原文中,协方差矩阵 Σ c s \Sigma_c^s Σcs 的更新公式如下:
Σ c s = 1 2 Σ diag , t c + D t , c T D t , c 2 ( A − 1 ) \Sigma_c^s = \frac{1}{2} \Sigma_{\text{diag},t}^c + \frac{D_{t,c}^T D_{t,c}}{2(A - 1)} Σcs=21Σdiag,tc+2(A1)Dt,cTDt,c这个公式融合了两种不确定性信息。

对角项部分 Σ diag , t c \Sigma_{\text{diag},t}^c Σdiag,tc 捕捉的是权重本身数值的波动,它的定义为:
Σ diag , t c = diag ( ( ϕ c t ) 2 − ( ϕ ˉ c t ) 2 ) \Sigma_{\text{diag},t}^c = \text{diag}\left((\phi_c^t)^2 - (\bar{\phi}_c^t)^2\right) Σdiag,tc=diag((ϕct)2(ϕˉct)2)

  • diag ( v ) \text{diag}(\mathbf{v}) diag(v) 表示一个对角线由向量 v \mathbf{v} v 构成的对角矩阵。
  • ( ⋅ ) 2 (\cdot)^2 ()2 表示逐元素平方。
  • ( ϕ c t ) 2 (\phi_c^t)^2 (ϕct)2 是当前权重向量的逐元素平方。
  • ( ϕ ˉ c t ) 2 (\bar{\phi}_c^t)^2 (ϕˉct)2 是平均权重向量的逐元素平方。
  • ( ϕ c t ) 2 − ( ϕ ˉ c t ) 2 (\phi_c^t)^2 - (\bar{\phi}_c^t)^2 (ϕct)2(ϕˉct)2 类似于方差公式 E [ X 2 ] − ( E [ X ] ) 2 \mathbb{E}[X^2] - (\mathbb{E}[X])^2 E[X2](E[X])2 的向量形式,它衡量了当前权重 ( ϕ c t ) 2 (\phi_c^t)^2 (ϕct)2 与历史平均权重 ( ϕ ˉ c t ) 2 (\bar{\phi}_c^t)^2 (ϕˉct)2 在每个维度上的偏离程度。
    如果某个权重维度的当前值与平均值相差很大,这个差值就会很大,表示这个维度的权重不确定性高。

所以, Σ diag , t c \Sigma_{\text{diag},t}^c Σdiag,tc 是一个对角矩阵,其对角线上的每个元素代表了对应权重维度的历史波动性。

低秩项部分 D t , c T D t , c A − 1 \frac{\mathbf{D}_{t,c}^T \mathbf{D}_{t,c}}{A - 1} A1Dt,cTDt,c 捕捉的是权重更新方向的趋势,它记录了权重向量在训练过程中的“运动轨迹”。

  • D t , c \mathbf{D}_{t,c} Dt,c 是一个大小为 q × A q \times A q×A 的矩阵,其中 q q q 是权重向量 ϕ c \phi_c ϕc 的维度, A A A 是一个超参数,表示保留的历史步数。
    它的每一列,是历史上某一个时刻的权重与当时平均权重的差值向量(即 ϕ c − ϕ ˉ c \phi_c - \bar{\phi}_c ϕcϕˉc )。
    它通过一个滑动窗口来更新:
    D t , c = [ D t − P , c [ 2  ⁣ :  ⁣ A ] ( ϕ c t − ϕ ˉ c t ) ] \mathbf{D}_{t,c} = \left[ \mathbf{D}_{t-P,c}[2\!:\!A] (\phi_c^t - \bar{\phi}_c^t) \right] Dt,c=[DtP,c[2:A](ϕctϕˉct)]这个操作可以理解为:丢掉 D t − P , c \mathbf{D}_{t-P,c} DtP,c 中最老的一列(即第1列),并将最新的差值向量 ( ϕ c − ϕ ˉ c ) (\phi_c - \bar{\phi}_c) (ϕcϕˉc) 作为新的一列加到矩阵末尾,这样就可以保证 D t , c \mathbf{D}_{t,c} Dt,c 始终保存着最近 A A A 步的权重差值向量。
  • 分子 D t , c T D t , c \mathbf{D}_{t,c}^T \mathbf{D}_{t,c} Dt,cTDt,c 乘积得到的是一个 A × A A \times A A×A 的矩阵, 称为格拉姆矩阵。
    它的每个元素是两个历史差值向量的内积,反映了不同时刻权重变化方向之间的相关性。
  • 分母 A − 1 A-1 A1 可以看作是一个缩放因子,目的是对这个基于经验估计的协方差进行归一化, A − 1 A-1 A1 是计算样本协方差时常用的自由度校正。

所以, D t , c T D t , c A − 1 \frac{\mathbf{D}_{t,c}^T \mathbf{D}_{t,c}}{A - 1} A1Dt,cTDt,c 这一项,通过保留最近 A A A 步的权重更新方向,捕捉了权重在向量空间中的运动模式。 如果权重持续朝某个方向更新,那么这一项会在该方向上给出较大的协方差。

最终的协方差 Σ c s \Sigma_c^s Σcs 是上述两部分的加权平均(各占 1 / 2 1/2 1/2 权重)。

2.多分支推理

为了进一步增强扰动效果,作者不止维护一个分类器,而是引入了 N N N 个并行的线性分类器。

  • 训练:每个分类器独立地进行训练。
  • 推理:对于每个分类器 n n n ,在推理时,从其对应的权重分布 N ( ϕ ˉ c t , Σ c s ) \mathcal{N}\left(\bar{\phi}_c^t, \Sigma_c^s\right) N(ϕˉct,Σcs) 中采样 R R R 次权重 φ \varphi φ ,进行随机预测:
    p n t = 1 R ∑ r = 1 R softmax ( g ( f ( x ; θ e t ) ; φ ) ) , φ ∼ N ( ϕ ˉ n t , Σ n , t ) p_n^t = \frac{1}{R} \sum_{r=1}^R \text{softmax}\left(g\left(f(x;\theta_e^t); \varphi\right)\right), \quad \varphi \sim \mathcal{N}(\bar{\phi}_n^t, \Sigma_{n,t}) pnt=R1r=1Rsoftmax(g(f(x;θet);φ)),φN(ϕˉnt,Σn,t)
  • 最终决策:将所有 N N N 个分类器的预测结果进行平均:
    p ˉ t = 1 N ∑ n = 1 N p n t \bar{p}^t = \frac{1}{N} \sum_{n=1}^N p_n^t pˉt=N1n=1NpntBSC的作用就是将输入数据转化为最终的的输出 p ˉ t \bar{p}^t pˉt ,此时计算损失:
    L = ℓ ( p ˉ t , y ) \mathcal{L} = \ell(\bar{p}^t, y) L=(pˉt,y)作为原始优化目标中权重扰动项的高度近似。

四.扰动诱导的记忆管理与自适应学习率(PIMA)

扰动诱导的记忆管理与自适应学习率(Perturbation-Induced Memory Management and Adaptive Learning Rate,PIMA)是论文的“调度中心”,它利用前面PFI和BSC产生的副产品,来智能地管理记忆库和调整学习率。

1.互信息

作者使用互信息来衡量模型对于一个样本 x \mathbf{x} x 的预测不确定性。其计算方式如下:
I ( x ; ϕ t ) = H ( p ˉ t ) − 1 N ∑ n = 1 N H ( p n t ) \mathbb{I}(x; \phi^t) = \mathbb{H}(\bar{p}^t) - \frac{1}{N} \sum_{n=1}^N \mathbb{H}(p_n^t) I(x;ϕt)=H(pˉt)N1n=1NH(pnt)其中:

  • p ˉ t = 1 N ∑ n = 1 N p n t \bar{p}^t = \frac{1}{N} \sum_{n=1}^N p_n^t pˉt=N1n=1Npnt N N N 个BSC分类器的平均预测概率分布。
  • p n t p_n^t pnt 是第 n n n 个BSC分类器的预测概率分布。
  • H ( ⋅ ) \mathbb{H}(\cdot) H() 是计算概率分布的熵。熵越大,表示分布越均匀,不确定性越高。

这个公式的直观解释是:

  • H ( p ˉ t ) \mathbb{H}(\bar{p}^t) H(pˉt) :衡量总体不确定性(模型整体上对这个样本有多不确定)。
  • 1 N ∑ n = 1 N H ( p n t ) \frac{1}{N} \sum_{n=1}^N \mathbb{H}(p_n^t) N1n=1NH(pnt):衡量平均的认知不确定性(每个独立的分类器自身有多不确定)。
  • 互信息 I \mathbb{I} I :总体不确定性减去平均认知不确定性。它捕捉的是各个分类器之间的“分歧”。

为什么用互信息?

  • 如果所有分类器都很不确定,但它们的预测结果一致(比如都认为是A类),那么互信息很低。这说明样本可能很简单(送分题,都做得对),或者很难(易错题,都选了同一个错误选项),但模型内部没有分歧。
  • 如果分类器之间预测结果分歧很大(有的认为是A类,有的认为是B类),那么互信息就会很高。这通常意味着样本位于决策边界附近,是对模型最有价值的样本。

2. 基于不确定性的记忆管理

该记忆管理的目的是维护一个高质量的记忆库 M t \mathcal{M}_t Mt ,使其中的样本能最有效地防止遗忘,其中数据的选择策略如下:

  • 平衡类别:首先保证记忆库中各类别的样本数量基本平衡。
  • 维护互信息:为记忆库中的每个样本 ( x , y ) (\mathbf{x},y) (x,y) 维护一个累积互信息 H t ( x , y ) H_t(\mathbf{x},y) Ht(x,y) ,通过指数移动平均更新。这代表了该样本历史上引起的模型分歧程度的平均值,其中累积互信息的公式如下:
    H t ( x , y ) = ( 1 − γ ) H t − 1 ( x , y ) + γ I ( x ; ϕ t ) γ ∈ ( 0 , 1 ) H_t(x, y) = (1 - \gamma) H_{t-1}(x, y) + \gamma \mathbb{I}(x; \phi^t)\quad \gamma \in (0, 1) Ht(x,y)=(1γ)Ht1(x,y)+γI(x;ϕt)γ(0,1)
  • 更新规则:当需要为新样本腾出空间时,找到记忆库中样本数量最多的类别 y ^ \hat{y} y^ ,比较当前流样本 x t \mathbf{x}^t xt 的即时互信息 I ( x t ; ϕ t ) \mathbb{I}(\mathbf{x}^t; \phi^t) I(xt;ϕt) 与记忆库中 y ^ \hat{y} y^ 类所有样本的累积互信息,如果当前样本引起的分歧比库中某些“老”样本还大(即它的不确定性/价值更高),那么就替换掉库中那个累积互信息最小的样本,否则跳过。

其中的逻辑就是优先保留那些持续让模型产生高分歧的边界样本,因为这些样本对于巩固决策边界、防止遗忘最为重要。

3. 基于不确定性的自适应学习率

该自适应学习率的目标是根据模型的学习状态动态调整学习率 η t \eta_t ηt ,其调整策略如下:

  • 每当分类器平均权重 ϕ ˉ c t \bar{\phi}_c^t ϕˉct 更新时,检查整个记忆库 M t \mathcal{M}_t Mt 的平均累积互信息变化。
  • 如果 E ( x , y ) ∼ M t [ H t ( x , y ) ] > E ( x , y ) ∼ M t [ H t − 1 ( x , y ) ] \mathbb{E}_{(\mathbf{x},y) \sim \mathcal{M}_t} [H_t(\mathbf{x},y)] > \mathbb{E}_{(\mathbf{x},y) \sim \mathcal{M}_t} [H_{t-1}(\mathbf{x},y)] E(x,y)Mt[Ht(x,y)]>E(x,y)Mt[Ht1(x,y)] ,说明模型对记忆库样本的总体分歧在增加。模型可能正处于一个不稳定的学习阶段(比如正在适应新的任务边界)。此时,调低学习率(乘以一个因子 1 / ω , ω > 1 1/\omega,\omega > 1 1/ω,ω>1),采取更保守的更新步伐,避免破坏已学知识。
  • 反之,如果总体分歧在下降,说明模型状态更稳定,可以调高学习率(乘以 ω \omega ω ),加速学习。

整体逻辑就是根据记忆库的整体不确定性作为指标,在不稳定时使用小学习率保守更新,预防灾难性遗忘,稳定时使用大学习率,提高训练速率。

五.总结

DPCL框架的核心组件主要围绕如何通过双重扰动机制解决持续学习中的稳定性-可塑性困境。

1.核心思路

传统持续学习的目标是优化:
θ t ∈ arg ⁡ min ⁡ θ L t ( θ ) \theta^{t} \in \arg\min_{\theta} \mathcal{L}_{t}(\theta) θtargθminLt(θ)但要受到过去任务性能不下降的约束。论文将其转化为考虑未来样本的优化问题,并推导出上界:
L t ( θ ) + λ max ⁡ ∥ Δ x ∥ ≤ η 1 t L t , Δ ( θ ) + ρ max ⁡ ∥ Δ ϕ ∥ ≤ η 2 t max ⁡ ∥ Δ x ∥ ≤ η 1 t L t , Δ ( [ θ e ; ϕ t + Δ ϕ ] ) \mathcal{L}_{t}(\theta) + \lambda \max_{\|\Delta x\| \leq \eta_1^t} \mathcal{L}_{t,\Delta}(\theta) + \rho \max_{\|\Delta\phi\|\leq\eta_2^t} \max_{\|\Delta x\|\leq\eta_1^t} \mathcal{L}_{t,\Delta}([\theta_e; \phi^t + \Delta\phi]) Lt(θ)+λ∥Δxη1tmaxLt,Δ(θ)+ρ∥Δϕη2tmax∥Δxη1tmaxLt,Δ([θe;ϕt+Δϕ])其中第二项对应输入扰动,第三项对应权重扰动

2.三大组件的作用

① PFI:处理输入扰动

训练阶段的核心做法

  • 特征扰动与插值:在训练的每次前向传播中,随机选择网络中间层,对特征表示进行噪声注入 f ~ l = ( 1 + μ m ξ m ) ⊙ f l + μ a ξ a \tilde{\mathbf{f}}^l = (1 + \mu_m \boldsymbol{\xi}_m) \odot \mathbf{f}^l + \mu_a \boldsymbol{\xi}_a f~l=(1+μmξm)fl+μaξa 和插值混合 ( f ~ l , y ~ ) = ( ζ f ~ i l + ( 1 − ζ ) f ~ j l , ζ y i + ( 1 − ζ ) y j ) (\tilde{\mathbf{f}}^l, \tilde{y}) = (\zeta \tilde{\mathbf{f}}_i^l + (1-\zeta)\tilde{\mathbf{f}}_j^l, \zeta y_i + (1-\zeta)y_j) (f~l,y~)=(ζf~il+(1ζ)f~jl,ζyi+(1ζ)yj) ,生成增强的训练样本。

效果:通过创造困难的虚拟样本,迫使模型学习对输入变化不敏感的表示,从而实现输入损失景观的平滑化。

② BSC:处理权重扰动

训练阶段的核心做法

  • 维护分布:为每个类别 c c c 在每个分类器中的权重 ϕ n , c \phi_{n,c} ϕn,c 维护一个时变的高斯分布 N ( ϕ ˉ n , c t , Σ n , c s ) \mathcal{N}(\bar{\phi}_{n,c}^t, \Sigma_{n,c}^s) N(ϕˉn,ct,Σn,cs)。其参数(均值 ϕ ˉ \bar{\phi} ϕˉ 和协方差 Σ \Sigma Σ)按照对应公式在训练过程中迭代更新。
  • 采样与集成训练:在训练的每次前向传播中,对于每个分类器 n n n,从其分布中采样权重 φ n \varphi_n φn,计算输出 p n t p_n^t pnt,然后将 N N N 个分类器的输出进行平均,得到 p ˉ t \bar{p}^t pˉt,并基于此计算损失 ℓ ( p ˉ t , y ) \ell(\bar{p}^t, y) (pˉt,y)

效果:这个训练机制强制优化过程去寻找一个平坦的权重损失景观。因为为了最小化集成后的损失 ℓ ( p ˉ t , y ) \ell(\bar{p}^t, y) (pˉt,y),模型参数必须对每个分类器在其分布内的权重扰动都保持鲁棒。

③ PIMA:动态资源管理

训练阶段的核心做法

  • 不确定性量化:基于BSC的分类器输出计算互信息 I ( x ; ϕ t ) = H ( p ˉ t ) − 1 N ∑ n = 1 N H ( p n t ) \mathbb{I}(x;\phi^t) = \mathbb{H}(\bar{p}^t) - \frac{1}{N}\sum_{n=1}^N \mathbb{H}(p_n^t) I(x;ϕt)=H(pˉt)N1n=1NH(pnt) 作为样本价值的衡量标准。
  • 记忆管理:维护样本的累积互信息历史,在更新记忆时优先保留引起高分歧的边界样本。
  • 学习率调整:根据记忆库整体不确定性的变化趋势,动态调整学习率:不确定性增加时降低学习率,不确定性减少时提高学习率。

效果:基于模型的学习状态智能分配资源,在稳定性和可塑性之间实现动态平衡。

3.框架特点

  • 统一范式:PFI和BSC都通过在训练过程的前向传播中引入特定扰动来构建代理损失项。这个代理损失项(PFI损失或BSC损失)是对原始复杂理论目标(对抗性扰动项)的显式且高效的近似。
  • 高效近似:PFI通过前向传播中的随机扰动与插值,BSC通过维护权重分布并采样,以前向过程的计算开销替代了传统对抗训练中迭代求解最大化问题(如PGD)的巨额开销,从而适用于计算资源受限的在线学习场景。
  • 协同作用:三个组件形成了一个紧密协作的闭环。PFI 和 BSC 共同作为“扰动引擎”,分别平滑输入和权重空间的损失景观;而 PIMA 则作为“智能调度器”,其决策完全依赖于BSC在训练中产生的不确定性信号(互信息),据此动态管理记忆和调整学习率,反过来又提升了PFI和BSC的训练效率。

该框架的核心价值在于:通过重新设计模型的前向计算过程,将复杂的持续学习理论目标转化为可高效优化的工程实践

### AVDD_PFI 电压波动对系统性能或硬件功能的影响 AVDD_PFI(Analog Voltage for Precision Input)通常用于为高精度模拟输入电路(如ADC、DAC或传感器接口)供电,其电压稳定性对系统性能和硬件功能具有关键影响。当 AVDD_PFI 出现波动时,可能引发以下问题: 1. **精度下降**:模拟输入电路依赖稳定的供电电压作为参考基准。若 AVDD_PFI 电压波动超过 ±2%,将直接影响 ADC 的转换精度,导致采样误差增大,信噪比(SNR)下降,影响信号采集的准确性[^1]。 2. **非线性失真增加**:在高精度数据采集系统中,AVDD_PFI 的波动会导致模拟信号路径的非线性特性增强,表现为谐波失真(THD)增加,进而影响音频、图像或传感器数据的还原质量[^1]。 3. **偏置点漂移**:模拟电路中的偏置电压通常由 AVDD_PFI 派生而来。电压波动会改变运算放大器、比较器等器件的工作点,导致输出信号偏移,甚至进入非线性区域,影响系统稳定性。 4. **动态范围压缩**:在高速或高分辨率 ADC 中,电源噪声和波动会限制有效动态范围,降低系统对微弱信号的检测能力。例如,在 24 位 ADC 中,1mV 的电源波动可能导致 LSB 级别的误差,影响测量精度[^1]。 5. **时钟抖动增加**:若 AVDD_PFI 同时为 PLL 或时钟生成电路供电,其电压波动可能引入额外的时钟抖动,影响高速数据采集或通信系统的同步性能。 为缓解 AVDD_PFI 电压波动带来的影响,设计中通常采用以下措施: - 使用低噪声 LDO 稳压器,确保 AVDD_PFI 输出稳定且纹波低。 - 在模拟电路附近布置多组去耦电容,包括高频陶瓷电容与低频电解电容组合,抑制不同频段的噪声。 - 采用独立的电源域隔离 AVDD_PFI 与其他数字电源,减少交叉干扰。 ```c // 示例:监控 AVDD_PFI 电压并触发异常处理(伪代码) void check_avdd_pfi_voltage(void) { float voltage = read_analog_supply(AVDD_PFI); if (voltage < 2.9 || voltage > 3.1) { // 假设 AVDD_PFI 标称值为 3.0V log_error("AVDD_PFI voltage out of range"); enter_safe_mode(); } } ``` ---
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值