9. 模型安全之后门防御¶
能高效的防御多种多样的后门攻击是一个很有挑战性的任务。一方面,缺乏针对后门攻击机理的深入理解,另一方面缺乏通用的后门防御策略。目前针对后门攻击的防御策略主要有三种:(1)后门模型检测、(2)后门样本检测和(3)后门移除。目前,这三类防御方法间相对独立,各自完成后门防御的子任务。本节将对这三类方法展开介绍。
9.1. 后门模型检测¶
后门模型检测的目标是判断给定模型是否包含后门触发器,可以根据模型在某种情况下是否展现出来一定的后门行为来判断。本节将详细介绍主流后门模型检测方法。
神经净化。 Wang等人 (Wang et al., 2019) 首先提出了基于触发器逆向的后门模型检测方法——神经净化(Neural Cleanse,NC),开启了后门模型检测这一研究方向。该方法假设防御者知晓模型的所有信息,包括模型参数、模型结构等等;此外,防御者还拥有一些可以在该模型下进行正常预测的输入样本。
该方法的核心出发点是:相较于正常类别,改变后门标签类别所需要的扰动更少。因此,作者对所有输出类别进行最小像素规模的标签扰动,结合离群点检测方法识别潜在的后门类别,然后利用逆向工程技术重建后门触发器。
具体的,在后门模型检测阶段,NC方法将后门触发器的注入定义为:
其中,\(A(\cdot)\)表示将后门触发器\(\Delta\)通过掩码\(\mathbf{m}\)注入到原始图片\({x}\)中。后门触发器和原始图片\(\Delta, {x}\in \mathbf{R}^{h \times w \times c}\)(\(h, w, c\)分别表示图片的高度、宽度和通道数)。掩码\(\mathbf{m} \in \mathbf{R}^{h \times w}\),表示对单一像素位置处的不同通道使用相同的掩码。注意,\(\mathbf{m}_{i,j} \in [0, 1]\),若\(\mathbf{m}_{i,j}=1\),则表示将\({x}\)中对应位置的像素替换为\(\Delta\)中对应位置的像素,若\(\mathbf{m}_{i,j}=0\),则保持\({x}\)中对应位置像素不变。这里,\(\mathbf{m}\)的连续性定义将有利于后续对\(\Delta\)的优化。 对后门触发器\(\Delta\)的重建可以使用白盒有目标对抗样本生成方法,即生成\(\Delta\)以使得\({x}\)在模型\(f\)的预测结果为目标类别\(y_t\)。此外,由于实际中的后门触发器尺寸较小,还应该对重建后门触发器的大小进行限制,即限制\(\mathbf{m}\)的幅值大小。综合两种优化目标,我们可以得到
其中,\(\mathcal{L}_{\text{CE}}(\cdot)\)表示交叉熵分类损失函;\(\parallel{\mathbf{m}}\parallel_1\)表示掩码的\(L_1\)范数,鼓励\(\mathbf{m}\)的稀疏性以生成更小的后门触发器样式;\(\lambda\)为超参数;\(X\)表示所有正确分类的样本集。可见,该目标函数在所有正确分类的数据集中,通过最小化注入后门触发器的样本与目标类别的分类损失,且限制注入后门触发器的大小来重建尺寸较小且满足错误分类的后门触发器。该方法对每个类别轮流作为\(y_t\),并利用Adam优化器 (Kingma and Ba, 2015) 来重建后门触发器。
基于重建的触发器样式与大小,可以根据投毒类别更易于进行目标攻击的特点,从所有类别中检测出后门类别。我们定义逆向得到的每个类别的潜在触发器样式的\(L_1\)范数为\(L=\{L^1, L^2, ..., L^C\}\),其中\(C\)表示所有类别的数目。那么,可借鉴中位绝对偏差(Median Absolute Deviation,MAD)指标 (Hampel, 1974) 来衡量离群点,即:
其中,\(\text{median}(\cdot)\)表示取中位数。在得到MAD后,一个类别的异常分数可定义为:
那么对于所有类别,我们可以得到\(I = \{I_1, I_2, ..., I_n\}\)来表示每个类别的异常指标。在假设\(I\)为标准正态分布(\(\mathcal{N}(0, 1)\))的前提下,我们需要使用
将其异常指标放大到与正态分布样本相同的尺度上,作为标准正态分布的一致估计量(Consistent Estimator),其中\(\Phi\) 表示标准正态分布的累积分布函数(Cumulative Distribution Function,CDF)。因此,当\(I_i > 1.96\sigma\)时有大于95%的概率此类别为离群点,由于为标准正态分布,所以\(I_i > 1.96\)。实际上,NC方法直接使用\(I_i > 2\)来作为判别条件来检测后门类别。
在以上检测过程中,由于需要对每一个类别进行后门触发器的重建,在类别数量很大(如1000类)时会需要较大的计算量。为了进一步降低计算负担,可降低公式[detect_object]的优化迭代次数,先得到一个较为粗糙的重建后门触发器,然后对所有类别进行初筛来降低怀疑为投毒类别的数目。
深层检查。 Chen等人 (Chen et al., 2019) 提出了针对Trojan攻击的防御方法——深层检查(DeepInspect),建立了一种针对模型先验知识较少情况下的后门防御机制。相较于神经净化方法,深层检查方法仅需要模型的类别概率输出,无需训练数据集,因此实用性更高。为了解决没有输入数据的问题,该方法使用模型反转(Model Inversion) (Fredrikson et al., 2015) 技术,根据模型的所有输出类别重建了替代数据集。然后,基于替代数据集训练条件生成器(Conditional Generator),以便快速生成不同类别的后门触发器。最后,该方法根据重建的后门触发器对所有的类别进行异常检测,如果发现后门类别,则使用对抗训练的方式对模型进行修复。下面我们将详细介绍深层检查方法。
在替代数据集生成阶段,深层检查利用模型的反传梯度信息对零初始化的输入进行优化,使得当前输入的预测类别向指定目标靠近,其目标函数为:
其中,\({x}\)为零初始化的模型输入,\(f(\cdot)\)为给定输入\({x}\)下预测为类别\(y_t\)的概率,\(\text{AuxInfo}({x})\)表示针对输入\({x}\)可利用的其他辅助信息。通过最小化\(c({x})\)以及计算\(c({x})\)关于输入\({x}\)的梯度信息,并对\({x}\)进行迭代更新以降低\(c({x})\)。模型反转方法可使得\({x}\)在模型\(f\)的\(y_t\)类别的预测概率变大。由此,可针对不同类别生成替代数据集,并将用于下一阶段条件生成器的训练。
在后门触发器重建阶段,深层检查使用模型\(f\)作为判别器(Discriminator)\({\mathcal{D}}\),使用\({\mathcal{G}}\)表示条件生成器,以噪声\({z}\)和类别\(y_t\)为输出生成后门触发器\(\Delta\),即\(\Delta={\mathcal{G}}({z}, y_t)\)。为了能够让\({\mathcal{G}}\)学习到后门触发器的分布,生成器\({\mathcal{G}}\)生成的后门触发器应使得判别器\({\mathcal{D}}\)发生错误的分类,即:
这里的\({x}\)来自于上一阶段生成的替代数据集。 因此,我们使用负对数似然损失(Negative Loss Likelihood, NLL)来衡量生成器生成后门触发器的质量:
此外,还应使得注入后门触发器的后门样本\({x}+{\mathcal{G}}({z},y_t)\)与原始输入\({x}\)无法区分,即增加对抗损失:
其中,\(\mathcal{L}_\text{MSE}\)表示均方误差(Mean Square Error),\(1\)代表原始输入\({x}\)在理想情况下的概率输出。
除以上损失外,还应该对后门触发器的大小进行限制,因为很多触发器都很小。深层检查使用\(\|\|_1\)对生成的后门触发器进行限制,即:
其中,\(\gamma\)控制对重建后门触发器\(L_1\)范数的限制,当\(\parallel{{\mathcal{G}}({z},y_t)}\parallel_1\)大于\(\gamma\)时,\(\mathcal{L}_{\text{pert}}={\mathcal{G}}({z},y_t)||_1 - \gamma\),否则\(\mathcal{L}_{\text{pert}}=0\)。
综合以上三个损失,我们可以得到最终用于训练生成器\({\mathcal{G}}\)的损失函数:
其中,超参数\(\lambda_1\)和\(\lambda_2\)用来调节不同损失项的权重。通过调整超参数,可以保证由生成器\({\mathcal{G}}\)生成的后门触发器具有95%以上的攻击成功率。
在异常检测阶段,与神经净化方法类似,深层检查方法基于投毒类别的这一特点,使用双中值绝对偏差(Double Median Absolute Deviation,DMAD)来作为检测标准。MAD方法适用于围绕中位数的对抗分布,而对于左偏、右偏等其他类型的非对称分布而言,效果会发生降低,而利用DMAD则可解决这个问题。定义得到的每个类别的重建后门触发器的噪声规模大小为\(S=\{S_1, S_2, ..., S_t, ..., S_C\}\),其中\(C\)为类别总数,那么可得到整体的中位数为\(\tilde{S} = \text{median}(S)\)。根据\(S\)中每个值与\(\tilde{S}\)的大小关系,可将\(S\)划分为左右两部分:
由于所测试的后门触发器普遍较小,因此深层检查方法只是用\(S^{l}\)来进行检测,根据式[MAD_one]、[MAD_two]、[MAD_three]对\(S^{l}\)进行计算,并与\(1.96\sigma\)进行比较来得到离群点,确定为后门类别。
通过以上三个阶段,深层检查方法实现了比神经净化更有效的后门触发器重建,且不需要借助额外数据。相较于神经净化方法,深层检查方法在更加苛刻的环境下实现了后门攻击的有效检测,更易于在实际应用场景中的使用。此外,通过重建后门触发器,深层检查方法同样可以在替代数据集以及叠加重建后门触发器后的“修补”数据集上,对模型进行微调,使得模型具有抵御后门攻击的能力。值得注意的是,尽管深层检查方法声称是一种黑盒防御方法。但事实上,在模型反转以及生成器的训练过程中,都需要通过模型反传梯度来进行优化,这在严格的黑盒条件下是不允许的。因此,这里并没有把深层检查方法归类为黑盒防御方法。
基于非凸优化和正则的后门检查。 Guo等人 (Guo et al., 2019) 发现当使用不同尺寸、形状和位置的后门触发器来进行后门攻击时,神经净化方法可能会失效。作者认为其主要原因在于对抗子空间中存在多个对抗样本,而基于触发器逆向的神经净化方法可能会搜索到与后门触发器无关的对抗样本。为此,作者提出了基于非凸优化和正则的后门检查(TrojAn Backdoor inspection based on non-convex Optimization and Regularization,TABOR)方法,通过多个训练正则项来改善原始神经净化的优化目标。下面将对增加的正则化项进行详细介绍。
在利用优化器(式[nc_optimize])重建后门触发器的过程中,会出现稀疏触发器(Scattered Trigger)和过大触发器(Overly Large Trigger)。稀疏触发器在整个图像区域中比较分散,无法聚拢到某一个特定的位置;过大触发器在图像区域中所占的面积过大,远大于正常后门触发器的面积。因此,需要对重建后门触发器的面积大小以及聚拢程度进行限制。
针对过大触发器,TABOR定义如下正则化项来惩罚面积过大:
其中,\(vec(\cdot)\)表示将矩阵转换为向量;\(R_{\text{elastic}}(\cdot)\)表示向量的\(L_1\)和\(L_2\)范数之和;\(\lambda_1\)和\(\lambda_2\)为超参数。这里的\(\mathbf{m}\)表示后门触发器的掩码,\(\Delta\)表示重建的后门触发器。公式[reg_1]在对掩码\(\mathbf{m}\)中非零项进行惩罚的同时,也对掩码0值区域的重建后门触发器的非零项进行惩罚,从而解决过大的问题,缩小对抗子空间中对抗样本的数量。
针对稀疏触发器,TABOR定义如下正则化项来惩罚稀疏:
其中,\(\lambda_3\)和\(\lambda_4\)为超参数,\(s(\cdot)\)为平滑度量函数,用来表示零或者非零值的密度,\(\mathbf{m}_{i,j}\)表示第\(i\)行第\(j\)列的元素。可以看到,当重建的后门触发器越稀疏时,其\(R_2\)值会更高。因此,TABOR中使用该正则项进一步缩小对抗子空间。
此外,重建的后门触发器还会遮挡图像中的主要物体,称之为(Blocking Trigger),而后门触发器的成功往往不依赖于遮盖主要物体,而在于高响应值。因此,TABOR定义如下正则化项来避免遮盖主要目标:
其中\(y\)表示\({x}\)预测的正确类别;\({x}\odot(1-\mathbf{m})\)表示去除后门触发器位置处像素值后的输入;\(\lambda_5\)为超参数。如果\({x}\)在切除主要区域后仍能发生正确分类则表示后门触发器的位置远离模型决策所依赖的关键区域,从而实现不遮盖主要物体的目的。
最后,还存在叠加触发器(Overlaying Trigger)的情况,重建触发器与真实触发器具有一定程度的叠加。为了缓解该现象,TABOR从特征重要性的角度入手,要求重建的后门触发器可以满足攻击模型的目的,从而去除掉不重要的部分,使得重建后的后门触发器更加精简、准确。该正则项定义为:
其中,\(y_t\)为攻击目标类别;\(\lambda_6\)为超参数。基于此,TABOR可在较为重要的区域里重建后门触发器。
将以上四个正则化项加入到要NC方法的目标函数(公式[nc_optimize])即可生成更加准确的后门触发器。在此之后,还需要进行异常检测来找到后门类别和后门触发器。相较于神经净化的\(L_1\)距离筛选法,TABOR给出了更加精确、具体的度量定义:
其中,\(\mathbf{m}_t\)和\(\Delta_t\)可构成类别\(y_t\)的后门触发器,即\(\mathbf{m}_t \odot \Delta_t\);\(acc_{\text{att}}\)表示将重建后门触发器注入到干净样本中后导致的错误分类率;\(acc_{\text{crop}}\)为在从污染图像中裁剪出相应的后门触发器后得到的预测准确率;\(acc_{\text{exp}}\)表示仅将污染图像中的基于可解释性得到的重要特征输入模型后得到的预测准确率。对于前两项,定义\(f_{i,j}^{(t)}=1{(\mathbf{m}_t \odot \Delta_t)_{i,j}>0}\),通过\(\parallel{vec(f^{(t)})}\parallel_1\)以及\(s(f^{(t)})\)来实现稀疏度量和平滑性度量;\(d\)表示图像的维度,用来归一化。 在得到每个类别重建触发器的度量指标后,可利用MAD(公式[MAD_one]、[MAD_two]和 [MAD_three])进行异常检测。
针对过多的超参数(\(\{\lambda_1, \lambda_2, \lambda_3, \lambda_4, \lambda_5, \lambda_6\}\)),TABOR为了其对触发器重建性能的影响,设计了一种超参增强机制。在优化的初始阶段,将超参数初始化为较小的值,也就是说在此阶段中正则化项对于目标函数的贡献接近0;之后会将当前重建的后门触发器注入到干净样本中以获得污染样本,并将污染样本输入到模型中获取错误分类率,只有当错误分类率达到一个确定的阈值时,才会将超参数乘上固定的扩大因子\(\gamma\);否则,将会除以\(\gamma\)。以上操作会重复进行,直到正则化项的值趋于稳定,即\(|R_t^{k-1} - R_t^{k}| < \epsilon\),其中\(R_t^k\)表示在第\(k\)次迭代中第\(t\)个正则项的值;\(\epsilon\)为一个较小的常数。
TABOR在神经净化框架下,增加了多种正则化项来解决在后门触发器重建过程中存在的问题。此外,还从多个角度设计了更加全面的度量标准,以获得更好的异常检测性能。结果显示,TABOR方法相较于神经净化方法在后门触发器重建及检测上取得了更好的效果。
数据受限下的检测。 Wang等人 (Wang et al., 2020) 在数据限制(Data-limited)及无数据(Data-free)的情况下分别提出了有效的后门类别检测方法DF——TND(TrojanNet Detector)和DF-TND。其中,DL-TND在每个类别中仅有一张图像的条件下,针对每个类别分别计算其非目标通用对抗噪声和单一图像的有目标对抗噪声,并比较两种噪声之间的差异,从而识别后门类别;DF-TND不使用原始图像,而利用随机图像作为检测数据。它通过最大化中间层神经元激活来获取扰动图像,根据随机图像与扰动图像在输出概率上的差异来检测后门类别。下面将分别对DL-TND和DF-TND进行介绍。
类似于公式[nc_optimize],DL-TND定义添加了后门触发器的图片为:
其中,\(0 \leq \Delta \leq 255\)为触发器噪声,\(\mathbf{m} \in\{0,1\}\)为定义了添加位置的二值掩码。 在数据限制下,可针对每个类别获取一张照片,因此DL-TND使用\(D_k\)表示类别\(k\)的图片集合,\(D_{k-}\)表示不同于类别\(k\)的其他图片集合。
首先,DL-TND利用\(D_{k-}\)数据集获取非目标(Universal Adversarial Noise),即在\(D_{k-}\)中增加噪声\({u}^{(k)}\)使得模型发生错误分类。与此同时,\({u}^{k}\)不会影响\(D_k\)在模型上的分类。通过模拟后门触发器只干扰\(D_{k-}\)样本的特性,来进行噪声模拟。形式化定义如下:
其中,\(\lambda\)为超参数,\(\parallel{\mathbf{m}}\parallel_1\)用来保证稀疏性。
公式中的前两项损失分别定义为:
其中,\(y_i\)为\({x}_i\)的真实类别,\(f_t(\cdot)\)表示类别\(t\)的预测值,\(\tau \geq 0\)为超参,用来界定攻击的最低置信程度。
公式[cw_format]参考了CW攻击 (Carlini and Wagner, 2017) 的非目标攻击形式,使得 \(D_{K-}\)发生非目标错误分类而不影响\(D_k\)的正确分类。 此时,DL-TND会对每个图像\({x}_i \in D_{k-}\)分别计算(Targeted Adversarial Noise),使得\(\hat{{x}}_i(\mathbf{m}, \Delta)\)会被模型错分类为\(k\)。DL-TND认为目标攻击与非目标通用攻击一样,偏向使用后门触发器这个捷径来生成对抗噪声。目标攻击的优化目标函数定义如下:
其中第一项同样采用CW攻击形式,定义为:
通过上式可针对每个类别\(k\)和对应的图像\({x}_i\)获得噪声\({s}^{k,i} = (\mathbf{m}^{k,i}, \Delta^{k,i})\)。 因此,根据相似性假设,当某个类别中存在后门触发器时,\({u}^{k}\)和\({s}^{k,i}\)应该具有高度的相似性。DL-TND叠加两种噪声后在模型中间层的特征表示上计算余弦相似度。对于\({x}_i \in D_{k-1}\)分别执行上述步骤,可以得到相似度得分向量\({v}_{\text{sim}}^{k}\)。 最后,可通过MAD或者人为设定的阈值进行后门类别检测。
在无数据的情况下,可通过最大化随机输入\({x}\)在模型中间层的神经元激活来生成噪声,其优化目标定义为:
其中,\(0 \leq {w}\leq 1\)且\(1^T{w}= 1\),用来调整不同神经元的重要性,\(d\)表示模型中间层的维度。通过模拟后门触发器引起特定位置处的高激活现象,生成以\({w}\)编码位置不同重要性的对抗噪声\(p^{(i)} = (\mathbf{m}^{(i)}, \Delta^{(i)})\)。那么对于\(N\)个随机输入\({x}_i\),则具有\(N\)个\(p^{(i)}\)。
最后,通过观察随机输入与其后门版本在模型输出上的差异来检测后门类别:
根据上式可计算每个类别输出差值,进而可基于预先设定的阈值来进行检测,\(R_k\)值越大表示后门风险越大。
9.2. 后门样本检测¶
后门样本检测的目标是识别训练数据集或者测试数据集中的后门样本,其中对训练数据集的检测可以帮助防御者清洗训练数据,而对测试数据集的检测可以在模型部署阶段发现并拒绝后门攻击行为。下面介绍几种经典的后门样本检测方法。
频谱分析方法。 为了检测训练数据中可能存在的后门样本,Tran等人 (Tran et al., 2018) 首次提出了频谱分析方法 (Spectral Signature, SS) 。该方法观察到后门样本和干净样本在深度特征的协方差矩阵上存在差异,故可以通过检测这种差异来过滤后门样本。
算法[algorithm:SS]中给出了SS方法的检测流程。具体来说,给定训练样本\(D\),首先训练得到神经网络\(f\)。然后,按照类别遍历,并提取每个样本的特征向量并计算每类样本的特征均值。接下来,对深度特征的协方差矩阵进行奇异值分解,并使用该分解计算每个样本的异常值分数。根据异常检测规则移除数据集中异常值高于\(1.5\epsilon\)的样本(后门样本),最终返回一个干净的训练数据集\(D_{\text{clean}}\)。
不可信训练数据集\(D\),随机初始化模型\(f\)以及模型特征表征\(\mathcal{R}\),投毒样本数量上界\(\epsilon\),\(D_{y}\)表示标签为\(y\)的训练样本子集 在数据集\(D\)上训练模型\(f\) 初始化集合:\(S \leftarrow \{\}\) 构建类别样本子集:\(D_{y}=\{{x}_{1}, \ldots, {x}_{n}\}\) 计算样本特征均值:\(\widehat{\mathcal{R}}=\frac{1}{n} \sum_{i=1}^{n} \mathcal{R}({x}_{i})\) 计算特征差异:\(M=\left[\mathcal{R}({x}_{i})-\widehat{\mathcal{R}}\right]_{i=1}^{n}\),其中\(M\)是\(n \times d\)矩阵 \(M\)做奇异值分解得到向量\({v}\) 异常分数计算:\(\tau_{i}=\left(\left(\mathcal{R}\left({x}_{i}\right)-\widehat{\mathcal{R}}\right) \cdot {v}\right)^{2}\) 异常样本移除:移除\(D_{y}\)中大于\(1.5\epsilon\)的样本 更新数据集:\(S \leftarrow S \cup D_{y}\) 新数据集\(D_\text{clean} \leftarrow S\)
不可信训练数据集\(D\)以及对应类别标签\(\{1, \cdots\, n\}\) 在数据集\(D\)上训练模型\(f\) 初始化激活集合\(A \leftarrow \{\}\) 计算指定隐藏层的输出激活:\(A_{{x}_{i}} = f ({x}_{i})\) 更新激活集合:\(A \leftarrow A \cup A_{{x}_{i}}\) 特征激活降维:\(\text{reduced} = \text{reduceDimensions} (A[i])\) 生成聚类簇:\(\text{clusters} = \text{clusteringMethod (reduced)}\) 后门簇分析:\(\text{analyzeForPoison(clusters)}\) 干净数据集\(D_{\text{clean}}\)
激活聚类方法。 Chen等人 (Chen et al., 2018) 提出了一种基于激活聚类的方法(Activation Clustering, AC)来过滤训练数据中的潜在后门样本。该方法的主要思想是:后门特征和干净特征之间存在差异,且这种差异在深度特征空间中会更加显著。因此,可以基于聚类方法来自动分离后门特征,进而帮助检测后门样本。
算法[algorithm:SS]中给出了AC方法的检测流程。该方法首先在后门训练数据集\(D\)上训练模型\(f\),然后对所有训练样本\({x}_{i} \in D\)提取其特征激活(默认选取模型最后一个线性分类层的输出),得到一个包含所有特征激活的集合\(A\)。然后,对得到的特征激活进行降维,并利用聚类方法对训练数据集进行聚类分析。实验表明,通过分析最后一层隐藏层的激活结果就能够有效检测后门数据。
值得注意的是,AC方法假定训练数据中一定存在后门样本,所以在激活聚类时默认将整个数据集划分为两个数据簇。作者提出了三个后门数据簇的判别依据:(1)重新训练分类;(2)聚类簇的相对大小;(3)轮廓的分数。实验表明,比较聚类簇数据规模的相对大小可以作为一个简单有效的评判依据。
9.3. 后门移除¶
后门检测之后需要后门移除,需要将检测出来的后门关联从模型中清除,以达到模型净化的目的。后门移除的目标主要有两个:(1)从后门模型中移除后门触发器;(2)保持模型的正常性能不下降。后门移除对后门防御至关重要,在实际应用场景中也具有重要的意义,所以后门防御的大部分工作都是围绕后门移除进行。现有的后门移除方法大致可以分为两类:(a)训练中移除,在模型的训练过程中检测出潜在的后门样本,并阻止其植入模型;(b)训练后移除,从后门模型中移除后门触发器。
9.3.1. 训练中移除¶
反后门学习。 如何从被污染的数据中学习一个干净的模型是一个挑战的问题。Li等人 (Li et al., 2021) 首次提出了反后门学习(Anti-Backdoor Learning,ABL)的思想,通过设计鲁棒的训练方法让模型可以在被后门毒化的数据集上,避免对后门数据的学习。
具体而言,ABL方法首先揭示了两个后门攻击固有的弱点:(1)后门样本比干净样本更容易被模型学习,并且后门攻击越强,模型在后门数据上的收敛速度就越快;(2)后门触发器与攻击类别之间具有强关联性。显然,被后门毒化的数据既包含干净数据(\(D_c\))也包含后门数据(\(D_b\))。那么,我们可以将基于毒化数据集的模型训练看做是两个学习任务平行进行,即定义在\(D_c\)上的干净任务(Clean Task)和定义在\(D_b\)上的后门任务(Backdoor Task)。对于图像分类任务而言,在毒化数据集上的模型训练等于优化以下目标:
其中,\(\mathcal{L}_{\text{CE}}(\cdot)\)表示交叉熵损失函数。然而,由于在训练过程中我们无法得到毒化部分数据\(D_b\),所以无法直接求解公式[fun:anti],也就无法阻挡模型对后门数据的学习。为此,ABL将整个训练过程划分为后门隔离(Backdoor Isolation)和后门反学习(Backdoor Unlearning)两个阶段,如式[fun: ABL]所示:
其中,\(t\in [0,T-1]\)为当前的迭代次数,\(\mathop{\mathrm{sign}}(\cdot)\)表示符号函数,\(\mathcal{L}_{\text{LGA}}\)表示第一阶段损失函数,\(\mathcal{L}_{\text{GGA}}\)为第二阶段损失函数。上式包含两个关键的技术:局部梯度上升(Local Gradient Ascent,LGA)和全局梯度上升(Global Gradient Ascent,GGA)。
局部梯度上升可以巧妙的应对后门攻击的第一个弱点,即后门数据学的更快(训练损失下降的极快)。LGA通过将训练样本的损失控制在一个阈值\(\gamma\)附近,从而让后门样本穿过这个阈值而普通样本无法穿过。具体而言,当样本的损失低于\(\gamma\)时,LGA会增加其损失到\(\gamma\);否则,其损失值保持不变。同时,在该阶段会根据样本的损失值将训练集划分为两部分,损失值较低的被分到(潜在)后门数据集\(\widehat{D_b}\),其余的被分到干净数据集\(\widehat{D_c}(D=\widehat{D_b} \cup \widehat{D_c})\),划分(检测)比率\(p=|\widehat{D_b}| / |D|\)可以被设定于远低于数据中毒的比率(比如训练数据的1%)。
全局梯度上升针对后门攻击的第二个弱点,即后门攻击触发器通常与特定的类别发生强关联。实际上,当后门触发器被检测出来的时候,它已经被植入到模型当中了,所以需要额外的技术将其从模型中移除。全局梯度上升可以做到这一点,它目标是借助第一阶段隔离得到的少量潜在后门样本\(\widehat{D_b}\),对后门模型进行反学习(Unlearning),通过最大化模型在数据\(\widehat{D_b}\)上的损失,让模型刻意的去不学习这些样本。
ABL方法为工业界提供了在不可信或者第三方数据上训练良性模型的新思路,可帮助公司、研究机构或政府机构等训练干净、无后门的人工智能模型。此外,ABL鲁棒训练方法有助于帮助构建更加安全可靠的训练场景,为深度模型的安全应用提供有力保障。
9.3.2. 训练后移除¶
一般来说,后门模型的修复可以基于重建的后门触发器进行,因为只有掌握了后门触发器的信息才能知道需要从模型中移除什么功能。但是触发器重建通常比较耗时,所以现有的训练后移除方法大都不急于触发器重建进行,而是假设防御者有少量的干净数据用以模型净化。这些少量的干净数据可以用来对模型进行微调、蒸馏等操作,以便修复模型。
Fine-pruning方法。 Liu等人 (Liu et al., 2018) 提出了精细剪枝(Fine-Pruning)方法,整合了剪枝和微调方法,可有效消除模型后门。剪枝是一种模型压缩技术,可以用来从后门模型中剪掉与触发器关联的后门神经元,从而达到模型净化的效果。因为后门神经元只能被后门数据激活,所以在干净数据上休眠的神经元就极有可能是后门神经元,需要进行剪枝。剪枝后的模型会发生一定程度的性能下降,所以需要在少量干净数据(也称为防御数据)上进行微调,恢复其在干净样本上的性能。Fine-Pruning方法虽然很简单,确实很简单直观,所以经常被用来作为基线方法比较。当然,Fine-Pruning方法的防御性能并没有很好,尤其是在面对一些复杂的攻击时,往往只能将攻击成功率从接近100%降低到80%左右。
基于GAN的触发重建。 Qiao等人 (Qiao et al., 2019) 对触发器重建进行了研究,发现重建后的后门触发器往往来自于连续的像素空间,且重建后的后门触发器比初始触发器的攻击强度甚至还要高,这表明重建触发器分布可能包含了原始触发器,但单一触发器无法有效表达整个触发器空间。因此,Qiao等人提出了基于最大熵阶梯逼近(Max-Entropy Staircase Approximator,MESA)的生成对抗网络(Generative Adversarial Network,GANs),以生成有效后门触发器的分布\(f'\),该分布甚至对于攻击者而言都是未知的。为了处理该问题,MESA使用替代模型\(F'\)来近似有效后门触发器分布,这里\(F'\)返回给定后门触发器下的攻击成功率。且使用\(N\)个子生成模型来分别学习分布\(f'\)的不同部分\({\mathcal{X}}_i={{x}:F'({r})>\beta_i}\),其中\({r}\)表示触发器,\(\beta_i\)表示第\(i\)个子生成模型的阈值,且满足\(\beta_{i+1}>\beta_i, {\mathcal{X}}_{i+1} \subset {\mathcal{X}}_i\)。 每个子生成模型的优化函数为:
其中,\(Z\)表示随机噪声向量,\(h(\cdot)\)表示输出熵。可由互信息神经估计(Mutual Information Neural Estimator,MINE) (Belghazi et al., 2018) 得到的互信息来代替。当生成模型确定时,有:
其中,\(I(\cdot;\cdot)\)表示互信息。 根据支持向量机 (Cortes and Vapnik, 2004) 中的松弛技术,基于MESA建模有效后门触发器分布的优化目标为:
其中,\({z},{z}^{'}\)为独立的用于互信息估计的随机变量,\(I_{T_i}\)为由统计网络\(T_i\)作为参数的互信息估计器;\(\alpha\)为超参数,用来平衡熵最大化的软约束。 当集成多个子生成模型后,可实现对后门触发器空间的有效建模。 为修复该后门漏洞,MESA防御在后门触发器空间中生成多个后门触发器,并以此缓解模型后门。
神经注意力蒸馏。 既然有少量干净数据,那么除了剪枝微调以外,模型蒸馏方法也可以用于后门防御,而且蒸馏往往比微调的效果要好。基于此想法,Li等人 (Li et al., 2021) 首次提出了神经注意力蒸馏(Neural Attention Distillation, NAD)方法,通过使用知识蒸馏并借助少量干净数据进行后门触发器的移除。因为知识蒸馏涉及两个模型(即教师模型和学生模型),那么基于知识蒸馏的后门防御就需要选择恰当的教师和学生。
NAD防御利用在干净数据上微调过后的模型作为教师模型,缓解了此问题。然后,NAD利用教师模型引导学生模型(未经过任何微调的原始后门模型)在少量干净数据上进行微调,使学生模型的中间层注意力与教师模型的中间层注意力一致,从而在学生后门模型中移除后门触发器。NAD的整体流程如 图9.3.1 所示,该方法的核心在于寻找合适的注意力表征来保证蒸馏防御的有效性。
对于注意力表征,假定模型第\(l\)层的输出特征表示为\(f^{l} \in {\mathbb{R}}^{C\times H \times W}\),注意力表征函数\(A :{\mathbb{R}}^{C\times H \times W} \rightarrow {\mathbb{R}}^{H \times W}\)的目标是将模型输出的三维特征\(f^{l}\)沿通道维度上进行融合。具体而言,算子\(A\)主要有三种选择:
其中,\(f_i^l\)表示第\(i\)个通道的激活图;\(A_{\text{sum}}\) 对应整个激活区域,即将所有良性和后门神经元的激活区域叠加起来;\(A_{\text{sum}}^p\)是\(A_{\text{sum}}\)的一个广义版本,目标是放大后门神经元和良性神经元之间的差异;\(A_{\text{mean}}^{p}\)计算所有激活区域的平均值,目的是将后门神经元的激活中心与良性神经元的激活中心对齐。
为了实现注意力的有效蒸馏和后门移除,Li等人将教师和学生模型之间的第\(l\)层的蒸馏损失定义为:
其,\(\left\|\right\|_2\)表示\(L_2\)范数,用来衡量教师和学生注意力之间的距离。
NAD防御的整体优化损失函数由失交叉熵(Cross-Entropy, CE)损失和神经元注意蒸馏(NAD)损失两部分组成:
其中,\(\mathcal{L}_{\text{CE}}\)衡量学生模型的分类误差,\(D_c\)是用来防御的干净数据子集,\(l\)代表残差网络层级的索引,\(\beta\)是用来控制注意力蒸馏强度的超参数。
总体来说,NAD后门防御打开了基于知识蒸馏技术的双模型相互纠正防御思路,是目前业界比较简单有效的方法之一,能够抵御大多数已知的后门攻击。但是该方法面对更新、更强的攻击方法时还是有些有限,毕竟以微调模型作为教师模型还未完全发挥知识蒸馏防御的潜力。
模式连通修复。 Zhao等人 (Zhao et al., 2020) 利用损失景观中的模式连通性(Model Connection)对深度神经网络的鲁棒性进行研究,并提出了一种新颖的后门模型修复的方法——模式连通修复(Mode Connectivity Repair,MCR)。直观来讲,模式连通指的是模型的从一套参数(比如包含后门的参数,有后门但干净准确率高)到另一套参数(比如干净模型参数,无后门但干净准确率低)往往遵循特定的轨迹,那么在这个轨迹上进行合理的选择就可以得到一套无后门且性能下降不多的参数。具体的,MCR首先选取两个后门模型作为端点模型,然后利用模式连接将两个端点模型的权重连接起来,并在少量干净样本上优化此路径,最终得到一条包含最小损失权重的路径。作者指出,该路径上的最小损失点(通常是中心点)对应的模型参数不包含后门触发器且干净准确率得到了保持。连接两个后门模型与模型参数混合(Mixup)的思想类似,不过这里混合路径是优化得到的,可以巧妙的避开两个后门模型的缺点(即存在的后门)同时最大化二者的优点(即干净准确率)。
作者主要讨论了多边形连通路径(Polygonal Chain)和贝兹曲线连通路径(Bezier Curve)两种模式,其中连通函数定义为\(\phi_{\theta}(t)\)。具体来说,假定两个端点模型的权重分别表示为\(\omega_{1}\)和\(\omega_{2}\),连接路径的弯曲程度定义为\(\theta\),多边形连通函数定义为:
Bezier曲线为有效控制连接路径的平滑度提供了方便的参数化形式。给定端点参数为\(\omega_{1}\)和\(\omega_{2}\),二次贝兹曲线定义为:
需要注意的是,对于后门模型修复,上述路径优化仅需要将端点模型替换为后门模型即可。实验结果表明,通过少量干净样本优化此连通路径,并选择最小损失路径对应的参数作为模型鲁棒参数,可以有效从模型中移除后门,同时保证较少的准确率损失。
对抗神经元剪枝。 从后门模型中准确检测并隔离出后门神经元是后门防御领域的一个挑战性问题。Wu等人 (Wu and Wang, 2021) 提出了一种基于对抗神经元扰动的模型剪枝方法(Adversarial Neural Perturbation, ANP ),帮助缓解后门触发器对模型的负面影响。作者首先揭示了后门模型的一个有趣现象,即后门神经元在参数空间的对抗扰动下更容易崩溃,从而导致后门模型在干净样本上预测后门目标标签。基于上述结果,作者提出了一种新颖的模型剪枝方法,该方法通过剪枝一些敏感神经元来净化后门模型。实验表明,即使只有1%的干净样本,ANP也能有效地去除模型后门,且不会显著影响模型的原始性能。
ANP防御主要包含三个步骤:参数对抗扰动,剪枝掩码优化和后门神经元裁剪。给定一个训练完成的模型\(f\),对应的模型权重定义为\(w\),干净训练样本定义为\(D_{c}\)以及交叉熵损失函数定义为\(\mathcal{L}_{\text{CE}}\)。针对模型参数空间的对抗扰动可定义如下:
其中,\(\epsilon\)用于控制扰动的幅度,\(\delta\)和\(\xi\)分别代表添加在权重\({w}\)和偏置项\(b\)上的对抗噪声。
为了实现精准剪枝,ANP定义了一个模型参数空间上的连续掩码\(\mathbf{m} \in [0,1]^{n}\),初始化值为1,并且使用投影梯度下降法(Projected Gradient Descent,PGD)对\(\mathbf{m}\)进行更新。为了减小神经元裁剪对模型干净准确率的负面影响,ANP在参数扰动的同时也在干净样本上使用交叉熵对模型进行微调。为此,作者定义了以下优化目标函数:
其中,\(\alpha \in [0,1]\)为平衡系数。当\(\alpha\)接近1时,更关注裁剪后的模型在干净数据上的准确率,而当\(\alpha\)接近0时,更关注后门的移除效果。
需要注意的是,上式优化得到的掩码\(\textbf{m}\)记录了神经元在对抗噪声下的敏感程度。为了有效移除模型中的后门神经元,可以对优化得到的\(\textbf{m}\),基于预先设定的裁剪阈值\(T\),将所有小于阈值的神经元的权重置为0。 实验结果表明,ANP在多种经典后门攻击上均取得了当前最佳的防御效果。然而,ANP对于特征空间的后门攻击方法,仍存在一定的局限性。后续研究需要进一步提出更加先进的裁剪方法,从而能够适应基于特征空间的后门攻击。
9.4. 本章小结¶
本章介绍了对抗防御(章节[sec:adv_defense])、后门防御(章节[sec:backdoor_defense])和模型窃取防御(章节11.2),分别对应上一章节中介绍的对抗攻击(章节[sec:adv_attack])、后门攻击(章节[sec:backdoor_attack])和模型窃取攻击(章节11.1)。其中,对抗防御部分主要介绍了对抗样本的成因、对抗样本检测、对抗训练、输入防御和可验证防御;在后门防御方面,主要介绍了后门检测和后门移除两类防御方法;在模型窃取防御方面介绍了信息模糊、查询控制和模型溯源三类防御方法。通过这些方法的介绍,我们可以粗略了解应对不同模型攻击所需要的防御技术,以及它们的缺陷。从目前的研究来看,一种方法无法应对模型的所有安全问题,需要集合不同的策略,各自从不同的维度对模型进行增强。