论文分享Why Do Adversarial Attacks Transfer? Explaining Transferability of Evasion and Poisoning Attacks
Why Do Adversarial Attacks Transfer? Explaining Transferability of Evasion and Poisoning Attacks
一、本文主要工作
攻击的迁移性已经被很多文章所揭示,但是并没有给出具体的原因,本文对此进行了详细的分析。
对于两种攻击,逃逸攻击(test-time)和中毒攻击(training-time)。
- 给出了一种统一优化上述两种攻击的框架
- 定义了攻击迁移性,并给出攻击成功的理论上界
- 针对不同分类器(逻辑回归, SVMs, 岭回归, 随机森林, 神经网络)和不同的实验数据(MNIST, DREBIN, LFW)进行评估实验。
- 一些新的发现:攻击的迁移性很大程度取决于目标模型的复杂度;替代模型(surrogate model)与目标模型(target model)越一致,迁移性越好(一摸一样的话就是完全迁移了);复杂度低的target model的loss function方差小,他们所提出的优化框架容易找到极值点。
二、重要概念
- 中毒可用性攻击(poisoning availability attacks):操纵一批训练数据,以最大程度降低模型的可用性为目的
- 中毒完整性攻击(Poisoning integrity attacks):操纵训练过程,以改变目标样本集的分类结果为目的。
- 逃逸攻击(evasion attacks):操纵测试数据(不影响训练过程),以模型错误分类测试样例为目的。
- 迁移性(transferability):针对A模型的攻击样本,对于B模型同样有效,可以称该攻击样本具有攻击迁移性。
三、符号表
| 符号 | 含义 |
|---|---|
| \mathcal{X} | 样本空间 |
| \mathcal{Y} | 标签空间 |
| \mathcal{D} = (\textbf{x}_i,y_i)^n_{i=1} | 样本集 |
| n | 数据样本量 |
| l(y, \textbf{x}, \textbf{w}) | 单个样本点损失函数 |
| \mathcal{L}(\mathcal{D}, \textbf{w}) = 1/n\sum^n_{i=1}l(y_i, \textbf{x}_i, \textbf{w}) | 损失函数 |
| f | 学习模型 |
| \Phi(\textbf{x}) | 攻击样本空间 |
| \mathcal{A}(\textbf{x}\prime,y,\kappa) | 攻击样本优化目标函数(越大表示攻击样本越有效) |
| \prod_\Phi | 映射函数,限制寻优过程中样本超出合法范围 |
四、攻击者假设
主要是分为
- 白盒攻击:已知训练数据\mathcal{D},特征集合\mathcal{X},学习模型f,模型参数w。
- 黑盒攻击:已知特征集合\mathcal{X}。训练集使用理想化的真实数据集的抽样。学习模型和模型参数来源于surrogate model。
对于不同的攻击场景,攻击者的能力也会有相应的约束
五、攻击样本的统一优化框架
如算法1,按照目标函数梯度上升的方向更新攻击样本\textbf{x}。不同的攻击目的会实例化不同的优化函数\mathcal{A}。此框架不适合不可微分的学习算法(文中section3.1结尾所述)。
逃逸攻击
对于逃逸攻击,优化函数实例化较为简单,即寻找满足样本合法约束并使loss function最大的攻击样本。
在这里,因为考虑2分类问题,loss function形式可实例化为:
l(y,\textbf{x}\prime, \textbf{w}) = -yf(\textbf{x}\prime)
相比于minimum-distance逃逸攻击,上述目标函数寻找的是maximum-confidence(也可以理解为maximum-distance)的样本。
另外,优化过程中的起始攻击样本选择 也很重要,可以同时从相反两类样本(二分类问题)随机选择攻击样本,以免优化过程进入极小值点( for nonlinear classifiers we also consider starting the gradient ascent from the projection of a randomly-chosen point of the opposite class onto the feasible domain )。
中毒可用性攻击
对于该攻击,构造了一个双层优化问题,通过模型权重\textbf{w}^*传递训练过程攻击样本的作用。核心思想是最大化测试过程(不包含攻击样本)的loss function,最小化训练过程(包含攻击样本)的loss function。
针对测试过程,
\max _{\mathbf{x}^{\prime}} \quad L\left(\mathcal{D}_{\mathrm{val}}, \mathbf{w}^{\star}\right)=\sum_{j=1}^{m} \ell\left(y_{j}, \mathbf{x}_{j}, \mathbf{w}^{\star}\right)
训练过程,加入攻击数据\mathbf{x}^{\prime},
\text { s.t. } \quad \mathbf{w}^{\star} \in \underset{\mathbf{w}}{\arg \min } \mathcal{L}\left(\mathcal{D}_{\mathrm{tr}} \cup\left(\mathbf{x}^{\prime}, y\right), \mathbf{w}\right)
假设\textbf{w}和\textbf{x}可微分,给出了对于测试过程loss function的梯度:
\nabla_{\mathbf{x}} \mathcal{A}=\nabla_{\mathbf{x}} L+\frac{\partial \mathbf{w}}{\partial \mathbf{x}}^{\top} \nabla_{\mathbf{w}} L
对于内层训练过程的loss function,根据stationarity conditions(KKT)取得极值时梯度等于0
\nabla_{\mathbf{w}} \mathcal{L}\left(\mathcal{D}_{\mathrm{tr}} \cup\left(\mathbf{x}^{\prime}, y\right), \mathbf{w}\right)=\mathbf{0}
公式两边同时对\textbf{x}求微分
\nabla_{\mathbf{x}} \nabla_{\mathbf{w}} \mathcal{L}+\frac{\partial \mathbf{w}^{\top}}{\partial \mathbf{x}} \nabla_{\mathbf{w}}^{2} \mathcal{L}=\mathbf{0}
这样就可以求解出权重\textbf{w}在\textbf{x}上的微分
\frac{\partial \mathbf{w}^{\top}}{\partial \mathbf{x}}=-\left(\nabla_{\mathbf{x}} \nabla_{\mathbf{w}} \mathcal{L}\right)\left(\nabla_{\mathbf{w}}^{2} \mathcal{L}\right)^{-1}
然后代入外层测试过程loss function的梯度公式
\nabla_{\mathbf{x}} \mathcal{A}=\nabla_{\mathbf{x}} L-\left(\nabla_{\mathbf{x}_{c}} \nabla_{\mathbf{w}} \mathcal{L}\right)\left(\nabla_{\mathbf{w}}^{2} \mathcal{L}\right)^{-1} \nabla_{\mathbf{w}} L
这个就是作者给出的优化框架,在推导过程中对于权重和攻击样本都有一定的假设。
对于攻击迁移性的定义和评估
模型的复杂性对迁移性有着重要影响,并且本文讨论的模型复杂性针对同种训练算法。
逃逸攻击的迁移性
假设有一个来自于surrogate model的攻击样本x^\star = x + \hat{\delta},将这个攻击样本迁移到target model,迁移性采用loss function进行刻画:
T=\ell(y, \mathbf{x}+\hat{\delta}, \mathbf{w})
进行线性化近似,可以把\hat{\delta}拆出来
T=\ell(y, \mathbf{x}+\hat{\delta}, \mathbf{w}) \cong \ell(y, \mathbf{x}, \mathbf{w})+\hat{\delta}^{\top} \nabla_{\mathbf{x}} \ell(y, \mathbf{x}, \mathbf{w})
那么问题就转化为如何求解\hat{\delta},使得T最大。当模型黑盒时,攻击者只能通过surrogate model来得到\hat{\delta},即找到让surrogate model loss function样本
\hat{\delta} \in \underset{\|\delta\|_{p} \leq \varepsilon}{\arg \max } \ell(y, \mathbf{x}+\delta, \hat{\mathbf{w}})
上式同样可以近似线性化,转化为下面的式子:
\max _{\|\delta\|_{p} \leq \varepsilon} \delta^{\top} \nabla_{\mathbf{x}} \ell(y, \mathbf{x}, \hat{\mathbf{w}})
那么求解的{\delta}可以看作一个最大模长为\epsilon,方向未定的向量。只有当{\delta}和surrogate model loss function的梯度方向重合时,两者的内积取得最大值。作者给出了不同norm情况(1,2,\infty)下{\delta}的取值。其中,norm = 2:
\Delta \ell=\varepsilon \frac{\nabla_{\mathbf{x}} \hat{\ell}^{\top}}{\left\|\nabla_{\mathbf{x}} \hat{\ell}\right\|_{2}} \nabla_{\mathbf{x}} \ell \leq \varepsilon\left\|\nabla_{\mathbf{x}} \ell\right\|_{2}
\varepsilon \frac{\nabla_{\mathbf{x}} \hat{\ell}^{\top}}{\left\|\nabla_{\mathbf{x}} \hat{\ell}\right\|_{2}}即表示模长为\varepsilon且和surrogate model loss function梯度方向一致的攻击向量。
逃逸攻击迁移性分析——三个核心指标
- 被攻击模型损失函数在样本点的梯度大小
首先,是target model loss function关于样本的梯度,梯度越大模型越容易被攻击迁移(个人理解是loss function梯度反映模型对于样本的反应程度,梯度越大模型对于样本的反应越剧烈)。给出了第一个衡量迁移性的指标:
S(\mathbf{x}, y)=\left\|\nabla_{\mathbf{x}} \ell(y, \mathbf{x}, \mathbf{w})\right\|_{q}
loss function的梯度受到模型复杂程度和正则化的影响,低复杂度且强正则化的模型对于攻击更加鲁棒。反之,如果模型复杂且弱正则化,那么一个微小扰动也会使模型误分类(这一部分好像没有提到surrogate model,只是针对target model讲的,可以认为是白盒攻击)。这个指标不适用不同模型的比较。
- 梯度对齐(Gradient Alignment)
在黑盒情况下,攻击者掌握的surrogate model和target model之间的区别。
R(\mathbf{x}, y)=\frac{\nabla_{\mathbf{x}} \hat{\ell}^{\top} \nabla_{\mathbf{x}} \ell}{\left\|\nabla_{\mathbf{x}} \hat{\ell}\right\|_{2}\left\|\nabla_{\mathbf{x}} \ell\right\|_{2}}
在相同样本上,target model和surrogate model loss function梯度方向越接近,上述参数越大(表示梯度向量夹角的cos值)。这个指标适用于不同模型的比较。
- 损失函数的变化情况
在进行surrogate model训练时,模型在每次采样得到的子训练集上loss function的变换情况有很大的不同,那么在构造攻击样本时,优化函数的局部最优点就会不断变化,导致攻击迁移的成功率下降。作者直接采用在攻击样本点处surrogate model loss function的方差作为衡量指标。
V(\mathbf{x}, y)=\mathbb{E}_{\mathcal{D}}\left\{\ell(y, \mathbf{x}, \hat{\mathbf{w}})^{2}\right\}-\mathbb{E}_{\mathcal{D}}\{\ell(y, \mathbf{x}, \hat{\mathbf{w}})\}^{2}
公式中\textbf{x}和y表示一个攻击样本点,这个攻击样本点被混入到多个子训练集上计算loss function,并计算loss的方差。这个指标不适用于不同模型比较。
在上述的公式中,攻击样本点\textbf{x}和y贯穿始终。实验中保证攻击样本点的均值固定,然后随便初始攻击样本点。
中毒攻击迁移性分析
这里作者类似的使用了逃逸攻击迁移性的指标,但是公式写的有点问题,文中公式如下
T \cong L(\mathcal{D}, \mathbf{w})+\hat{\delta}^{\top} \nabla_{\mathbf{x}} L(\mathcal{D}, \mathbf{w})
但是我认为应该为如下形式:
T \cong L(\mathcal{D}, \mathbf{w}+\hat{\delta}) = L(\mathcal{D}, \mathbf{w})+\hat{\delta}^{\top} \nabla_{\mathbf{w}} L(\mathcal{D}, \mathbf{w})
那么,上式还需要带入中毒模型权重在样本的梯度
\frac{\partial \mathbf{w}}{\partial \mathbf{x}}^{\top}=-\left(\nabla_{\mathbf{x}} \nabla_{\mathbf{w}} \mathcal{L}\right)\left(\nabla_{\mathbf{w}}^{2} \mathcal{L}\right)^{-1}。
作者说可以直接替换——we simply replace the evasion loss \ell(y, \mathbf{x}, \mathbf{w}) with the validation loss L(\mathcal{D}, \mathbf{w})。
实验部分还没来及的看,看完更新。
