type
status
date
slug
summary
tags
category
icon
password

Introduction

AI完整性问题:在训练过程中训练数据是完整的,是没有被破坏的;在预测的过程中,预测结果也是完整的不被破坏的。
对于一个有监督的机器学习问题,通常的流程包括这样几步:
  1. 数据收集:训练者可以访问公开数据集、用户私人数据库、网络爬取数据等数据源构建自己的数据集;
  1. 数据预处理:通过处理数据提高算法的精度,提高算法的效率,包括:
    1. 数据清理(删除冗余与异常数据)
    2. 数据增强(补充缺失数据,通过各种方式进行数据处理,从而获取更多数据)
    3. 数据转换(数据处理成 ML 算法需要的格式,如矩阵化、向量化)
    4. 数据归一化、标准化
    5. 数据划分
  1. 训练与建模:选择合适的算法对模型进行训练,包括模型选择、确定目标函数、确定优化算法等;
  1. 测试与评估:使用测试集评估模型,并进行进一步调整,方法包括交叉验证、超参数优化等。
 
数据投毒是指,攻击者将少量精心设计的中毒样本添加到模型的训练数据集中,利用训练或者微调(fine-tuning)过程使得模型中毒,从而破坏模型的可用性或完整性,最终使模型在测试阶段表现异常。
在数据收集阶段的攻击是指:攻击者可以提前制作中毒样本,并利用各种途径(如网络)最终将其混入训练数据。另一方面,插入数据是有成本的,如果插入太多带毒数据(例如投入很多带毒图片),就很容易会被检测出异常,所以就会有染毒率的问题。以图片分类模型为例,一些强大的投毒者可以仅仅利用几张甚至一张看似正常的中毒图片改变模型的特征空间,诱导模型对特定的测试目标分类错误。
在数据预处理阶段的攻击是指:一些具有特权的攻击者(如公司内部人员或外包方人员)可以直接接触训练数据和训练流程,他们可以将任意中毒数据插入训练集、控制数据标签,甚至直接修改训练数据。

威胁模型

分类模型:
  • 白盒攻击:攻击者对目标 ML 系统有充分的了解,清楚学习的任务、算法、数据集和求解策略。他们还可以直接访问训练数据和内部模型权重,密切关注着训练阶段。
  • 黑盒攻击:与白盒设置相反,攻击者无法直接访问受害模型和训练数据集。然而,与其他潜在用户一样,攻击者可以知道系统拟完成的任务。因此,他们可以收集替代数据集  ,并进一步训练替代模型  来模拟原始受害者模型  。
  • 灰盒攻击:介于上两者之间,攻击者对目标模型仅有部分了解;此时攻击者依然可以通过收集替代训练集和训练替代模型来补充未知的部分知识,进而制作中毒样本。
与对抗样本类似,都需要对原始图像进行添加扰动。
以最常见的分类场景为例,受害模型可以分为以下三元组M=(Dtr,f,w)
一般来说,(无目标)数据投毒可被统归纳为一种双层优化模型
notion image
notion image
(最后优化的目的是在测试集最小损失,在验证集最大损失)

数据投毒攻击方法

基于标签翻转的数据投毒

不匹配的标签会引入不匹配的映射关系,从而破坏模型的功能。似乎更像是一个概率卷参数的问题,不太理性

基于优化的数据投毒攻击

更进一步则是基于优化的投毒方法,其核心在于将要解决的目标转化为一系列最大/最小化问题,及相应的约束条件,寻找最优解。在数据投毒中,目标问题通常是制作最有效的中毒样本,既可以用于计算标签中毒的最佳数据点集,也可用于找到最有效的数据修改方案。显然,此类攻击的性能主要取决于优化问题的构建和解决优化问题的策略。
数据投毒目标问题通常是制作最有效的中毒样本。这里有两种策略,
第一个呢是修改标签(到底要翻转哪些数据的标签);
第二种优化是不修改标签,而是修改数据,例如在数字识别中,数字 1 还是数字 1,只不过加上了噪音。
notion image
 

基于梯度的数据投毒攻击

外部优化更新x数据时使用的是基于梯度的方法(对目标函数的梯度)

干净标签的数据投毒攻击

这是一个比较强力的,不违反直觉的数据攻击,同样也有论文
之后有时间看下这个论文,现在没有很懂,之后再填充
 
 
以往的标签翻转很容易被发现,例如,基类图像(狗)+ 扰动 = 中毒图像,但中毒图像在人眼看来还是狗。如果中毒图像的标签标记成鱼,那么就很容易被数据的清洗者发现。而干净标签数据投毒攻击中,中毒图像的标签与视觉感官是一致的,狗的图像加上噪音后得到的中毒图像依然可以标记为狗;同时,在选定某个目标(例如,某个鱼的图像)时,测试图像会被错误分类(分类为狗)。
这里采用的方法称作特征碰撞法(Feature Collision)。依然假设受害模型是有监督的图像二分类模型,白盒攻击。采用有目标攻击,即:攻击者希望通过少量数据投毒后,中毒模型在测试阶段会错误的将某个已知的目标测试样本 t 分类到指定的类别,受害模型精度不会明显下降,在保持模型可用性的同时破坏其完整性;同时采用隐蔽攻击,攻击者希望模型拥有者在训练时不会发现训练数据存在明显异常,如标签与图像内容不匹配等。攻击者能够向基础图像中加噪来制作中毒样本,并将其插入训练集,不过不需要控制标签。

数据投毒防御

  • 被动防御:侧重于在发生攻击后进行检测、清理和修复
    • 基于训练检测的防御方法
  • 主动防御:侧重于防患于未然,提前采取措施
    • 基于鲁棒训练的防御方法
    • 基于数据增强的防御方法

基于训练数据检测的防御方法

训练数据检测思路是:利用 k-NN 聚类算法,为训练数据集中的每个训练数据计算标签,如果计算出的标签与该数据的真实标签不一致, 则认为这个训练数据被污染,将其从训练数据中移除。不过需要注意的是,我们可以不在像素层面上分类(因为在干净标签数据投毒里面,像素层面上图像和标签一致),而是在特征空间中进行分类(进一步,可以在网络的每一层输出都做一遍上述检测)。

基于鲁棒训练的防御方法

其中一种方法就是集成学习(ensemble learning)。例如,我们现在要做一个分类任务,在只传统的情况下,我们只训练一个神经网络来做这个分类;而在集成学习的情况下,我们针对一个分类任务,可以训练出好多个机器学习模型出来,最终做预测的时候,对同样一个输入样本,我们会让每个模型呢都给出一个分类结果,进行投票。

基于数据增强的防御方法

数据增强可以理解为一种在训练集不够的情况下,增加训练集的一个手段。例如,在一个人脸识别的任务中,将部分人脸照片进行旋转、缩放、裁剪、加高斯噪声等方式进行处理,整体训练集就会就会扩大好多倍了。最终在这个新扩大的、数据增强之后的训练集上训练机器学习模型,一般会得到比较高的准确率。有研究表明,利用数据增强向训练集添加经过特殊处理的训练数据也能够显著降低数据投毒攻击的威胁,用这种新样本训练模型有助于提高模型的鲁棒性。
*MIT提出的基于邻域风险最小化原则的mixup,训练集的两个数据间画一条线,线上的每一个点都可以拿来放入训练集里面。mixup 利用插值方法试图将离散样本点连续化,来拟合真实样本分布。(对于label使用软标签)
 
后门攻击Adversarial Examples: Attacks and Defenses for Deep Learning