今天我们要解剖的经典论文是 “Certified Data Removal from Machine Learning Models” (Guo et al., ICML 2020)。这篇论文是基于 Hessian 的近似遗忘领域的基石,它将 Koh & Liang (2017) 的影响函数(Influence Functions)正式引入了机器遗忘的理论框架中,并给出了严格的 (ϵ,δ)(\epsilon, \delta)(ϵ,δ) 理论保证。

第一步:符号定义与优化目标 (The Setup)

假设我们有一个完整的训练数据集 D={z1,z2,…,zn}D = \{z_1, z_2, \dots, z_n\}D={z1,z2,,zn},其中 zi=(xi,yi)z_i = (x_i, y_i)zi=(xi,yi) 是单个样本。
我们定义损失函数(包含 L2 正则化项,这对于保证 Hessian 矩阵的正定性和可逆性在理论上至关重要):

L(θ,D)=∑i=1nℓ(zi,θ)+λ2∥θ∥22L(\theta, D) = \sum_{i=1}^n \ell(z_i, \theta) + \frac{\lambda}{2} \|\theta\|_2^2L(θ,D)=i=1n(zi,θ)+2λθ22

我们假设模型在完整数据集 DDD 上已经训练到了严格的全局最优(这是凸优化背景下的标准假设,我们稍后会讨论它在深度学习中的局限)。此时的最优参数为:

θ∗=arg⁡min⁡θL(θ,D)\theta^* = \arg\min_\theta L(\theta, D)θ=argθminL(θ,D)

现在,用户发起了“被遗忘权”请求,要求我们删去数据集中的一个样本 zfz_fzf(为了推导清晰,我们先假设只删一个,批量删除是同理的叠加)。
定义保留集为 D−f=D∖{zf}D_{-f} = D \setminus \{z_f\}Df=D{zf}
如果我们在保留集上从头重训(Retrain from scratch),能得到真正的精确遗忘参数:

θ−f∗=arg⁡min⁡θL(θ,D−f)\theta_{-f}^* = \arg\min_\theta L(\theta, D_{-f})θf=argθminL(θ,Df)

我们的核心目标是: 在不重新训练的前提下,通过数学手段,直接从 θ∗\theta^*θ 计算出一个更新量 Δθ\Delta \thetaΔθ,使得近似更新后的参数 θu=θ∗+Δθ\theta_u = \theta^* + \Delta \thetaθu=θ+Δθ 无限逼近 θ−f∗\theta_{-f}^*θf


第二步:一阶最优性条件 (First-Order Optimality)

既然 θ∗\theta^*θθ−f∗\theta_{-f}^*θf 分别是它们各自损失函数的极小值点,根据微积分的一阶最优性条件,它们在那一点的梯度必然为零向量:

  1. 在全集上:∇L(θ∗,D)=0\nabla L(\theta^*, D) = 0L(θ,D)=0
  2. 在保留集上:∇L(θ−f∗,D−f)=0\nabla L(\theta_{-f}^*, D_{-f}) = 0L(θf,Df)=0

接下来,我们把保留集的损失函数 L(θ,D−f)L(\theta, D_{-f})L(θ,Df) 拆开来看。它其实就是全集的损失减去那个要遗忘的样本的损失:

L(θ,D−f)=L(θ,D)−ℓ(zf,θ)L(\theta, D_{-f}) = L(\theta, D) - \ell(z_f, \theta)L(θ,Df)=L(θ,D)(zf,θ)

对其求导,代入上面的第 2 个最优性条件:

∇L(θ−f∗,D−f)=∇L(θ−f∗,D)−∇ℓ(zf,θ−f∗)=0— (公式 A)\nabla L(\theta_{-f}^*, D_{-f}) = \nabla L(\theta_{-f}^*, D) - \nabla \ell(z_f, \theta_{-f}^*) = 0 \quad \text{--- (公式 A)}L(θf,Df)=L(θf,D)(zf,θf)=0— (公式 A)


第三步:二阶泰勒展开 (Taylor Expansion)

现在的痛点是,公式 A 中包含了我们未知的 θ−f∗\theta_{-f}^*θf。为了把未知转化为已知,我们需要在已知的收敛点 θ∗\theta^*θ 附近,对 ∇L(θ−f∗,D)\nabla L(\theta_{-f}^*, D)L(θf,D) 进行一阶泰勒展开(即对损失函数本身进行二阶展开)。

因为我们假设删掉一个样本对全局参数的扰动 Δθ=θ−f∗−θ∗\Delta \theta = \theta_{-f}^* - \theta^*Δθ=θfθ 是非常微小的,所以泰勒近似是合理的:

∇L(θ−f∗,D)≈∇L(θ∗,D)+∇2L(θ∗,D)(θ−f∗−θ∗)\nabla L(\theta_{-f}^*, D) \approx \nabla L(\theta^*, D) + \nabla^2 L(\theta^*, D) (\theta_{-f}^* - \theta^*)L(θf,D)L(θ,D)+2L(θ,D)(θfθ)

让我们仔细看看这一项里的元素:

  • ∇L(θ∗,D)\nabla L(\theta^*, D)L(θ,D):这是模型在全集最优点的梯度,根据我们前面的第一阶最优性条件,它等于 000 注意,在实际的深度学习中,使用的是梯度下降的方式来训练,为了避免模型过拟合,往往会提前中断训练,因此,∇L(θ∗,D)\nabla L(\theta^*, D)L(θ,D)不会为0。为简化表述,这里先进行理想化假设。在本文后面部分,我们将去掉该假设
  • ∇2L(θ∗,D)\nabla^2 L(\theta^*, D)2L(θ,D):这就是我们大名鼎鼎的 Hessian 矩阵,定义为 Hθ∗H_{\theta^*}Hθ
  • (θ−f∗−θ∗)(\theta_{-f}^* - \theta^*)(θfθ):这就是我们要找的更新步伐 Δθ\Delta \thetaΔθ

所以,上述泰勒展开可以极大地化简为:

∇L(θ−f∗,D)≈Hθ∗Δθ\nabla L(\theta_{-f}^*, D) \approx H_{\theta^*} \Delta \thetaL(θf,D)HθΔθ


第四步:推导最终的更新公式 (The Newton Update)

现在,把我们在第三步化简得到的结果,代回【公式 A】:

Hθ∗Δθ−∇ℓ(zf,θ−f∗)≈0H_{\theta^*} \Delta \theta - \nabla \ell(z_f, \theta_{-f}^*) \approx 0HθΔθ(zf,θf)0

这里还有一个小瑕疵:公式里还有 θ−f∗\theta_{-f}^*θf。由于 θ−f∗\theta_{-f}^*θfθ∗\theta^*θ 非常接近,且梯度函数通常是连续的,我们再次做一个近似,用 θ∗\theta^*θ 替换 θ−f∗\theta_{-f}^*θf

Hθ∗Δθ−∇ℓ(zf,θ∗)≈0H_{\theta^*} \Delta \theta - \nabla \ell(z_f, \theta^*) \approx 0HθΔθ(zf,θ)0

移项并两边左乘 Hessian 的逆矩阵 Hθ∗−1H_{\theta^*}^{-1}Hθ1,我们就得到了最终的参数扰动量:

Δθ≈Hθ∗−1∇ℓ(zf,θ∗)\Delta \theta \approx H_{\theta^*}^{-1} \nabla \ell(z_f, \theta^*)ΔθHθ1(zf,θ)

因此,我们的近似遗忘更新公式(Newton Update for Unlearning)为:

θu=θ∗+Hθ∗−1∇ℓ(zf,θ∗)\theta_u = \theta^* + H_{\theta^*}^{-1} \nabla \ell(z_f, \theta^*)θu=θ+Hθ1(zf,θ)


推导复盘

短短四步,我们就把复杂的“近似遗忘”还原成了最基础的微积分。这个公式的物理意义非常优美:
我们要抹去 zfz_fzf 的影响,直觉上我们应该加上它的梯度(相当于在优化时反着走,做梯度上升)。但是,参数空间不是平坦的,各个维度的曲率不同。所以,我们需要用全集在这一点上的空间曲率(Hessian 矩阵的逆)来对这个“反向梯度”进行方向和步长的校正。这就是牛顿法的精髓。

但这篇论文最核心的贡献不仅是推导出了这个牛顿步长,郭川等人的牛逼之处在于:他们证明了,如果我们用这个公式更新参数,并在最后注入一个经过精心设计的随机高斯噪声,就能在数学上严格满足我们在第一课讲到的 (ϵ,δ)(\epsilon, \delta)(ϵ,δ)-近似遗忘的差分隐私边界!


在上面的推导中,我们构建了一个非常优雅的数学闭环,但那个闭环是建立在一个经典的、属于凸优化(Convex Optimization)时代的“美丽乌托邦”之上的。

现在,我们就来把这个乌托邦撕开,看看在真实深度的神经网络中,这个假设是如何崩溃的,以及学术界是如何在废墟上重建算法的。

一、 破绽的根源:那个永远等不到的“绝对零度”

在之前的推导中,第二步(一阶最优性条件)是我们整个大厦的基石:
我们在全集上假设:∇L(θ∗,D)=0\nabla L(\theta^*, D) = 0L(θ,D)=0

如果是逻辑回归(Logistic Regression)或者支持向量机(SVM),因为损失函数是严格凸的,只要跑足够久的梯度下降,我们确实能到达那个唯一的碗底,让梯度严格为零。郭川(Guo et al., 2020)的那篇经典论文,其核心实验其实主要也是在凸模型上做的。

但在深度神经网络(DNNs)中,这是个彻头彻尾的谎言。

深度学习的损失地貌(Loss Landscape)是高度非凸(Non-convex)的,充满了无数的局部极小值(Local Minima)、鞍点(Saddle Points)和平坦区域。在实际训练中,由于以下两个原因,模型收敛时的梯度绝对不等于零:

  1. 早停机制(Early Stopping): 为了防止过拟合,我们通常在验证集 Loss 不再下降时就停止了训练,此时训练集上的梯度离零还差得远。
  2. SGD 的震荡: 随机梯度下降引入了固有的方差,模型最终是在极小值附近的一个“盆地”里做布朗运动,而不是稳稳地停在最低点。

因此,现实是残酷的:∇L(θ∗,D)≠0\nabla L(\theta^*, D) \neq 0L(θ,D)=0。我们称其为残差梯度(Residual Gradient)


二、 灾难降临:真实的更新公式长什么样?

既然 ∇L(θ∗,D)\nabla L(\theta^*, D)L(θ,D) 不为零,我们就必须把它原封不动地请回到我们的泰勒展开式中。让我们重新推导一次没有强假设的第三步:

∇L(θ−f∗,D)≈∇L(θ∗,D)+Hθ∗Δθ\nabla L(\theta_{-f}^*, D) \approx \nabla L(\theta^*, D) + H_{\theta^*} \Delta \thetaL(θf,D)L(θ,D)+HθΔθ

根据保留集的最优性条件 ∇L(θ−f∗,D−f)=0\nabla L(\theta_{-f}^*, D_{-f}) = 0L(θf,Df)=0,我们知道 ∇L(θ−f∗,D)=∇ℓ(zf,θ−f∗)≈∇ℓ(zf,θ∗)\nabla L(\theta_{-f}^*, D) = \nabla \ell(z_f, \theta_{-f}^*) \approx \nabla \ell(z_f, \theta^*)L(θf,D)=(zf,θf)(zf,θ)。将其代入上式并移项:

Hθ∗Δθ≈∇ℓ(zf,θ∗)−∇L(θ∗,D)H_{\theta^*} \Delta \theta \approx \nabla \ell(z_f, \theta^*) - \nabla L(\theta^*, D)HθΔθ(zf,θ)L(θ,D)

两边左乘 Hθ∗−1H_{\theta^*}^{-1}Hθ1,我们得到了真实的近似遗忘牛顿步长

Δθtrue≈Hθ∗−1∇ℓ(zf,θ∗)−Hθ∗−1∇L(θ∗,D)\Delta \theta_{true} \approx H_{\theta^*}^{-1} \nabla \ell(z_f, \theta^*) - H_{\theta^*}^{-1} \nabla L(\theta^*, D)ΔθtrueHθ1(zf,θ)Hθ1L(θ,D)

致命问题出现了:
如果我们像很多早期论文那样,无视掉后面那项 −Hθ∗−1∇L(θ∗,D)- H_{\theta^*}^{-1} \nabla L(\theta^*, D)Hθ1L(θ,D),只用前半部分去更新模型,会发生什么?

答案是灾难性的性能崩溃(Catastrophic Accuracy Drop)
因为残差梯度 ∇L(θ∗,D)\nabla L(\theta^*, D)L(θ,D) 可能非常大。如果你不减去它,你的更新步长里就不仅包含了“抹去 zfz_fzf”的方向,还杂糅了模型在整个数据集上没有收敛的那部分巨大动量。这相当于在极高维的空间里随意踹了模型一脚,模型的泛化能力会瞬间被破坏。


三、 学术界的“缝补”方案:如何在工程中救场?

面对这个理论上的无底洞,学者们提出了几种工程上的救场策略:

  • 策略一:强行变凸(L2 Regularization / Weight Decay)
    这是最粗暴也最有效的数学手段。我们在损失函数里加入极强的 L2 正则化项 λ2∥θ∥22\frac{\lambda}{2} \|\theta\|_2^22λθ22。这在几何上相当于把原本平坦或坑洼的局部地貌,强行“拉拽”成一个陡峭的抛物面。λ\lambdaλ 越大,局部就越接近严格凸,∇L\nabla LL 就越接近零。
    • 代价: 极大地牺牲了模型原本的预测准确率(Accuracy-Privacy Trade-off)。
  • 策略二:引入残差清洗(Residual Scrubbing)
    既然公式里有 −Hθ∗−1∇L(θ∗,D)- H_{\theta^*}^{-1} \nabla L(\theta^*, D)Hθ1L(θ,D),那我们就老老实实把它算出来减掉。Golatkar 等人 (CVPR 2020) 在他们的 Fisher 遗忘网络中就采用了类似的思想。
    • 代价: 计算 ∇L(θ∗,D)\nabla L(\theta^*, D)L(θ,D) 需要在整个几百万张图片的训练集上完整跑一次反向传播,这在时间成本上极其昂贵,几乎违背了遗忘学习“高效”的初衷。
  • 策略三:近似步长 + 少量校准(Newton Update + Calibration/Fine-tuning)
    这是目前大模型和复杂 DNN 上最主流的妥协方案。我们承认只用 Hθ∗−1∇ℓ(zf,θ∗)H_{\theta^*}^{-1} \nabla \ell(z_f, \theta^*)Hθ1(zf,θ) 会让模型受到内伤。所以我们在执行完这一步“粗略的遗忘”后,从保留集 DrD_rDr 中抽取极小的一个 Batch(比如 1% 的数据),用极小的学习率做 1 到 2 步的 SGD 微调(Fine-tuning)。
    • 优势: 这就像做完粗暴的肿瘤切除手术后,让模型自身快速愈合一下。它能瞬间拉回暴跌的准确率,同时在黑盒评估下依然表现出极好的遗忘效果。
Logo

AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。

更多推荐