论文原文:One pixel attack for fooling deep neural networks

论文链接:https://arxiv.org/abs/1710.08864
代码:https://github.com/Hyperparticle/one-pixel-attack-keras

Adversarial Attack

对抗攻击不过多阐述,如上图所示,在原图像x0上加上一些perturbations得到x`,可以误导识别网络的识别结果。

AdvGAN

论文链接:https://arxiv.org/abs/1801.02610

简单回顾一下对抗样本领域经典之作——advGAN,将origin image x放入生成器g产生perturbations即g(x),产生的perturbations加在x上从而产生对抗样本用来误导识别网络。

在实际的训练过程中:
    advGAN的损失函数:
                       
Ladv是误导错误分类损失,值越小,说明误导对抗样本的误导性越强;Lgan是GAN的损失函数,用来提升图像的质量;Lhinge是用来控制稳定性,将perturbations限制在一定范围内。通过选取合适的α和β的值,D与G之间博弈进行梯度下降。

One Pixel Attack

可以看到,图像的实用性很强,肉眼难以察觉。

如图所示,这个4×4的表格代表着加在origin image上的perturbations,一般的attack是相当于改变整张图片的像素值来产生对抗样本,而该方法仅改变one pixel即可实现对抗攻击。如果改变的这一个pixel整好与背景颜色相差不大,那图像会非常棒。

通过损失函数来看,两者区别就是约束部分:
一般的attack:
                         
是让产生的perturbations小于L或者L-infinity normal必须要小于某个值

而one pixel attack:
                         
是让产生的perturbations的L0范数小于d(d=1),即perturbations种只有一个像素点不为0,也就是对抗样本实际上只改变了一个像素点。

现在问题来了,How do we find the exact pixel and value?有一种笨拙的办法,将224*224个像素点一一更改,找到最优的那个值。但是时间会很长,因为你每次改变你的像素值,都要放到model里去检测一下。下面作者很聪明,将差分进化算法应用了进来。

Differential Evolution

差分进化算法一共分为4部分:
初始化种群:
             
变异:
             
交叉:
             
挑选:
             
初始化种群之后,变异-挑选三个过程反复进行。初始种群内产生变异,变异种群与原种群进行交叉,再对交叉后产生的种群与原种群进行对比。会使种群不断的淘汰差的个体,留下优良个体,由优良个体组成的新一代种群继续进行此操作。大约进行6次,即可得到较好的种群,可从中挑选最优的值作为最终的结果。

使用DE 有什么好处:
1.有更高的几率可以找到全局最优点。因为变异产生的种群具有多样性的特点且至少使用了一组候选方案。
2.需要目标模型很少的信息,相比于FGSM来说,DE不需要梯度信息,因此不需要model太多细节。

DE具体到one pixel attack上要如何应用?

即初始化种群的时候,我们种群中的每个个体都是(x,y,R,G,B)这样一个5维的向量,去进行种群的一代又一代的进化。

文章图片部分来源于李宏毅YouTube视频。

如有问题,或论文下载,请关注公众号和qq群,欢迎大家进行技术交流,我们还有一些”黑“技术待你探索:

One Pixel Attack(对抗攻击) —— 使用差分进化算法寻找最优解相关推荐

  1. Python实现DE差分进化算法优化支持向量机分类模型(SVC算法)项目实战

    说明:这是一个机器学习实战项目(附带数据+代码+文档+视频讲解),如需数据+代码+文档+视频讲解可以直接到文章最后获取. 1.项目背景 差分进化算法(Differential Evolution,DE ...

  2. 【李宏毅机器学习】adversarial attack 对抗攻击

    note: 对抗训练(adversarial training)通过对抗攻击(adversarial attack)的手段,即生成对抗样本(对部分原样本加入微小的扰动,可能导致误分类),是的NN能适应 ...

  3. Adversary Attack(对抗攻击)论文阅读笔记

    引言: 最近开始学习Adversary Attack(对抗攻击)有关的内容,于是便从Ian GoodFollow的论文开始读起,后面每篇博客都会列举三篇的阅读笔记,来记录学习的经历.如果有讲得不到位或 ...

  4. 2018-4-7 差分进化算法

    首先差分进化算法是进化算法的一种,它包括变异,交叉,选择,边界检测. 来源: 差分进化算法_百度百科 https://baike.baidu.com/item/%E5%B7%AE%E5%88%86%E ...

  5. 差分进化算法_差分进化算法

    差分进化算法(Differential Evolution Algorithm,DE)是一种高效的全局优化算法.是一种模拟生物进化的随机模型,通过反复迭代,使得那些适应环境的个体被保存了下来.它的进化 ...

  6. 优化算法:粒子群算法,遗传算法,差分进化算法

    目录 1.粒子群算法(PSO) 2.遗传算法 3.差分进化算法 1.粒子群算法(PSO) 整个粒子群优化算法的算法框架如下: step1种群初始化,可以进行随机初始化或者根据被优化的问题设计特定的初始 ...

  7. 差分进化算法_OPTIMUS软件功能特性介绍【全局优化算法模块】

    导读:面向应用工程师的商业软件咨询.自研软件定制开发服务的仿真公众号,点击关注进入菜单,查看更多精彩内容. OPTIMUS提供自适应进化算法(Self-adaptive Evolution),从用户给 ...

  8. 遗传算法 差分进化算法 粒子群优化算法区别

    一 遗传算法 遗传算法(GA)作为一种经典的进化算法,自 Holland提出之后在国际上已经形成了一个比较活跃的研究领域. 人们对 GA 进行了大量的研究,提出了各种改进算法用于提高算法的收敛速度和精 ...

  9. 差分进化算法_基于差分进化的水泥烧成系统动态优化算法

    基于差分进化的水泥烧成系统动态优化算法 郝晓辰, 冀亚坤, 郑立召, 史鑫, 赵彦涛 燕山大学电气工程学院,河北 秦皇岛 066004 [摘  要]针对水泥烧成过程的资源浪费以及难以建立有效数学机理模 ...

  10. 差分进化算法_特邀嘉宾 | 科普差分进化算法(创新奇智运筹优化算法工程师朱小龙博士)...

    文案:段克邪 排版:随心390 hello,大家好.各位可点击此处,访问公众号官方店铺.谨防上当受骗,感谢各位支持! 今天我们有幸请到创新奇智运筹优化算法工程师朱小龙博士为大家科普差分进化算法,本次推 ...

最新文章

  1. java864位官网_jdk8 64位下载-jdk8 64 bit windows官方版 - 极光下载站
  2. linux mmap内存文件映射
  3. bzoj 4547: Hdu5171 小奇的集合
  4. storyboard或者Xib给View设置边框属性(颜色,宽度,圆角)
  5. python mainloop bind_Python3 tkinter基础 Frame bind 捕捉多键同时按
  6. C# 多重overide
  7. html高度没有滚动条,Div扩展了页面高度,但没有滚动条
  8. InVEST model中生境质量
  9. CSS基础「七」精灵图 \ 字体图标 \ 三角 \ 用户界面样式 \ 页面初始化
  10. 米斯特白帽培训讲义 漏洞篇 提权
  11. 将packages/apps/下的app导入eclipse
  12. 【莫队算法】【权值分块】bzoj3585 mex
  13. lightoj1234 打表技巧:分块打表
  14. Java 使用 OpenCV (二)之 视频编解码器
  15. 谷歌浏览器打开页面出现(任何网页包括设置)崩溃解决方法。
  16. C#读取网卡地址的几种方法
  17. java -基于反射和XML,将XML内的数据输出
  18. shell检测连接数最多的IP
  19. 月入3k和月入3w的女生有什么区别?
  20. FICO-笔记_20211019_002

热门文章

  1. 伽卡他卡学生端使用问题
  2. 郑州大学计算机考研944,2020年郑州大学944计算机技术专业基础综合考研复习资料...
  3. 实践:前后端分离实现JWT登录验证,包括前、后端配置
  4. 3.1 mocha使用allure报告
  5. 用JavaScript实现京东登录页面的用户密码显示或者隐藏功能
  6. 如何成为很厉害的程序员?- 读《精进》
  7. PHP语言编程魔方,编程和魔方
  8. make_blobs方法的使用
  9. 企业如何进行客户细分 客户细分的方法和类型
  10. 地球子午圈和卯酉圈曲率半径计算公式