最新公告
  • 欢迎您光临欧资源网,本站秉承服务宗旨 履行“站长”责任,销售只是起点 服务永无止境!立即加入我们
  • 快速梯度符号法(FGSM)将白盒法和错误分类相结合

    本文最初由 Henry Ansah 撰写并发布在 Neptune 的博客上。

    亨利·安萨

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

    神经网络能够执行对人类具有挑战性的高度复杂的任务,同时以非凡的鲁棒性执行这些任务。

    那么,神经网络是否比预期的更健壮?这就是本文寻求的答案。

    我不认为人工智能的交叉点可以保证绝对安全,事实证明这是神经网络失败的少数原因之一。

    在这里,我们将尝试一种非常流行的攻击:快速梯度表示法,以证明神经网络的安全漏洞。首先,让我们探索不同类别的攻击。

    快速梯度表示法:

    对抗性攻击

    根据攻击者对他们想要攻击的模型的了解程度,有几种类型的攻击,其中最流行的两种是白盒攻击和黑盒攻击。

    两种攻击都旨在通过向网络输入添加噪声来欺骗神经网络做出错误的预测。

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

    使用黑盒攻击,对模型的控制较少,只能访问模型的输入和输出。

    执行以下两种攻击时需要考虑以下因素:

    错误分类,导致模型在不考虑预测分类的情况下做出错误的预测;

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

    快速梯度符号学 (FGSM) 结合了白盒方法和错误分类,以诱导神经网络模型做出不正确的预测。

    接下来神经网络作为损失函数,我们来看看FGSM是如何工作的。

    快速梯度表示法详解

    从名字上看,FGSM 可能看起来很复杂,但实际上,FGSM 攻击非常简单,它由以下三个步骤组成:

    1. 计算前向传播后的损失;

    2. 计算图像像素的梯度;

    3. 沿着梯度方向微调图像的像素,使损失最大化。

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

    FGSM的特殊之处在于计算图像像素的梯度,在训练神经网络时利用梯度来确定nudge权重的方向,从而降低损失值。

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

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

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

    在神经网络训练中,通过使用这个简单的等式轻推权重来降低损失值:

    new_weights = old_weights — learning_rate * gradients

    同样的概念可以应用到 FGSM 上,根据以下等式微调图像的像素值,以最大化损失:

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

    这两个等式之间有许多不同之处,主要区别在于加法和减法。使用等式 2,将像素推向与损失最小的相反方向。通过这样做,你告诉模型只做一件事——做出错误的预测!

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

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

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

    总结完以上,我们来做一些编码,诱导神经网络做出错误的预测:

    神经网络前向传播图像;

    计算损失;

    将梯度反向传播到图像;

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

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

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

    增加 epsilon 值也会增加网络做出错误预测的概率。

    代码

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

    将模型的 trainable 属性设置为 false 意味着无法训练模型,并且任何通过更改参数来欺骗模型的操作都将失败。

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

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

    打印 signed_grad 会显示张量。有些张量是正数,有些是负号,表明梯度只对图像产生方向性的影响。绘制图像显示如下图:

    一旦你有了渐变,你可以在渐变的相反方向微调图像像素。

    换句话说,将图像像素推向最大化损失的方向。预测以不同的 epsilon 值受到攻击,当 epsilon=0 时,不运行攻击。

    我可以得到以下结果:

    注意到上面三幅图中的图案了吗?随着 epsilon 值的增加,噪声变得更加明显,并且对错误预测的置信度增加。

    这种方法成功地欺骗了最先进的模型,使其做出不正确的预测,而无需对模型进行任何更改。

    在这里,上面讨论的概念通过一个小实验得到了证实。在这里,不是将像素乘以 epsilon 并添加梯度,而是将图像的像素朝损失最大化的方向轻推,但通过减法将图像的像素朝最小化损失的方向轻推 (image-eps *signed_grad )。

    测试结果如下:

    通过在最小化损失的梯度方向上轻推图像像素,模型做出正确预测的置信度从 41.82% 增加到 97.89%。

    下一步

    自 FGSM 发明以来,还有其他几种不同攻击角度的方法,可以在此处查看:攻击调查。

    攻击调查:

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

    站内大部分资源收集于网络,若侵犯了您的合法权益,请联系我们删除!
    欧资源网 » 快速梯度符号法(FGSM)将白盒法和错误分类相结合

    常见问题FAQ

    免费下载或者VIP会员专享资源能否直接商用?
    本站所有资源版权均属于原作者所有,这里所提供资源均只能用于参考学习用,请勿直接商用。若由于商用引起版权纠纷,一切责任均由使用者承担。更多说明请参考 VIP介绍。
    提示下载完但解压或打开不了?
    最常见的情况是下载不完整: 可对比下载完压缩包的与网盘上的容量,若小于网盘提示的容量则是这个原因。这是浏览器下载的bug,建议用百度网盘软件或迅雷下载。若排除这种情况,可在对应资源底部留言,或 联络我们.。
    找不到素材资源介绍文章里的示例图片?
    对于PPT,KEY,Mockups,APP,网页模版等类型的素材,文章内用于介绍的图片通常并不包含在对应可供下载素材包内。这些相关商业图片需另外购买,且本站不负责(也没有办法)找到出处。 同样地一些字体文件也是这种情况,但部分素材会在素材包内有一份字体下载链接清单。
    欧资源网
    一个高级程序员模板开发平台

    发表评论