对The Limitations of Deep Learning in Adversarial Settings理解

The Limitations of Deep Learning in Adversarial Settings理解

对抗设置中深度学习的局限性
摘要 - 深度学习利用大型数据集和计算上有效的训练算法,在各种机器学习任务中胜过其他方法。然而,深度神经网络训练阶段的不完善使得它们容易受到对抗样本的攻击:由对手制造的输入旨在导致深度神经网络错误分类。在这项工作中,我们将对手的空间形式化为深度神经网络(DNN),并引入一类新的算法来基于对DNN的输入和输出之间的映射的精确理解来制作对抗样本。在计算机视觉的应用中,我们表明我们的算法能够可靠地生成由人类受试者正确分类的样本,但在特定目标中由具有97%对抗成功率的DNN进行错误分类,而仅平均修改每个样本的输入特征的4.02%。 然后,我们通过定义硬度测量来评估不同样本类别对对抗性扰动的脆弱性。 最后,我们通过定义良性输入和目标分类之间距离的预测测量来描述初步工作,概述对抗对抗样本的防御。
本文旨在寻找一个生成对抗样本的方法
一、简介
什么是对抗样本?
对抗性示例是神经网络的输入导致来自网络的不正确输出。不同于错误分类,通过添加非常少量精心构造的噪声来产生对抗性实例,但是具有和不具有扰动的图象在人眼看来完全相同。下图为FGSM(Goodfellow)产生的对抗性实例:
在这里插入图片描述
大型神经网络,在2000年代中期重铸为深度神经网络(DNN),,通过在许多任务中超越其他方法改变了机器学习环境。这可以通过降低训练的计算复杂性的进步来实现. 这种越来越多的深度学习的使用正在激励对手操纵深度神经网络,从而迫使输入错误分类。
对抗性样本是一种输入,旨在使学习算法错误分类。对抗样本是通过添加失真来从良性样本中创建的,这些失真利用了来自有限训练集的DNN所学到的不完全泛化,以及用于构建DNN的大多数组件的基本线性。这些技术利用通过训练算法计算的梯度:而不是像通常那样使用这些梯度更新DNN参数,渐变用于更新原始输入本身,随后由DNN错误分类

新的方法:用于针对任何前馈(非循环)DNN创建对抗样本,并在输出分类的完整性方面形式化深度学习的威胁模型空间。 与上面提到的先前方法不同,我们计算从输入到输出的直接映射,以实现明确的对抗性目标。 此外,我们的方法仅改变输入特征的(通常很小的)部分,从而减少源输入的扰动。 它还使对手能够应用启发式搜索来查找导致目标错误分类的扰动(扰动输入以产生特定的输出分类)。
在这里插入图片描述
X是原始特征向量,Y是输出向量,δx是干扰向量。
对于同样的
对于同样的输入,添加不同的干扰可以导致分类结果实现目标分类类别中的每一种。

考虑以下问题来形式化深度学习的安全性:
(1)“对深度神经网络进行攻击所需的最小知识是什么?”
(2)“如何识别易受攻击或抗性的样本? “
(3)”人类如何看待对抗性样本?“

本文的贡献:
(1) 针对分类目标和能力,针对分类DNN正式确定了对手的空间。 在这里,我们可以更好地了解攻击者的能力如何限制攻击策略和目标。
(2) 仅使用DNN架构的知识引入了一类新的算法,用于制作对抗样本。算法(1)利用前向导数来告知DNN的学习行为,以及(2)构建对抗显着性图,从而实现对抗性样本的有效探索 空间。
(3) 使用广泛使用的计算机视觉DNN验证算法。 我们定义并测量样品变形和源 - 目标硬度,并探索对抗对抗样品的防御。 我们通过研究人类对扭曲样本的感知来得出结论。

二、深度学习中的威胁模型分类
1、DNN(Deep Neural Networks)
DNN(Deep neural network)是一种前馈人工神经网络,在输入与输出层之间包含了多于一层的隐含层。
在这里插入图片描述
2、对抗目标
深度学习系统的对手试图提供输入X *,导致输出分类不正确。考虑影响分类器输出完整性的四个目标:
1) 降低信度 - 降低输出信度分类(从而引入类歧义)
2) 混合分类 - 将输出分类改变为与原始类别不同的任何类别
3) 有针对性的错误分类 - 产生强制输出分类为特定目标类别的输入。
4) 源/目标错误分类 - 强制特定输入的输出分类为特定目标类。

三、本文提出的方法
与之前的基于提高原始类别标记的损失函数或者降低目标类别标记的损失函数的方式不同,这篇文章提出直接增加神经网络对目标类别的预测值。换句话说,之前的对抗样本的扰动方向都是损失函数的梯度方向(无论是原始类别标记的损失函数还是目标类别标记的损失函数),该论文生成的对抗样本的扰动方向是目标类别标记的预测值的梯度方向,作者将这个梯度称为前向梯度(forward derivative)。即:
在这里插入图片描述
前向梯度是由神经网络的目标类别输出值对于每一个像素的偏导数组成的
在这里插入图片描述
该算法主要是迭代地修改X,直到达到扰动最大值或生成成功的对抗样本。迭代的步骤为首先生成雅可比矩阵,然后调用saliency_map方法,其实这个方法可以理解为根据雅可比矩阵和目标分类为输入向量的每一个特征打分,接下来选择分数最大者进行扰动。这启发了我们通过检查每一个像素值对于输出的扰动,从而选择最合适的像素来进行改变。 在本文中,作者提供了一个启发式的选择方式,称为显著映射(saliency map)S(X,t):(X是样本,t是目标分类)
在这里插入图片描述
在增加Xi的情况下时,希望Ft对Xi的导数越大越好且为正数,这样增加相应的Xi,Ft就会变大,这样就有助于最后分类到t的可能性,同理希望对不是t的导数越小越好且为负数。
即每一步迭代选择的扰动像素都能够尽可能的增大目标类别的输出值,并且总体对其余的类别标记产生一个负影响(即减少输出值)。
但是实际的实验中发现,找到满足以上条件的像素点是很困难的,因此作者提出寻找一组像素对而不是选择单个像素点: (选一对“对输出影响最大”的像素对,将其像素值分别修改为1和0)。
提出了一种修改样本的通用算法,以便DNN产生任何所需的对抗性输出。
这篇文章主要提出一个根据雅可比矩阵(雅可比矩阵是一阶偏导数以一定方式排列成的矩阵),即前向导数生成对抗样本的方法。论文一开始从一个简单神经网络入手,学习一个AND计算F(X) = x1 and x2,即0.7^0.3=0, 0.8^0.6=1。训练后,可得出下图:
在这里插入图片描述
简化多层感知器,输入X=(x1,x2),隐藏层(h1,h2),输出o。

具体算法如下:
在这里插入图片描述
对于目标分类t,我们希望其对应的偏导数越大越好(正),而对于非目标分类,我们希望其偏导数越小越好(负),这样便于减少对抗样本的搜索域。
在这里插入图片描述在这里插入图片描述

蓝色区域对应输出为0,黄色区域对应输出为1。
接下来,对F(x)进行求导,因为呈对称,所以对一个求导就可以了,下图为对x2求导得出的结果图:
在这里插入图片描述
在尖峰附近,即在导数相对较大的地方,如X=(1,0.37)处,考虑X*=(1,0.43),差异很小,但F(X)=0.11,F(X*)=0.95,即成功生成对抗样本。由此可以得到的启发是:
(1)小差异可导致结果误分类
(2)不是所有的输入域都有助于找到对抗样本,如在(0,0)处扰动得很大才有可能会产生影响
(3)使用前向导数的方法可以减少对抗样本的搜索域

四、质量度量方法
1、硬度度量
度量深度神经网络中,哪一个类别对(s,t)(s为原始类别标记,t为目标类别标记)的扰动成功率最高,将平均失真率ε(即改变的像素点数目/总数目)相对于其成功率τ归一化:
在这里插入图片描述
而在实际计算中,选择一组最大失真值ΥkΥk对应的成功率来近似计算积分:
在这里插入图片描述
作者在实验中选择的是一组固定的最大失真度集合(K=9K=9)来计算在最大失真度情况下的扰动成功率:Υ∈{0.3,1.3,2.6,5.1,7.7,10.2,12.8,25.5,38.3}%
在这里插入图片描述
较暗区域对应较难实现的源-目标类对

2、对抗距离
对抗距离是通过归一化Saliency map得到的:
在这里插入图片描述
其中I是示性函数。显然对抗距离越接近1,原始样本就越难更改为目标类别标记。

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值