首页 文章详情

独家 | 神经网络的对抗性攻击:快速梯度符号方法的探索(附链接)

数据派THU | 517 2021-06-02 00:24 0 0 0
UniSMS (合一短信)


作者:Patrycja Jenkner

翻译:陈之炎
校对:欧阳锦

本文约2300字,建议阅读8分钟

本文将尝试一种非常流行的攻击:快速梯度符号方法,来证明神经网络的安全漏洞。


标签:对抗性攻击,神经网络


来源: neptune.ai


本文最初是由亨利·安萨(Henry Ansah)撰写,发布在Neptune的博客上。

Henry Ansah

https://www.linkedin.com/in/henry-ansah-6a8b84167


自神经网络出现以来,它已经成为了机器学习算法的信条,推动了人工智能领域的绝大部分技术突破。

神经网络能胜任那些对于人类富有挑战性的高度复杂的任务,在执行这些任务的同时,表现出非凡的鲁棒性。

那么,神经网络的鲁棒性能超越它的初衷吗?这便是本文需要寻求的答案。

我认为,工智能这一交叉领域无法保证绝对安全,事实证明,这也是少数几个神经网络失败的原因之一。

在这里,将尝试一种非常流行的攻击:快速梯度符号方法,来证明神经网络的安全漏洞。首先,来探讨不同类别的攻击。

快速梯度符号方法:

https://arxiv.org/abs/1412.6572


对抗性的攻击


根据攻击者对想要攻击的模型的了解程度,可分为几类攻击,这其中最受欢迎的两种攻击分别是白盒攻击和黑匣子攻击。

这两种攻击的目的都是通过在网络输入中加入噪声, 诱使神经网络做出错误的预测。

二者的区别在于访问整个模型架构的能力,使用白盒攻击时,可以完全访问模型架构(权重)以及模型的输入和输出。

使用黑匣子攻击时,对模型的控制程度较低,只能访问模型的输入和输出。

在执行以下两种攻击时,需要考虑到以下这些因素:

  • 分类错误,在无需考虑预测分类的情况下诱导模型做出错误的预测;

  • 源/目标分类错误,向图像中添加噪声,迫使模型预测特定的分类。


快速梯度符号法(FGSM)将白盒法和错误分类相结合,诱导神经网络模型做出错误的预测。

下面,来看看FGSM是如何工作的。

快速梯度符号法详解


从名称上听起来,FGSM似乎很令人费解,但实际上,FGSM攻击非常简单,它包括以下三个步骤:

1. 计算出正向传播后的损失;
2. 计算出图像像素的梯度;
3. 沿着使损失最大化的梯度方向微移图像的像素。

第一步,计算出正向传播后的损失,这在一般的机器学习项目中非常常见,使用一个负似然损失函数来估计模型的预测结果与实际结果的接近程度。

FGSM的特别之处是,计算图像像素的梯度,在训练到神经网络时,利用梯度确定微移的权重的方向,从而减小损失值。

与通常的做法相反,在这里,调整输入图像像素的梯度方向,使得损失值最大化。

在训练神经网络时,确定权重方向(即损失函数相对于该特定权重的梯度)的最常用方法是将梯度 (输出部分)反向传播给权重。

同样的概念也适用于FGSM,将梯度从输出层反向传播给输入图像。

在神经网络训练中,利用以下这个简单的方程式,通过微移权重来减小损失值:

new_weights = old_weights — learning_rate * gradients

同样的概念可以应用于FGSM,根据以下方程式微移图像的像素值,从而使得损失最大化:

在上述图像中,两个箭头表示两种不同的调整梯度方法。左边的方程,是训练神经网络的基本方程,计算出的梯度指向了使损失最小化的方向,神经网络训练方程中的负号确保了梯度指向相反的方向——使损失最小化的方向;右边的方程则相反,这是一个欺骗神经网络的方程。也就是说,既然想要最大化损失,则以其自然的形式来应用梯度。

这两个方程式之间有许多差异,最主要的区别是加减法。利用方程2,将像素推向与损失最小化的方向相反的方向。这样做,就是在告诉模型只做一件事——做出错误的预测!

在上图中,x表示希望模型错误预测的输入图像,图像的第二部分表示损失函数相对于输入图像的梯度。

记住,梯度只是一个方向张量(它提供有关微移方向的信息)。为了增强微移效应,用一个非常小的值epsilon乘以梯度,(上述图像中为0.007),然后将结果添加到输入图像中,就是这样!

输出结果图像可以简单表示为:


对上文做一个总结之后,接下来将做一些编码,诱导神经网络做出错误的预测:

  • 神经网络前向传播图像;

  • 计算出损失;

  • 将梯度反向传播给图像;

  • 在损失值最大的方向上微移图像的像素。


这样做之后,便相当于告诉神经网络对图像做出相反的预测。

值得注意的是,噪声对结果图像上的影响程度取决于epsilon,epsilon值越大,噪声就越明显。

增加epsilon值,也会加大网络做出错误预测的可能性。

代码


在本教程中,将使用TensorFlow来构建整个管道,将重点关注代码中最重要的部分,而不涉及与数据处理相关的部分。首先,加载TensorFlow的MobileNetV2模型:


将模型的可训练属性设置为假,这意味着无法训练模型,任何通过改变模型参数以欺骗模型的操作都会失败。

可以将图像可视化,以了解不同的epsilon值是如何影响预测以及图像的性质,下述简单的代码片段便能处理这个问题。


接下来,加载图像,通过模型运行它,并获得图像的损失梯度。


打印signed_grad显示出张量。有些张量为正,另一些带有负号,这表明梯度仅对图像施加了方向效应。将图像绘制出来,显示如下图片:


有了梯度之后,便可以在与梯度方向相反的方向上微移图像像素。

换句话说,即在损失最大化的方向上微移图像像素。在不同的epsilon值下对预测进行攻击,当epsilon=0时,表示没有运行任何攻击。


我可以得出以下结果:



注意到上面三张图片中的模式了吗?随着epsilon值的增加,噪声变得更加明显,对错误预测的置信度也随之增加。

这一方法成功地愚弄了最先进的模型,在没有对模型作任何改动的情况下,使之做出错误的预测。

在这里,通过一个小实验来确认上面讨论的概念。在这里,不将像素与epsilon相乘再和梯度相加的方法将图像的像素微移到损失最大化方向,而是利用减法,将图像的像素微移到损失最小化的方向(image-eps*signed_grad)。


测试的结果如下:


通过将图像像素微移到使损失最小化的梯度方向上,增加了模型做出正确预测的置信度,置信度从41.82%上升至97.89%。

下一步


自FGSM发明以来,还出现了其它多种具有不同攻击角度的方法,可以在这里查看它们:Survey on Attacks。

Survey on Attacks:

https://arxiv.org/abs/1810.00069


读者既可以尝试不同的模型和不同的图像,也可以从零开始构建自己的模型,并尝试不同的epsilon值。

今天的分享就到这里,谢谢阅读!
 
原文标题:
Adversarial Attacks on Neural Networks: Exploring the Fast Gradient Sign Method
原文链接:
https://medium.com/neptune-ai/adversarial-attacks-on-neural-networks-exploring-the-fast-gradient-sign-method-2ed71e87a1fe?source=topic_page---------9------------------1----------

编辑:王菁
校对:杨学俊




译者简介





陈之炎,北京交通大学通信与控制工程专业毕业,获得工学硕士学位,历任长城计算机软件与系统公司工程师,大唐微电子公司工程师,现任北京吾译超群科技有限公司技术支持。目前从事智能化翻译教学系统的运营和维护,在人工智能深度学习和自然语言处理(NLP)方面积累有一定的经验。业余时间喜爱翻译创作,翻译作品主要有:IEC-ISO 7816、伊拉克石油工程项目、新财税主义宣言等等,其中中译英作品“新财税主义宣言”在GLOBAL TIMES正式发表。能够利用业余时间加入到THU 数据派平台的翻译志愿者小组,希望能和大家一起交流分享,共同进步

翻译组招募信息

工作内容:需要一颗细致的心,将选取好的外文文章翻译成流畅的中文。如果你是数据科学/统计学/计算机类的留学生,或在海外从事相关工作,或对自己外语水平有信心的朋友欢迎加入翻译小组。

你能得到:定期的翻译培训提高志愿者的翻译水平,提高对于数据科学前沿的认知,海外的朋友可以和国内技术应用发展保持联系,THU数据派产学研的背景为志愿者带来好的发展机遇。

其他福利:来自于名企的数据科学工作者,北大清华以及海外等名校学生他们都将成为你在翻译小组的伙伴。


点击文末“阅读原文”加入数据派团队~



转载须知

如需转载,请在开篇显著位置注明作者和出处(转自:数据派ID:DatapiTHU),并在文章结尾放置数据派醒目二维码。有原创标识文章,请发送【文章名称-待授权公众号名称及ID】至联系邮箱,申请白名单授权并按要求编辑。

发布后请将链接反馈至联系邮箱(见下方)。未经许可的转载以及改编者,我们将依法追究其法律责任。



点击“阅读原文”拥抱组织



good-icon 0
favorite-icon 0
收藏
回复数量: 0
    暂无评论~~
    Ctrl+Enter