最近关注Adversarial Machine Learning(AML),觉得这个方向挺有意思,看了几个AML中的经典算法,有点小的理解写下来加深记忆。由于第一次写CSDN博客,有错误的地方欢迎指出,共同讨论,而且比较懒,有些解释的图是画得不好,要耐心看。

在我看来,AML(Adversarial Machine Learning)最终的研究目的和传统的安全领域一样,还是提高整个系统的稳定性。文献【1】中较早的指出Neural Netwroks(NN) 对刻意设计的攻击样本很敏感,并提出了一种攻击方法L-BFGS,并且文章指出针对NN的adversarial sample (AS)之所以存在归因于NN的结构复杂性。不过,我觉得FGSM,DeepFool中的角度可能更make sense。

之所以把这两个方法放在一起分析是因为在我看来它们都是基于同一种假设条件下进行的,即分类器的决策函数都是局部可线性逼近线性的,或者说分类都是很平滑的。也就是说,如果在决策函数的某一个点做taylor展开的话,该点的切平面和与决策函数在该点的某一邻域内是大致相似的,如图1,在二维sigmoid函数在红点处的切平面在该点处的附近与函数本身是很相似的。事实上文献【3】中也指出了现有的Deep Networks 为了训练的方便,都会选择比较线性的激活函数,或者说局部曲率很低的激活函数,如Sigmoid,Rulu等。而FGSM(Fast Gradient Sign Method)和 DeepFool 正是在这样的先验假设下展开的。下面分别分析一下两种方法。

图1

FGSM

在最开始对传统的分类器做攻击时候,大家的motivation都是差不多的。借用文献【2】中提出的Taxonomy概念,攻击场景(Attack Scenario)中的一个重要组成部分就是攻击策略(Attack strategy)。说白了,就是要怎样去model这个攻击场景。由于大多数分类器都是通过最大化分类器在训练集上的预测概率,或者最小化预测值与标签的loss来构建优化模型的目标函数,所以一个自然的想法就是通过对一个clean样本 x(legal sample)加上一个扰动 η 来使得分类器的预测概率发生改变,或者让loss的值尽可能的大,即f(x)f(x+r),或 max_{η} loss(x+η),同时扰动本身要限制在一个人眼无法察觉,或者说对legal sample不产生较大破坏。因此通常会对r 施加范数的限制 (不同的范数有不同的效果),即 ||η||<ε. FGSM【3】采用最大化损失函数的方式生产扰动。显然,扰动发生在梯度方向是最有效的,而FGSM中的一个合理的假设在于,现有的图像数据的存储方式都是离散的,因此对于一个在同一方向的ε扰动是不会对视觉产生较大影响的。因此,FGSM通过在legal sample x 的梯度方向平移ε的量级来得到扰动η。于是, 最终的攻击样本(AS) attack_x=x+η,这刚好等价于对扰动施加无穷范数限制,文章中通过线下模型说明了这一点。综上,可以理解FGSM中的如下公式了,

其中,sign(▽J) 刚好描述了点处loss函数的梯度方向,ε为在该方向上的偏移量级。直观地,我们从图1可以看出,当x (红点)朝着梯度方向(红线)移动时,此时sigmoid为激活函数的分类器的损失函数会增大,x 会朝相反的预测结果移动。 那么问题来了,FGSM之所以对决策函数做出线性假设或近似线性假设的原因在于必须保证x处的梯度方向始终指向损失函数增大的方向,显然,当激活函数(或决策函数)是线性的时候,梯度是恒定的,因此FGSM总是有效的。不过,这一个假设视乎很合理,因为现在为了网络训练的方便,大家都会选择sigmod, rulu这种线性的或者近似线性的激活函数。值得指出的是,FGSM中最大的问题就是量级ε是人工选择的。所以,当决策函数不是线性的时候,FGSM就不好使了。原因如下图(白板画的,麻烦耐心看):

选择ε1会产生成果的攻击,但是较大ε2则不会。

DeepFool

针对FGSM,DeepFool系统的解决了FGSM中的问题,并且得出了适应性更强的攻击方法。首先,DeepFool【4】解决了FGSM中扰动系数ε的选择问题,并且通过多次线性逼近实现了对一般非线性决策函数的攻击。首先对于扰动系数的选择问题,DeepFool考虑线性决策函数的情形,通过求解如下优化问题得出满足条件的最优扰动(即FGSM中的η)


上述优化问题是可以得到解析形式的解的,即(3)中的最后一项。实际上,在线性决策函数的情形下,w恰好是决策函数的梯度方向,而前面的标量f(x0)/||w||正好对应了最优的扰动系数ε,由于DeepFool的攻击策略为最大化分类器的置信度,因此,legal sample x0 朝着梯度的反方向偏移,从而最小化分类器置信度。值得注意的是,(3)中的最优解r是满足f(x0+r)=0,因此,最后的adversarial sample为attack_x=x0+r+σ,其中σr方向上的微小偏移使得f(x0+r+σ)<0

   上述情形同样是针对线性决策函数的攻击方法,对于非线性函数,DeepPool采用多次线性逼近的形式完成,其具体算法如下

通过下图可以比较好的理解上述算法(画的有点糙,论文(4)中有二维情形的例子,可能没有一维的好理解)针对上述非线性的决策函数,DeepFool通过在每一次迭代,在迭代点处对决策函数做线性逼近,将问题简化为线性决策函数攻击的问题,最后叠加每次攻击的扰动方向r得到最终的结果。值得注意的是,该迭代的收敛性没有在文中证明,但是给出了一个reference可能可以证明DeepFool的收敛性。

对于多分类的情况实际上是类似的,实现针对线性多分类情形,可以通过求解如下优化问题得到最优扰动

这个问题的求解可以对每一个k分别求解(直接转化为等式不等式约束的优化问题,拉格朗日函数求解)得出最优的r_k,然后对所有k找出最小的扰动r_{l{x0}}


如下图,最优的扰动即x0到决策面F3的垂直移动

这样,对于非线性的情形,每一次迭代都采用一个由多个决策面F1,F2,...,Fn组成的凸多面体去逼近(即在该点处对每一个决策函数做一阶taylor展开),即每一次迭代都转化为一个对多个线性决策函数攻击的问题,最后求出最优扰动。


REFERENCE

【1】Szegedy C, Zaremba W, Sutskever I, et al. Intriguing properties of neural networks[J]. arXiv preprint arXiv:1312.6199, 2013.

【2】Huang L, Joseph A D, Nelson B, et al. Adversarial machine learning[C]//Proceedings of the 4th ACM workshop on Security and artificial  intelligence. ACM, 2011: 43-58.

【3】Goodfellow I J, Shlens J, Szegedy C. Explaining and harnessing adversarial examples[J]. arXiv preprint arXiv:1412.6572, 2014.

【4】Moosavi-Dezfooli S M, Fawzi A, Frossard P. Deepfool: a simple and accurate method to fool deep neural networks[C]//Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition. 2016: 2574-2582.





Adversarial Machine Learning 经典算法解读(FGSM, DeepFool)相关推荐

  1. 对抗机器学习(Adversarial Machine Learning)发展现状

    目录 1. 了解对手 1. 1 攻击目标(Goal) 1. 2 知识储备(Knowledge) 1.3 能力限制(Capability) 1.4 攻击策略(Strategy) 2. 学会主动 2.1 ...

  2. Poisoning Attack in Adversarial Machine Learning

    Poisoning Attack in Adversarial Machine Learning Data Poisoning攻击区别于Evasion攻击,是攻击者通过对模型的训练数据做手脚来达到控制 ...

  3. DECISION-BASED ADVERSARIAL ATTACKS: RELIABLE ATTACKS AGAINST BLACK-BOX MACHINE LEARNING MODELS 论文解读

    Abstract 这篇文章中我们介绍了Boundary Attack, a decision-based attack that starts from a large adversarial per ...

  4. 从《西部世界》到GAIL(Generative Adversarial Imitation Learning)算法

    原文链接:https://blog.csdn.net/jinzhuojun/article/details/85220327 一.背景 看过美剧<西部世界>肯定对里边的真实性(fideli ...

  5. 联邦学习入门(二)-Practical Secure Aggregation for Privacy-Preserving Machine Learning论文算法详解

    本文介绍了一种实用的安全聚合算法(Secure Aggregation Protocol),主要参考了Google的论文Practical Secure Aggregation for Privacy ...

  6. 增强学习Reinforcement Learning经典算法梳理1:policy and value iteration

    前言 就目前来看,深度增强学习(Deep Reinforcement Learning)中的很多方法都是基于以前的增强学习算法,将其中的value function价值函数或者Policy funct ...

  7. 经典算法解读:一文看懂支持向量机以及推导

    本文是吴恩达老师的机器学习课程[1]和<统计学习方法>[2]的笔记和代码复现部分(支持向量机). 作者:黄海广[3] 备注:笔记和作业(含数据.原始作业文件).视频都在 github 中下 ...

  8. 增强学习Reinforcement Learning经典算法梳理2:蒙特卡洛方法

    1 前言 在上一篇文章中,我们介绍了基于Bellman方程而得到的Policy Iteration和Value Iteration两种基本的算法,但是这两种算法实际上很难直接应用,原因在于依然是偏于理 ...

  9. Machine Learning:如何选择机器学习算法?

    2019独角兽企业重金招聘Python工程师标准>>> Machine Learning Algorithms Overview 关于目前最流行的一些机器学习算法,建议阅读: Mac ...

  10. ML:MLOps系列讲解之《基于ML的软件的三个层次之02 Model: Machine Learning Pipelines 2.1~2.4》解读

    ML:MLOps系列讲解之<基于ML的软件的三个层次之02 Model: Machine Learning Pipelines 2.1~2.4>解读 目录 <基于ML的软件的三个层次 ...

最新文章

  1. html轮播图速度加快,各位老师,为什么我用jq写的轮播图,移入移出速度会加快...
  2. [首次分析]PHP写框架
  3. Centos 7安装与配置chef
  4. CodeForces - 1355E Restorer Distance(三分)
  5. UNION JOIN 连接表
  6. hive sql 优化
  7. mac 命令失效问题 命令不存在 : command not found
  8. azure机器学习_Azure机器学习中的预测
  9. 32f4怎样同时采集两个adc_硬件-TI-ADC
  10. typora输入LATEX数学公式语法总结
  11. RiPlus子主题V1.3-Unreal[幻]主题WordPress主题模板美化wp主题源码
  12. Command rejected: Bad VLAN list
  13. 网站被挂马了怎么办?
  14. 软件项目管理作业(一)
  15. 位运算::Bitwise operation
  16. linux查看附近可用wifi并进行通过命令行连接
  17. 数数小绵羊(四刷) kkmd66
  18. 永恒之蓝勒索漏洞复现
  19. STM32实现俄罗斯方块
  20. stegsolve 的安装使用

热门文章

  1. 数学之美笔录(3):隐含马尔可夫模型(详解)
  2. python模拟计算器程序代码_python作业:模拟计算器
  3. 利用css构建三角形(正三角,倒三角,左/右三角)
  4. [office软件教程] 如何调整Word文档的光标大小?调整Word光标方法
  5. 与其说我害怕成为普通人,还不如说我害怕生活,害怕找不到一种自己喜欢的方式去度过人生...
  6. 2021年安全员-A证(江西省)新版试题及安全员-A证(江西省)考试试卷
  7. 【LLS-Player】ninja : rtdSDK构建
  8. @Results用法总结
  9. 用正负介子对撞产生的暗能量打开亚空间的机器
  10. 计算机组装中如何看硬件型号,如何查看主板型号?(三种方法!)