AI安全科普文-投毒防御

随着投毒攻击方法层出不穷地出现,以应对这类攻击的检测与防御也亟待被发现。投毒攻击的防御方法大致能够分为两大类别:被动防御与主动防御。被动防御旨在在攻击发生后,利用技术手段将中毒样本滤出,以达到净化训练数据的目的;主动防御则侧重于在攻击发生前,在数据集或者训练上设计方法,使得训练后的模型能够对投毒样本具有抵抗能力。

 

下面分别介绍一种基于数据检测的被动防御方法,与两种主动防御策略。

 

descript

 

图1 投毒防御方法

 

 

基于数据检测的防御

 

基于数据检测的防御方法旨在,给出一组训练样本,检测防御算法是否能够将中毒样本给标记出来。进而对训练样本进行清理,以达到使训练样本 “少毒” 甚至是 “无毒” 的效果。以这样经过净化的训练样本来训练模型,就可以减小投毒攻击的不利影响,从而增强模型的可用性与完整性。

 

一种比较简单的方法便是利用K-最近邻算法(K-Nearest Neighbors Algorithm,K-NN)来检测中毒样本。K-NN算法的核心思想是:在样本的特征空间中,一个样本应该大概率与其周围近邻的样本具有相同的类别(图2)。其中,K便是所纳入计算的近邻数量。很直觉地,中毒样本应该和正常样本在某些特征上有所区别,因此K-NN可以将之检测出来。

 

descript

 

图2 K- NN算法思想

 

其主要地检测思路是这样的:给出一组训练样本,利用K-NN算法计算每个样本应该有的类别;如果算法计算出的类别与样本标记的类别不一致,那么就认为这个是中毒样本,从而将之滤除掉。另外值得注意的一点是,特征空间的选择可以不使用输入图像域而是使用网络的特征层上。因为对于干净标签的投毒攻击在输入图像域上,样本域标签是匹配,而在特征空间上有着较大的不同。进一步,为了提高滤除准确性,可以在多个特整层上执行K-NN算法,以综合最后的判断结果。其算法描述如图3:

 

descript

 

图3 K-NN防御算法描述

Peri N, Gupta N, Huang W R, et al. Deep k-nn defense against clean-label data poisoning attacks[C]//Computer Vision–ECCV 2020 Workshops: Glasgow, UK, August 23–28, 2020, Proceedings, Part I 16. Springer International Publishing, 2020: 55-70.

 

其中,descript 表示训练样本集;descript 表示第 descript 个样本的特征向量。

 

 

基于鲁棒训练的防御

 

模型的鲁棒性(Robustness,也称健壮性)是模型在异常和危险情况下模型正常工作的能力的度量。在模型训练与预测阶段可以采取一些特定的措施,以提升模型面对中毒样本时的抵抗能力与容错能力。

 

其中一种方法便是基于集成学习(Ensemble Learning)的方法。集成学习利用一种称为 Bagging 方法(可译为装袋,也称 Bootstrap aggregating策略)来综合考虑多个模型的输出结果,最后给出最终的输出。针对一个分类问题,其具体步骤大致如下:首先,对训练集经行多次子抽样,得到多个训练集的子集;然后,在每个训练子集上训练一个预测子模型;接着,在预测阶段,待测样本会经过所有子模型,每个子模型都有子集的预测结果;最后,对所有子模型预测结果投票,来决定出最后的输出结果。如图4是一个结构示意图:

 

descript

 

图4 基于集成学习的鲁棒训练防御

PJia J, Cao X, Gong N Z. Intrinsic certified robustness of bagging against data poisoning attacks[C]//Proceedings of the AAAI Conference on Artificial Intelligence. 2021, 35(9): 7961-7969.

 

 

在训练阶段,左侧的训练集被采样到三个训练子集中,分别训练出来了  三个预测子模型( 是中毒子模型)。在测试阶段,待测样本  分别被送入所有子模型中,得到子模型的输出。可以看到在投票阶段,即便  给出错误的分类结果,模型也能够预测准确。

       

集成学习应用于投毒防御为什么确实有效的原理呢?从概率角度,预测的分类是一个随机变量,同时这个随机变量也就服从一个分布。那么,我们希望这个分布的方差可以足够小,因为可以认为方差越小,鲁棒性越高。对Bagging 方法而言,假设模型总体为 descript,训练了 descript 个子模型 descript,每个子模型的权重 descript 为 descript,且每个子模型期望方差近似相同。每个子模型的均值 descript 记为 descript,方差 descript 记为 descript,则总体模型的期望方差如下:

 

descript

 

descript

 

可以看出在理论上,总体模型的均值与子模型均值一致,而且方差却有了极大的降低。这也就说明了集成学习能够增强模型鲁棒性的原因。但是如果子训练集的数目不够大,训练不好的子模型的话,可能会使得这个均值不一致,从而影响模型效果。

 

 

基于数据增强的防御

 

数据增强是一种在不增加训练集样本数目的情况下,对训练集进行扩充的手段。其主要包含对原有样本进行剪裁(Crop)、旋转(Rotate)、翻转(Flip)、缩放(Scale)、位移(Translate)以及加入噪声等方式,用以得到变化的数据样本,并将这些变化的样本归入训练集,以达到扩充训练集的目的。一般而言,在经过数据增强扩充的训练集上训练的模型,往往会有更好的性能。有研究显示,利用经过数据增强处理后的样本来训练机器学习模型也能够有效降低数据投毒攻击的威胁,提升模型面对攻击的鲁棒性。

 

Mixup就是其中一种数据增强的方法。通过线性插值,Mixup在样本与样本之间构造以不同比例融合的新样本。这样的操作使得原本离散化的数据样本变得连续。假设有两个不同的样本 descript 和 descriptdescript 为经过Mixup处理后的样本,则其处理方式可以表示为:

 

descript

 

其中,descript 为控制插值比例的超参数。图5是使用Mixup进行插值后的数据样本示例:

 

descript

 

图5 使用Mixup数据增强的样本

 

第一行为原始的输入样本 descript 和 descript;第二行为 descript 分别取0.1,0.2,0.3时的插值图。给经过Mixup插值后的图像打标签也有很多方法,以图5第二行的第一张图为例,比如可以是 “0.1的塔 + 0.9的人”等等。

 

另外一种数据增强的方法是CutMix。不同于Mixup在全图上以一定比例对两个样本进行插值来得到数据增强后的样本,CutMix则将一个样本的一个随机区域用另一个样本的像素来填充,以得到处理后的样本。其处理方式如下:

 

descript

 

descript

 

descript

 

descript

 

其中,descript 与 descript 为剪裁区域的宽和高;descript 与 descript 输入图像的宽与高;descript 表示逐元素相乘(哈达马积);descript为混合超参数,descript; descript 和 descript 为两个输入样本;descript 为数据增强后的样本。图6是一个数据经过CutMix数据增强后的样例:

 

descript

 

图6 使用CutMix数据增强的样本

Yun S, Han D, Oh S J, et al. Cutmix: Regularization strategy to train strong classifiers with localizable features[C]//Proceedings of the IEEE/CVF international conference on computer vision. 2019: 6023-6032.

 

 CutMix利用图像剪裁、填充和标签混合等手段,增强了模型的鲁棒性。

首页    知识科普    AI安全科普文-投毒防御