少女祈祷中...

摘要

本文提出了一种基于machine unlearning(机器不学习,机器学习遗忘)的擦除后门攻击的方法,主要有两步:

  1. 触发器模式恢复:从受害者模型中提取出触发器的模式。这个问题等价于:从受害者模型中提取出一个特定的噪声信号(分布),这可以通过熵最大化生成模型来解决。
  2. 受害者模型净化:通过1中恢复出来的触发器模式,结合基于machine unlearning的梯度上升的方法,来擦除模型污染的记忆(也就是模型遗忘)。

对比之前的machine unlearning方法,该方法不需要访问所有训练数据来进行重训练,并且比微调or修建方法更好。baseline有三个优的攻击方法,本文方法可以降低99%的攻击成功率在基准测试中。

介绍

总结了三种常见的后门擦除的方法:

  1. 微调

    利用一小部分干净数据,对受害者模型进行微调,来擦除后门。

    该方法有一定局限性,很难用一小部分数据来将后门神经元完全擦除[7, xidian, ICLR]

  2. 修剪

    对微调之后的模型,进行修剪,所谓修剪,就是将满足某种性质的神经元修剪掉(比如神经元对触发器样本激活值很大)。

    这个方法的局限性在于,直接修剪掉后会对正常样本也造成影响。

  3. 知识蒸馏

    还是[7],用干净的模型来蒸馏掉受害者模型的脏知识,同时保证正确样本的正确率(不完全蒸馏掉)

    问题在于干净的模型从哪里来?

    该方法正确率较低,很大原因在于“干净模型”并不干净。

本文通过机器学习遗忘的方法,来擦除后门,客服克服以下问题:

  1. 通过[14-16]的方法(熵最大生成模型),来生成触发器模式,不需要访问任何的训练数据。触发器模式即为模型需要遗忘的记忆。

  2. 之前的方法很多都需要重新训练,并且对训练数据集需要完全访问。本文通过1. 中生成的触发器模式,来进行梯度上升。

    直接梯度上升会导致灾难性遗忘,因此本文增加了权重惩罚机制。

近期工作

机器学习遗忘

简单介绍了一下机器学习遗忘的定义:消除某些特定样本对目标模型的影响。

发展:

  1. [11],2015,提出了机器学习遗忘,缺点:只能适用非适应性模型(non-adaptive),在适应性模型上性能表现非常差。
  2. [12, 23-25],近五年,提出了各种各样的基于重新训练的机器学习遗忘方法。

目前的缺点是,重训练需要消耗大量的资源,而后门攻击的场景就是外包、迁移学习。所以现在的情况就是,若是硬要用机器学习遗忘来消除后门,那么就是:为了避免消耗资源,选择使用外包、迁移学习,然后得到带有后门的模型,最后通过机器学习遗忘,消耗大量资源重训练,来消除后门。

概述

威胁模型&目标

defender:

  • 不知道那一张图片被污染了,或者是哪一类被污染了
  • 只能访问一部分验证集的数据,并不能访问训练集。

goal:
$$
arg \min_\theta \mathcal L (F_\theta(x_b),y_{real})+\lambda\vert\theta\vert
$$
$\lambda$是惩罚细数,$\vert\theta\vert$是惩罚项,目的是为了避免 灾难性遗忘。

本文工作:

  1. 触发器恢复

    不同于往常使用GAN,本文使用的是熵最大生成模型;反转攻击过程,攻击过程是由输入推出输出,防御过程则是从输出反推出输入(的触发器模式)。

  2. 触发器模式遗忘

    不同于基于重训练的mu,本文使用基于梯度上升的mu,来消除触发器对模型产生的负面影响。

通过机器学习遗忘的后门擦除

触发器恢复

优化路径:
$$
\mathcal L_R=\frac{1}{b}\sum_{x\in D^{‘}}(\max(0,\epsilon_i-F_{\theta_0}(x+G_i(\delta))[y_p])-\eta H_i(G_i(\delta);\delta^{‘}))
$$
符号表示:

  • $G_i$:the i-th generative model

  • $D^{‘}$: part of validation datast

  • $\delta$ and $\delta^{‘}$: two voices sampled from $N(0,1)$

  • $F_{\theta_0}$: backdoored model

  • $H_i$: mutual information estimator, [16]

    • If X and Y are independent, $H_i(X,Y)=0$
  • $\epsilon_i$: the threshold from $[0,1]$

一个比较重要的观测:当输入$ x_i+\Delta$时,会被误分类为$y_{target}$;另外,当输入$x^{‘}=x_0+\delta$时,同样会被误分类,$\delta$是噪声,而对于一般的噪声,使得$x\ne x_0$,很难被误分类。

因此,基于这个观测,再来看上述公式,作者是在整个噪声空间中寻找合适的噪声,$L_R$即为优化路径。

触发器模式遗忘

直接使用梯度上升如下:
$$
\theta_t+\frac{\partial \mathcal L}{\partial \theta_t}\to \theta_{t+1}
$$
然而直接使用梯度上升会导致灾难性遗忘,因此采取了两步来解决:

  1. 使用一部分验证集训练,确保模型不遗忘正常的记忆
  2. 加入动态惩罚机制,避免过度遗忘。

$$
\mathcal L_U=\alpha(\mathcal L_{CE}(F_{\theta_j}(x_c),y_c)-\mathcal L_{CE}(F_{\theta_j}(x_b),y_b))+\beta\sum_{k=1}^M\omega_k\vert\theta_{j,k},-\theta_{0,k}\vert_1
$$