对抗样本生成算法

  • 一、FGSM(Fast Gradient Sign Method)
    • 1.FGSM基本思想
    • 2.FGSM算法流程
    • 3.FGSM扰动有效性分析
  • 二、I-FGSM/BIM(Iterative FGSM)
    • 1.I-FGSM与FGSM的区别
    • 2.I-FGSM算法流程
  • 三、ILCM(Iterative Least-likely Class Method)
    • 1.ILCM与I-FGSM的区别
    • 2.ILCM算法流程
  • 四、PGD(Projected Gradient Descent)
    • 1.PGD与I-FGSM的区别
    • 2.PGD指导对抗样本防御
    • 3.PGD指导对抗样本生成(算法流程)
  • 五、PGD与I-FGSM的区别

一、FGSM(Fast Gradient Sign Method)

1.FGSM基本思想

Fast gradient sign method缩写为FGSM,其思想来源于“随机梯度下降使得模型对于输入图像输出的损失函数值变小,从而使网络输出正确的预测,那么如果将计算得出的损失值加到输入图像上,使得网络输出的损失值变大,即可使网络趋向于输出错误的预测结果”。

2.FGSM算法流程

需要进行对抗样本生成的原始图片xorix_{ori}xori​,其标签为yyy,一个良好的分类模型MMM,分类模型MMM的参数θ\thetaθ,同时需要使用FGSM生成一个攻击噪声η\etaη。
首先使用分类模型MMM对输出xorix_{ori}xori​进行一个前向传播,可以计算ß出损失函数值∇xoriJ(θ,xori,y)\nabla_{x_{ori}} J(\theta,x_{ori},y)∇xori​​J(θ,xori​,y),因为损失计算得到的雅可比矩阵的元素大小不均,所以为了控制损失值的无穷范数(每一个像素的损失值的最大值),所以使用符号函数sign()sign()sign()提取梯度的方向,而不是用梯度的值,同时我们使用一个参数ε\varepsilonε来控制攻击噪声的幅值,满足∥η∥∞<ε\left \| \eta \right \|_\infty<\varepsilon∥η∥∞​<ε。

综上
η=εsign(∇xoriJ(θ,xori,y))(1.1)\eta=\varepsilon sign(\nabla_{x_{ori}} J(\theta,x_{ori},y)) \tag{1.1} η=εsign(∇xori​​J(θ,xori​,y))(1.1)随后,将原图加上攻击噪声η\etaη即可得到原始图片xorix_{ori}xori​的对抗样本xadvx_{adv}xadv​
xadv=xori+η(1.2)x_{adv}=x_{ori}+\eta \tag{1.2} xadv​=xori​+η(1.2)添加扰动之后的图片需要对于某些超出范围的像素进行裁剪。

FGSM虽然是白盒攻击方法,但其产生的对ß抗样本在面对黑盒模型时同样具有一定ß效ß果,现一般作为算法baseline进行比较。

3.FGSM扰动有效性分析

即分类网络线性因素越多,该网络越容易收到对抗扰动影响。

二、I-FGSM/BIM(Iterative FGSM)

1.I-FGSM与FGSM的区别

I-FGSM/BIM是FGSM的改进版,原始将FGSM所有的像素进行了一次性变化。且FGSM 只沿着梯度增加的方向添加一步扰动,而 BIM 则通过迭代的方式,沿着梯度增加的方向进行多步小扰动(该扰动幅值由公式中的α\alphaα控制),并且在每一小步后,重新计算梯度方向,相比FGSM能构造出更加精准的扰动,但代价是增大了计算量。

2.I-FGSM算法流程

X0adv=XXN+1adv=ClipX,ε{XNadv+αsign(∇XJ(θ,XNadv,ytrue))}(2.1)X_{0}^{adv}=X\\ X_{N+1}^{adv}=Clip_{X,\varepsilon}\{X_{N}^{adv}+\alpha sign(\nabla_{X} J(\theta,X_{N}^{adv},y_{true}))\} \tag{2.1} X0adv​=XXN+1adv​=ClipX,ε​{XNadv​+αsign(∇X​J(θ,XNadv​,ytrue​))}(2.1)其中,XXX是原始图片,XNadvX_{N}^{adv}XNadv​是经过N次FGSM算法处理后的对抗样本,ClipX,ε(A)Clip_{X,\varepsilon}(A)ClipX,ε​(A)函数将输入向量A中的每个元素Ai,jA_{i,j}Ai,j​裁剪到[Xi,j−ε,Xi,j+ε][X_{i,j}-\varepsilon,X_{i,j}+\varepsilon][Xi,j​−ε,Xi,j​+ε]之间,sign(∇XJ(θ,XNadv,ytrue)sign(\nabla_{X} J(\theta,X_{N}^{adv},y_{true})sign(∇X​J(θ,XNadv​,ytrue​)与原始FGSM中对应计算量相同,α\alphaα代表每次迭代图像像素更新的幅值,例如将α\alphaα设为1则每一次迭代,图像像素只更新1或者-1。

迭代的含义:每次在上一步的对抗样本的基础上,各个像素增长(或者减少)α\alphaα,然后再执行裁剪,保证新样本的各个像素都在的Xi,jX_{i,j}Xi,j​的ε\varepsilonε邻域内。这种迭代的方法是有可能在各个像素变化小于ε\varepsilonε的情况下找到对抗样本的,如果找不到,最差的效果就跟原始的FGSM一样。

三、ILCM(Iterative Least-likely Class Method)

1.ILCM与I-FGSM的区别

ILCM算法是I-FGSM的升级版,该算法将输入图像分类成原始图像最不可能被分到的类别,即在原始图片经过分类网络后分类置信度最低的类。

2.ILCM算法流程

X0adv=X,XN+1adv=ClipX,ε{XNadv−αsign(∇XJ(θ,XNadv,yLL))}(3.1)X_{0}^{adv}=X,X_{N+1}^{adv}=Clip_{X,\varepsilon}\{X_{N}^{adv}-\alpha sign(\nabla_{X} J(\theta,X_{N}^{adv},y_{LL}))\} \tag{3.1} X0adv​=X,XN+1adv​=ClipX,ε​{XNadv​−αsign(∇X​J(θ,XNadv​,yLL​))}(3.1)
yLL=argminy{p(y∣X)}(3.2)y_{LL}=arg\ min_{y}\{p(y|X)\} \tag{3.2} yLL​=arg miny​{p(y∣X)}(3.2)其中,yLLy_{LL}yLL​是原始图片最不可能被分到的类别,且该标签不会随着扰动的添加在改变,即yLLy_{LL}yLL​只与XXX有关,与XNadvX_{N}^{adv}XNadv​无关。

从公式中可以看到和FGSM无目标攻击公式的最大区别在于对抗扰动项前面的加号变成减号,同时原本的真实标签ytruey_{true}ytrue​变成yLLy_{LL}yLL​,目的是使得模型优化目标yLLy_{LL}yLL​的分类概率越来越大。

四、PGD(Projected Gradient Descent)

1.PGD与I-FGSM的区别

PGD是在BIM的基础上,对原始样本在其邻域范围内随机扰动作为算法初始输入,经多次迭代后生成对抗样本,其性能得到显著改善,具有较好的迁移性和抗破坏能力。

2.PGD指导对抗样本防御

提出该方法的论文的中心思想:

How can we train deep neural networks that are robust to adversarial inputs?如何训练模型,使其能对某一类攻击都鲁棒?

原始的网络训练方式Empirical risk minimization (ERM,经验风险最小化),即找到一组模型参数θ\thetaθ,使:
min⁡{ρ(θ)}⇔min⁡{E(x,y)∼D[L(x,y,θ)]}(4.1)\min\{\rho(\theta)\}⇔ \min\{\mathbb{E}_{(x,y)∼D}[L(x,y,\theta)]\} \tag{4.1} min{ρ(θ)}⇔min{E(x,y)∼D​[L(x,y,θ)]}(4.1)传统的网络训练方式对于常规数据分布具有良好的拟合能力,但该方法训练的模型一般无法抵御对抗样本攻击。我们将对抗扰动引入经验风险最小化范式中,使网络训练中将对抗扰动考虑在内,即找到一组模型参数θ\thetaθ,使:
min⁡{ρ(θ)}⇔min⁡{E(x,y)∼D[max⁡δ∈SL(x+δ,y,θ)]}(4.2)\min\{\rho(\theta)\}⇔ \min\{\mathbb{E}_{(x,y)∼D}[\max\limits_{\delta\in S} L(x+\delta,y,\theta)]\} \tag{4.2} min{ρ(θ)}⇔min{E(x,y)∼D​[δ∈Smax​L(x+δ,y,θ)]}(4.2)其中SSS是一组选定的扰动,也是无穷范数球的球面限制,限制对抗扰动的幅值。
(4.2)式包括了内部最大化和外部最小化,因此可以视为鞍点(min-max)问题,同时清晰地描述了鲁棒模型应该达到的目标:内部最大化目的在于寻找最优的对抗样本使分类网络训练达到很高,外部最小化目的在于寻找模型参数抵抗对抗样本的攻击。所以,最终训练得到的模型也具有稳定的对抗鲁棒性。内部最大化可以指导对抗样本的生成,而外部最大化可以指导网络训练。

3.PGD指导对抗样本生成(算法流程)

X0=XXN+1=∏X+S{XN+αsign[∇XJ(θ,XN,ytrue)]}(4.3)X^{0}=X \\X^{N+1}=\prod_{X+S}\{X^{N}+\alpha sign[\nabla_{X} J(\theta,X^{N},y_{true})]\} \tag{4.3} X0=XXN+1=X+S∏​{XN+αsign[∇X​J(θ,XN,ytrue​)]}(4.3)∏X+S\prod_{X+S}∏X+S​符号限制对抗扰动在球面范围内。其中,XXX是原始图片,XNX^{N}XN是经过N次FGSM算法处理后的对抗样本,sign(∇XJ(θ,XN,ytrue)sign(\nabla_{X} J(\theta,X^{N},y_{true})sign(∇X​J(θ,XN,ytrue​)与原始FGSM中对应计算量相同,α\alphaα代表每次迭代图像像素更新的幅值,例如将α\alphaα设为1则每一次迭代,图像像素只更新1或者-1。

同时,PGD会在对抗样本攻击前在样本中随机加入一些噪声,在进行对抗样本迭代生成,该方法被证明是一阶攻击方法中最强大的一种。

五、PGD与I-FGSM的区别

PGD的无穷范数版本基本等于I-FGSM,但PGD的无穷范数版本多了在对抗攻击之前的随机初始化,即在原始图片中添加随机噪声。PGD是I-FGSM的推广,I-FGSM是PGD的特例。PGD攻击强度大于I-FGSM。

图片来自:http://www.jsjkx.com/CN/article/openArticlePDF.jsp?id=20078

对抗样本生成算法-FGSM、I-FGSM、ILCM、PGD相关推荐

  1. 对抗样本生成算法复现代码解析:FGSM和DeepFool

    参考链接: https://www.jianshu.com/p/72c072551e10 论文地址: FGSM:地址 DeepFool:地址 导入包 import numpy as np import ...

  2. 对抗样本生成算法之BIM算法

    目录 论文主要内容 BIM算法原理 ILCM算法原理 实验效果 物理世界实验 论文 2017ICLR-Adversarial Examples in the physical world. 论文主要内 ...

  3. 《Comprehensive Privacy Analysis of Deep Learning》补完以及Deepfool对抗样本构造算法

    本文关于推理攻击领域关于深度学习的隐私性的全面分析<Comprehensive Privacy Analysis of Deep Learning>,以及介绍Deepfool对抗样本构造算 ...

  4. 对抗攻击与防御 (1):图像领域的对抗样本生成

    文章目录 1 引入 2 白盒攻击 2.1 Biggio 2.2 Szegedy's limited-memory BFGS (L-BFGS) 2.3 Fast gradient sign method ...

  5. 【综述】对抗样本生成及攻防技术综述

    作者是电子科技大学的刘小垒等,2019年发表在计算机应用研究 主要内容: 以机器学习的安全性问题为出发点,介绍了当前机器学习面临的隐私攻击.完整性攻击等安全问题,归纳了目前常见对抗样本生成方法的发展过 ...

  6. GAN 系列的探索与pytorch实现 (数字对抗样本生成)

    GAN 系列的探索与pytorch实现 (数字对抗样本生成) 文章目录 GAN 系列的探索与pytorch实现 (数字对抗样本生成) GAN的简单介绍 生成对抗网络 GAN 的基本原理 大白话版本 非 ...

  7. FGPM:文本对抗样本生成新方法

    ©PaperWeekly 原创 · 作者|孙裕道 学校|北京邮电大学博士生 研究方向|GAN图像生成.情绪对抗样本生成 论文标题: Fast Gradient Projection Method fo ...

  8. 对抗样本生成方法论文阅读笔记

    论文<针对黑盒智能语音软件的对抗样本生成方法> 一.论文中提到的相关名词解释 1.1什么是对抗样本? 所谓对抗样本就是指:在原始样本添加一些人眼无法察觉的扰动(这样的扰动不会影响人类的识别 ...

  9. 对抗样本生成的PGD和CW方法

    参考 Projected. Gradient Algorithm 预备 先记录几个常见的单词 Convex set 凸集 convergence rate 收敛速率 convex 凸函数 interp ...

  10. 基于GAN的恶意软件对抗样本生成(Python实现)

    资源下载地址:https://download.csdn.net/download/sheziqiong/85947946 资源下载地址:https://download.csdn.net/downl ...

最新文章

  1. java stream 多个filter_恕我直言你可能真的不会java第3篇:Stream的Filter与谓词逻辑...
  2. Zuul:路由转发,排除和自定义
  3. mrunit_使用MRUnit测试Hadoop程序
  4. 凹入表形式打印树形结构_【树形立方体】立方体有哪些特性?
  5. 无需安装配置,多操作系统支持数据库及性能测试
  6. 问题-关于 in []使用过程中报错 Constant expression violates subrange bounds
  7. 领域(学科)知识图谱构建心得
  8. cad页面布局快捷键_cad设置快捷键(cad快捷键在哪里修改设置)
  9. 什么是加密狗?加密狗由来
  10. Olly's Shadow
  11. 如何强制关闭进程linux,4种强制关闭Ubuntu中无响应应用程序的方法
  12. OpenCV的图像直角坐标系转极坐标系的函数warpPolar()详解,并附自己写的实现直角坐标系转极坐标系的MATLAB代码
  13. 极速入门Gamemaker编程语言
  14. 第4周项目4—程序分析(2)
  15. 开门的磁卡在哪里配_门禁卡能配吗?
  16. 大V科技谈 | VMware利用先进的自动化技术,简化混合办公模式
  17. vmware装的ubuntu的界面怎么全屏?
  18. 【附源码】计算机毕业设计JAVA支部党建工作
  19. Jupyterlab安装和配置
  20. LMS151-10100单线激光雷达与RealSense双目相机的联合标定

热门文章

  1. 100个Python实战项目(十一)如何使用 Python 获取电话号码信息?
  2. Activiti6驳回上一节点
  3. 什么是归并排序 mergeSort
  4. android视频编辑功能,万能视频编辑器
  5. 【第102期】游戏策划:在校生求职简历怎么写?
  6. Matpower疑惑解答
  7. Linux信号量详解
  8. linux svn e210003,svnadmin load 遇到E125005 的错误
  9. JavaWeb(二)框架搭建篇
  10. 基于OpenCV 人工神经网络的喷码字符识别(C++)