Advertisement

论文分享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)。

  1. 给出了一种统一优化上述两种攻击的框架
  2. 定义了攻击迁移性,并给出攻击成功的理论上界
  3. 针对不同分类器(逻辑回归, SVMs, 岭回归, 随机森林, 神经网络)和不同的实验数据(MNIST, DREBIN, LFW)进行评估实验。
  4. 一些新的发现:攻击的迁移性很大程度取决于目标模型的复杂度;替代模型(surrogate model)与目标模型(target model)越一致,迁移性越好(一摸一样的话就是完全迁移了);复杂度低的target model的loss function方差小,他们所提出的优化框架容易找到极值点。

二、重要概念

  1. 中毒可用性攻击(poisoning availability attacks):操纵一批训练数据,以最大程度降低模型的可用性为目的
  2. 中毒完整性攻击(Poisoning integrity attacks):操纵训练过程,以改变目标样本集的分类结果为目的。
  3. 逃逸攻击(evasion attacks):操纵测试数据(不影响训练过程),以模型错误分类测试样例为目的。
  4. 迁移性(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 映射函数,限制寻优过程中样本超出合法范围

四、攻击者假设

主要是分为

  1. 白盒攻击:已知训练数据\mathcal{D},特征集合\mathcal{X},学习模型f,模型参数w
  2. 黑盒攻击:已知特征集合\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梯度方向一致的攻击向量。

逃逸攻击迁移性分析——三个核心指标

  1. 被攻击模型损失函数在样本点的梯度大小

首先,是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讲的,可以认为是白盒攻击)。这个指标不适用不同模型的比较。

  1. 梯度对齐(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值)。这个指标适用于不同模型的比较。

  1. 损失函数的变化情况
    在进行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})

实验部分还没来及的看,看完更新。

全部评论 (0)

还没有任何评论哟~