有没有办法从训练有素的模型中消除某些数据的影响(关于“遗忘权”)

机器算法验证 神经网络 火车 向前向后
2022-04-18 00:36:03

我正在阅读有关可穿戴技术的文章(可穿戴传感技术的最新进展)。他们简短地谈论了遗忘权,我想到了一个问题。假设我们使用从 1000 个参与者收集的面部图像(每个参与者的 10 个面部图像 = 10x1000 个图像的总和)训练了一个深度学习模型(例如,CNN)。训练后,参与者 1 想从模型中删除他/她的面部数据。除了用 999 名参与者重新训练模型之外,有没有办法从训练后的模型中消除参与者 1 的数据的影响?我进行了快速搜索,但找不到。你听说过类似的事情吗?

PS:当我想到前向和后向传播过程以及我们如何减少错误时,在我看来这是不可能的。

2个回答

您正在寻找的关键字是机器学习如果您在 Google 学者上搜索,您会发现大量相关研究。由于您所描述的原因,这是一个活跃的研究领域。对于 CNN,在我看来还没有真正好的解决方案(但我可能错了)。

例如,人们 ( Bourtoule et al. 2021 ) 提出的一种解决方案是将训练数据拆分为单独的分(=较小的子数据集),然后在每个分片上训练单独的模型。对于预测/推理,这些单独的弱学习器的输出可以以各种方式组合(参见Boosting)。为什么这有助于忘却?好吧,单个训练点的影响因此仅限于单个子模型,如果必须删除该数据点,则必须“仅”重新训练该子模型。

还提出了各种其他方法,但正如我所说,在我看来,这似乎是一个本质上开放的研究问题。可在此处找到全面的参考列表。

两个可能感兴趣或可能不感兴趣的评论:

  1. 这与差分隐私有关,因为后者要求模型输出在训练数据集中的单个数据点被替换时在一定程度上是不可区分的。这是否完全消除了对机器学习技术的需求?不。(想象一下当 50% 的训练数据集要求不学习他们的数据时会发生什么。)
  2. 机器学习的难度在很大程度上取决于所考虑的模型类。例如,对于线性高斯模型和高斯过程,存在可以非常便宜地利用的简单递归更新规则。(想想递归最小二乘,正好相反。)一般来说,我认为如果一个模型类允许一个简单的、封闭形式的递归更新过程来包含一个新的数据点,那么它也可以在撤销。这显然排除了所有使用数值优化程序进行批量训练的模型。

这是可能的,但与重新训练模型的工作量相同。


权重θ在迭代t(一个时期内的小批量)定义为:

θt=θt1θt1Lt1

通过递归,很明显:

θt=θ0i=0t1θiLi

在哪里Li是给定迭代中的小批量损失函数(同样,时期内的小批量)。

因此,即使您要删除的所述数据点不包含在小批量中,由于之前的迭代,它的影响仍然存在于权重的当前状态中,它被用来导出梯度。要完全消除数据点的影响,您必须将权重一直回溯到第一次用于派生梯度的时候。然后,您将计算它对梯度的个人贡献并将其删除。但是,下一次迭代将使用一组新的权重,这意味着需要重做新的损失函数计算。换句话说,在大多数应用程序中重新训练整个模型的努力是相同的(我确信一些非常具体的训练方案和架构可能允许更简单的解决方案)。