大白话之One Pixel Attack for Fooling Deep Neural Networks论文讲解
目录
- 1 引言
- 2 算法原理
- 2.1 第一印象
- 2.2 初步设想
- 2.3 在此之前
- 2.4 承上:what is differential evolution(差分进化)
- 3 总结
- 附录
1 引言
- 使用单像素点愚弄深度神经网络。2017 CVPR 论文地址
- 对抗样本生成的一种策略。
- 本文采取一种独立思考的方式,来理解与讲解这篇论文。
2 算法原理
2.1 第一印象
- what the fuck?改变一个像素点就能使网络分类错误?想法great,但怎么可能
- 逐渐冷静。。。单像素点真的能攻击成功?
2.2 初步设想
- Can we:貌似 ”goodfellow的模型高度线性化,使得图像会有扰动放大效应“ 为改设想提供了一定的理论依据。
- How:假设确实改动某个像素点的值能实现对抗攻击。那如何去做?
- Ask:既然只是更改一个像素点,自然而然,我们想到暴力求解可不可行?
- Answer:如果用cifar数据集,一张图片意味着要进行 32 * 32 * 3 * 256次迭代。代价太大,不可行。
- Ask:那梯度求解方式?
- Answer:类似FGSM用梯度求解,是建立在基本改变图片全部像素点的前提下。这种场景和只改动单个像素点差远了。
- Ask:那进化算法总行吧?既能实现黑盒攻击,问题解空间也不大。进化算法:你直接报我身份证得了。想要详细与进化算法深入接触?跳转
- Focus(注意了哈):作者提出使用差分进化算法来求解。恭喜你,最终还是说对了。
2.3 在此之前
- 先抛开差分进化不管。首先 Focus on 优化目标,即我们要找的那个像素点应该满足何种标准。
max e ( x ) f a d v ( x + e ( x ) ) s u b j e c t t o ∣ ∣ e ( x ) ∣ ∣ 0 ≤ d \max_{e(x)} f_{adv}\left(x+e(x)\right)\\ subject\; to \qquad ||e(x)||_0\le d\\ e(x)maxfadv(x+e(x))subjectto∣∣e(x)∣∣0≤d
f : 模 型 的 类 别 概 率 输 出 层 d : 改 变 像 素 点 的 个 数 该 算 法 中 d = 1 a d v : 待 攻 击 成 的 类 别 该 算 法 是 实 现 有 目 标 攻 击 f:模型的类别概率输出层\\ d:改变像素点的个数\\ 该算法中 d = 1\\ adv:待攻击成的类别\\ 该算法是实现有目标攻击 f:模型的类别概率输出层d:改变像素点的个数该算法中d=1adv:待攻击成的类别该算法是实现有目标攻击
- 如上公式,简而言之就是希望待攻击成的类别的置信度尽可能的大
2.4 承上:what is differential evolution(差分进化)
1. 定义求解空间
- 假设是cifar10数据集,其解空间就是:
( x , y , R , G , B ) s u b j e c t t o x , y ∈ [ 0 , 31 ] ; R , G , B ∈ [ 0 , 255 ] (x,y,R,G,B)\\ subject\;to\quad x,y \in[0,31]; R,G,B\in [0,255] (x,y,R,G,B)subjecttox,y∈[0,31];R,G,B∈[0,255] - 视觉上的解空间如下图:
2. 初始化解集
- 使用均匀分布 U ( 1 , 32 ) U(1,32) U(1,32)来生成 x , y x,y x,y,使用正态分布 N ( μ = 128 , σ = 127 ) N(\mu =128,\sigma=127) N(μ=128,σ=127)来生成 R , G , B R,G,B R,G,B
- 以如上方式生成400个候选解集
3. 生成解集
x i ( g + 1 ) = x r 1 ( g ) + F ( x r 2 ( g ) − x r 3 ( g ) ) , r 1 ≠ r 2 ≠ r 3 x_i(g+1)= x_{r1}(g)+F\left( x_{r2}(g)-x_{r3}(g)\right), \\r1\neq r2\neq r3\\ xi(g+1)=xr1(g)+F(xr2(g)−xr3(g)),r1=r2=r3
- 其中, x i x_i xi 是候选解集中的一个元素, r 1 , r 2 , r 3 r1,r2,r3 r1,r2,r3是在候选解范围的随机数 r 1 , r 2 , r 3 ∈ [ 0 , 399 ] r1,r2,r3 \in [0,399] r1,r2,r3∈[0,399] ; F F F是超参数,这里设置为0.5; g g g是当前迭代代数。
4、种群适应
- 400个父代候选解 使用步骤3公式 又生成了400个子代解。共800,按照之前讲的优化目标从800个解中选出400个最优秀的解集。不断迭代即可。
5、最终选择
- 自己设定迭代多少次。反正最终还是会获得400个候选解集,按照之前的优化目标,找到其中最好的一个解,作为该问题的解。
- 这个解就包含了需要修改的像素位置以及改动多少像素值的信息。将其该解运用到干净样本中,就生成了能够愚弄分类器的对抗样本。
3 总结
- 典型的A+B论文吧。
- 经了解得知,差分进化其实是数学上的一个优化方法,大概在90年代提出。
- 经coding发现,差分进化算法在scipy库中就有。
- 但是实验发现使用scipy库的差分进化算法比较慢,作者在代码上做了一些速度上的提升。
附录
- 论文作者代码:
https://github.com/Hyperparticle/one-pixel-attack-keras - My Coding:
不好意思拿出来(狗头) - 参考资料:
[论文总结] One Pixel Attack for Fooling DNN 对抗样本单像素攻击
OnePixel攻击
采用写作新形式,任何问题,评论区留言,力所能及,必答之。
大白话之One Pixel Attack for Fooling Deep Neural Networks论文讲解相关推荐
- Procedural Noise Adversarial Examples for Black-Box Attacks on Deep Neural Networks论文笔记
Procedural Noise Adversarial Examples for Black-Box Attacks on Deep Neural Networks论文笔记 0. 概述 如今一些深度 ...
- Weighted-Entropy-based Quantization for Deep Neural Networks 论文笔记
---恢复内容开始--- 摘要 量化被认为是优化神经网络模型的推理成本的最有效方法之一,用于部署到具有严格资源限制的移动和嵌入式系统.在这种方法中,在严格的精度损失约束(例如,1%)下提供低成本量化是 ...
- 【模型压缩】Channel Pruning for Accelerating Very Deep Neural Networks算法笔记
转:https://blog.csdn.net/u014380165/article/details/79811779 论文:Channel Pruning for Accelerating Very ...
- Simultaneous Feature Learning and Hash Coding with Deep Neural Networks
Simultaneous Feature Learning and Hash Coding with Deep Neural Networks 论文下载地址 自从2014年中山大学潘炎老师讲deep ...
- Deep Neural Networks are Easily Fooled: High Confidence Predictions for Unrecognizable Images
论文原文:Deep Neural Networks are Easily Fooled: High Confidence Predictions for Unrecognizable Images ...
- 论文-Deep Neural Networks are Easily Fooled: High Confidence Predictions for Unrecognizable Images
Deep Neural Networks are Easily Fooled: High Confidence Predictions for Unrecognizable Images Deep N ...
- [深度学习论文笔记][Adversarial Examples] Deep Neural Networks are Easily Fooled: High Confidence Predictions
Nguyen, Anh, Jason Yosinski, and Jeff Clune. "Deep neural networks are easily fooled: High conf ...
- 对抗样本论文学习:Deep Neural Networks are Easily Fooled
近日看了一些对抗样本(adversarial examples)方面的论文,在这里对这些论文进行一下整理和总结. 以下仅代表个人理解,本人能力有限难免有错,还请大家给予纠正,不胜感激.欢迎一起讨论进步 ...
- ImageNet Classification with Deep Convolutional Neural Networks论文翻译——中英文对照
文章作者:Tyan 博客:noahsnail.com | CSDN | 简书 翻译论文汇总:https://github.com/SnailTyan/deep-learning-papers- ...
最新文章
- Linux下SSH命令使用方法详解
- python和表格关系_python – 单表继承上的SQLAlchemy一对多关系...
- 卷及神经网络CNN for image retrieval
- MyEclipse解决Launching xx on MyEclipse Tomcat has encountered a problem
- 推荐四十多条纯干货 Java 代码优化建议
- jcmd:JDK14中的调试神器
- 详解Django-auth-ldap 配置方法
- 在linux系统上使用jmeter
- [渝粤教育] 重庆大学 电子商务 参考 资料
- 一加9R将推12+256GB新版本:骁龙870+120Hz高刷屏
- set在python中的用法_python中set的用法:详细源码示例
- 实施ERP过程中必须注意的“后天条件”
- 人大金仓数据库的安装的使用
- web前端数据可视化框架汇总
- 【机器学习】分类决策树基本介绍+代码实现
- ZT - 谷歌微软等三巨头掀电视革命:智能电视年底成真
- RF- BuiltIn_Run Keyword关键字系列
- 同时打开对比两个pdf文件软件推荐
- Java校验时间段重叠
- 使用MySQLDUMP进行数据库逻辑备份与恢复
热门文章
- 视频教程-图解Python编程神器Jupyter Notebook-Python
- petalinux挂载88e1512、88e1111及base-t、base-x转换
- html母亲节主题网页源码jd
- 读洛水《知北游》有感(1)
- 数据处理任务量级巨大?构建预置容器镜像的Amazon EKS解决方案了解一下!
- 广州你让我泪流满面1
- 【Python】matplotlib plt显示中文乱码解决方法
- Jboot用@Cron失效
- 物联网技术周报第 103 期: DIY 智能音箱:基于 Raspberry Pi + Snowboy + AVS
- python通信自动化测试_基于Python的无线通信设备自动化测试软件的研制