对抗样本学习笔记:Adversarial Examples: Attacks and Defenses for Deep Learning

(持续更新)

一、相关优质博客

1.全面入门
2.直观理解原理
3.相关补充论文
4.对抗防御分类

二、论文细节知识点

  • 1.hessian矩阵(表一):hessian矩阵实际上就是函数的二阶导矩阵
    Hessian矩阵在机器学习中的应用(拓展):即hessian矩阵能来找极值点
  • 2.RNN简单介绍,
  • 3.自编码器简单介绍:个人理解为类似无监督的学习算法,让机器训练出能保留原始数据较好特征的权值矩阵,然后每次训练当前层都先采用上一层的得到的权值矩阵。自编码器通常被用于降维或特征学习。本文里提到这是一种加解密的模型,目的是使输入和输出的差异减小,可用于压缩/解压任务。
  • 4.基本的GAN介绍里包括WGAN:改进损失函数,提供训练指标;
    GAN进一步的原理解释就是:以下摘自博主「JensLee」:
    首先这个网络模型(定义在上面),先传入生成器中,然后生成器生成图片之后,把图片传入判别器中,标签此刻传入的是1,真实的图片,但实际上是假图,此刻判别器就会判断为假图,然后模型就会不断调整生成器参数,此刻的判别器的参数被设置为为不可调整,d.trainable=False,所以为了不断降低loss值,模型就会一直调整生成器的参数,直到判别器认为这是真图。此刻判别器与生成器达到了一个平衡。也就是说生成器产生的假图,判别器已经分辨不出来了。所以继续迭代,提高判别器精度,如此往复循环,直到生成连人都辨别不了的图片。

三、论文内容节选

1.表一:(私:LaTeX练习输入)

符号 定义
x x x 没有修改、处理过的原始数据输入
l l l 分类问题中的标签, l = 1 , 2 , ⋅ ⋅ ⋅ , m l=1,2,···,m l=1,2,,m。其中 m m m是类别数
x ′ x' x 对抗样本,即修改后的数据输入
l ′ l' l 在针对性对抗样本中敌手的分类标签
f ( ⋅ ) f(·) f() 深度学习模型(对于图像分类任务来说, f ∈ F : R n → l f\in F:\mathbb{R}^n\rightarrow l fF:Rnl)
θ θ θ 深度学习模型 f f f的参数
J ( ⋅ ) J(·) J() 损失函数
η η η 原始的输入数据和修改后输入数据的差异: η = x ′ − x η=x'-x η=xx (输入的数据是相同的尺寸)
∥ ⋅ ∥ p \left\|·\right\|_p p l p l_p lp范数
∇ \nabla 梯度
H ( ⋅ ) H(·) H() 海森矩阵,二范数的一个拓展
K L ( ⋅ ) KL(·) KL() Kullback-Leibler (KL) 散度函数

2.产生对抗样本的方法
这部分可以参考机器之心的文章,这里只做些补充

  • A.L-BFGS Attack

$min_x’ c ∥ η ∥ + J θ ( x ′ , l ′ ) c\left\|η\right\|+J_θ(x', l') cη+Jθ(x,l)
s . t . x ′ ∈ [ 0 , 1 ] s.t.x'\in[0,1] s.t.x[0,1]
(公式咋居中不太会= =)

   作者表明,生成的对抗样本也可以推广到不同的模型和不同的训练数据集。 他们认为,对抗样本是由于测试数据集中从未/罕见的例子。Szegedy[22] 等人首次证明了可以通过对图像添加小量的人类察觉不到的扰动误导神经网络做出误分类。他们首先尝试求解让神经网络做出误分类的最小扰动的方程。但由于问题的复杂度太高,他们转而求解简化后的问题,即寻找最小的损失函数添加项,使得神经网络做出误分类,这就将问题转化成了凸优化过程。该问题通过线性搜索C>0的情况来找到合适的近似值。
注:凸优化问题参考;详细公式解释

  • FGSM(通俗的解释)
    首先梯度是什么?https://blog.csdn.net/u013080804/article/details/80670559梯度是用来更新拟合函数的较快迭代方法,用于更新w和b。
    具体公式解释加上这里的图二,典型的FGSM即用同沿梯度的值更新样本值,从而超出分类器的边界成为其他类。
  • FVG:改进噪声的表达式;OTCM:
  • BIM:交叉熵损失函数
  • JSMA:基于雅克比行列式的显著图攻击:通过对抗显著图找到对分类器影响程度最大的两个特征,然后将特征增加到图中,重复迭代就能完成生成对抗样本的任务。找的特征是其他类型的分类,属于目标攻击。
  • DeeoFool:二分类的线形平面可以参考文章。其他可简单参考:推而广之,在二分类问题中,当分割平面不是线性时,处理非线性的分割平面时,可以利用移动距离小,可以认为是线性的分割平。每次迭代时,该点都以很小的移动距离以梯度的方向来逼近分割平面。由于移动距离很小,可以使用该点的梯度代替参数矩阵w。多分类问题时,与二分类问题类似,只不过在迭代计算时需要考虑该点向不同分类标签移动时要选取一定距离最短的那个。
    (注:有目标,迭代。) f ( x ) = W T x + b f(x)=W^Tx+b f(x)=WTx+b是分类函数,目的是求最小的二范数扰动 η η η使得原样本分类器的结果加上 原样本到分类器界限的距离乘以分类器上法向量的值为0,即将原样本的判断结果加上扰动就可以移动到分类器的边界。也就是该研究提出鲁棒性分析的一个基石:分类器的鲁棒性:样本离分类边界越远(求均值),样本2范数越小,评测数值越大表示越鲁棒。个人理解为前面所讲的分类器增加干扰是为了判断分类边界距离,这个距离衍生的测评值可以来评价鲁棒性。
  • CPPN EA FOOL(2015):
    之前的攻击方法都是假反例攻击,即都是将数据集的图片添加扰动而是分类器识别错误。这篇论文从假正例攻击方式出发,试图使用进化算法或者梯度上升来生成一个人类识别不出,但是却能让机器深信不疑的图片。这部分的研究阐明了人类视觉与目前的DNN的差别,并提出了对DNN用于计算机视觉的泛化性的问题。(读原本论文)
    这里使用进化算法生成样本,并用多种方法,如EA算法、CPPN EA算法和梯度上升,解决多分类任务。作者用两种不同的方法编码图片,直接编码(灰度或HSV值)和间接编码(合成模式生成网络,CPPN)。在每次迭代过程中MAP-Elites就像普通的进化算法一样,选择一个随机的有机体,随机的变换他们,如果新的这个更健壮(有着更高的关于某类的可能性),就取代旧的那个有机体。通过这种方式,MAP-Elites可以在每个类中找到最好的个体。对许多对抗样本来说,CPPN就像JSMA一样,可以找到关键特征来改变深度神经网络的输出。同一进化过程中的许多图像在密切相关的类别上都是相似的。即编码完成后,进行类似进化算法的迭代,每次找出更健壮的个体取代旧个体,进而找到每类最好的个体来。
  • C&W’s Attack(2017):简单解释,;;找到稍微详细点的 l 0 , 2 , ∞ l_0,2,∞ l0,2,是基于距离测量方法。先定义了一个新的目标函数,然后分别限制 l 0 , 2 , ∞ l_0,2,∞ l0,2,范数使得产生的扰动无法被察觉。(迭代,白盒?)
  • ZOO(2017):黑盒攻击,不能直接计算梯度,通过新定义损失函数,并用对称差商估计梯度和Hessian矩阵,进而查询和评估梯度。获得了best梯度,对x进行修改,输入目标model,如果出错则保留修改后的x,否则,循环②③④直到产生best梯度最终,这个方法与C&W’s Attack有着相当的性能。对称差链接
  • Universal Perturbation(2017)
  • One Pixel Attack()
  • Feature Adversary(2016):有目标攻击,白盒。该方法不是去找到最小的扰动,而是通过计算原样本和添加扰动后,网络里第K层的特征映射的最小值来生成对抗样本。(即存在一个添加扰动后的新样本,使得第K层的输出差值最小)
  • Hot/Cold():PASS includes two stages: 1) aligning the modified
    image with the original image; 2) measuring the similarity
    between the aligned image and the original one.
    ECC增强相关系数,SSIM结构相似性; Φ ( x ′ , x ) Φ(x′,x) Φ(x,x)表示对抗样本到原始样本的一个单对应性的函数,单应性矩阵可参考:即一种映射变化。SSIM通过平均新定义的测量标准RSSIM的方式,来测量图片的显著差别度。
    PASS由 Φ ( ⋅ ) Φ(·) Φ() x x x参数和测量图片的显著差别度函数来组合定义,即对齐信息和相似度度量组合定义。接着采用新的PASS度量来描述问题,即求最小距离的测量函数值(如PASS或范数度量),使得满足一定的条件进而找到这个样本。属于有目标,迭代式的白盒攻击。hot即为目标标签,cold为原样本标签。
  • Natural GAN(2017):无目标,迭代,黑盒攻击
    传统的GAN训练难,因此采用改进后的WGAN网络来训练。训练完后的生成器G将随机噪声映射到输入域,也就是A的输入。反相器:反相器是可以将输入信号的相位反转180度、相位差:两个作周期变化的物理量的相之间的差值,个人理解为训练的’反相器’L能将输入映射到输入输入数据的内容(误)。生成器和反相器都是用来让对抗样本变得自然的东西。
    总的来说,就是训练后的WGAN使用生成器将随机噪声(G网络生成随机图片的作用)映射到输入域,通过最小化像Feature Adversary那样的内在表示距离来生成对抗性噪声,生成器再来生成对抗样本。参考博客。
  • Model-based Ensembling Attack(2017):argmin(·)表示使后面这个式子达到最小值时的x’的取值.白盒生成,黑盒攻击,可迁移。这个方法主要是通过在各个白盒模型上得到对抗样本,然后通过优化一个函数,来取得这个最优函数对应的样本,这个样本就可以迁移到别的黑盒模型中,并有目标的攻击黑盒模型,也可以无目标的攻击。
  • Ground-Truth Attack():

你可能感兴趣的:(深度学习,数据安全)