Page 235 - 《软件学报》2025年第4期
P. 235
李梓童 等: 机器遗忘综述 1641
表 4 主要方法与代码 (续)
类别 方法名称 代码链接
针对MCMC的机器遗忘方法 [41] https://github.com/fshp971/mcmc-unlearning
CR [11] https://github.com/facebookresearch/certified-removal
K-priors [29] https://github.com/team-approx-bayes/kpriors
LCODEC [42] https://github.com/vsingh-group/LCODEC-deep-unlearning
基于编辑的方法 [32]
ERM https://github.com/ChrisWaites/descent-to-delete
PRU [43] https://github.com/zleizzo/datadeletion
SelectiveForgetting [20] https://github.com/AdityaGolatkar/SelectiveForgetting
Unlearnable [44] https://github.com/HanxunH/Unlearnable-Examples
[45]
BIF https://github.com/fshp971/BIF
基于生成的方法
SCRUB [46] https://github.com/Meghdad92/SCRUB
2 基于训练的机器遗忘
∗
基于训练的机器遗忘方法是指通过模型训练来实现遗忘的方法. 这类方法往往对重新训练的过程进行划分,
通过对部分数据重新训练或从某个轮次起开始重新训练, 使得训练开销低于完全重新训练, 而得到的机器遗忘模
型也与重新训练模型较为相似. 该方法可细分为继续计算和模型分解两类.
2.1 继续计算
继续计算是指保存训练 M 0 时的中间结果, 在遗忘请求到来时, 从中间结果开始继续训练. 继续计算类方法保
存的中间结果包括朴素贝叶斯中的样本计数和、深度学习中的梯度和参数等. 当遗忘时, 这类方法在中间结果上
继续计算, 减小时间开销, 但存在额外的空间开销. 这类方法设计的关键在于从获取模型的过程中挖掘可以重用的
数据, 将这些数据保存下来, 在遗忘请求到来时进行修改. 传统机器学习中的分类算法 (如朴素贝叶斯和岭回归)、
聚类算法 (如 K-means 聚类) 和深度学习中都有对应的继续计算类机器遗忘方法.
2.1.1 朴素贝叶斯
朴素贝叶斯通过生成数据点属于各个标签的后验概率来对数据分类. 对于一个有 f 1 , ... , f k 个特征的样本, 该
∗
∗ P(y |f 1 ,..., f k ) , 选择后验概率最大的标签作为分类结果. 其中, 后验概
算法先计算样本属于某个标签 y 的后验概率
率的计算公式为:
k ∏
P(y ) P(f i |y )
∗
∗
∗
P(y |f 1 ,..., f k ) = i=0 (1)
k ∏
P(f i )
i=0
朴素贝叶斯对应的机器遗忘方法将公式 (1) 右边出现的概率转化为由样本计数表示的计算, 若要遗忘某个样
P(f i |y ) , 该值可通过用具有特征 y 的样本数 (记作
∗
本, 则在涉及该样本的计数上减去对应的数量. 例如 f i 且标签为
∗
∗
N ∗ ) 除以标签为 y 的样本数 (记作 N ) 得到, 即 P(f i |y ) = N /N . 若遗忘 1 个具有该特征和标签的样本, 对应的
∗
∗
∗
f i,y y f i,y y
∗ ∗ ∗ ∗ x 时, 改变相应
∗
概率变为 P(f i |y ) = N −1/N −1 . 其他概率如 P(y ),P(f i ) 均可转化为由样本计数表示的形式. 遗忘
f i,y y
的计数, 重新计算的后验概率就作为遗忘后的概率 [2,9] .
Cao 等人 [9] 研究普遍场景下朴素贝叶斯的遗忘方法, 而 Parne 等人 [47] 则具体针对使用朴素贝叶斯检测垃圾邮
件的场景, 研究如何遗忘垃圾邮件 (恶意样本), 并使用卡方检验来验证遗忘与否. 这种利用样本计数进行遗忘的方
∗
法只取决于 x , 遗忘得到的后验概率与重新训练相同. 该方法避免了重新训练, 但需要额外的空间来存储样本计
数的中间结果.