对抗样本之CW原理coding
目录
- 1 引言
- 2 算法详解
- 2.1 常人思路
- 2.2 CW算法思路
- 3 攻击直观对比
- 4 总结
- 5 附录
1 引言
本文采用手稿模拟的角度,尽量使读者较为直白的面对冷冰冰的公式。
抛去CW算法不谈。一般来说,生成样本算法都要保证如下两个条件:
- 1、对抗样本和干净样本的差距应该越小越好。评价指标有 L0,L2,L正无穷
- 2、对抗样本应该使得模型分类错,且分类错的那一类的置信度应足够的高(有目标攻击)。
条件一,保证了生成样本与原始干净样本尽量的相似。
条件二,保证了生成样本确实能成功攻击模型。
仔细想想,这两个条件是不是就满足了生成样本的全部需求哩。
问题定义清楚了,那问题的数学描述就成了关键。
2 算法详解
2.1 常人思路
数学描述:
- 上述公式,Rn满足了条件一,f (An) 满足了条件二。
- 由于是有目标攻击,t 就是我们想要攻击成的类别,表示将对抗样本输入模型后,它的softmax层第t个的值越大,也就说明模型将其归为第t个类别,攻击成功。
- 我们希望模型将其归为第t个类别的概率越大越好,也就是希望 Z(An)t 越大越好 。Z(An)t 前面加个负号,变为最小化问题。
其手稿模拟如下:
如上的公式是不是很简单阿。那是我等常人的思考过程,肯定简单阿。但这并不是CW算法,它主要在此基础上做了优化,不然怎么发顶会呢。
- 我们常人思路的缺点:通过如上公式反向传播,An实际有可能超出像素范围。
- 办法一:使用截断的思想,但会使攻击性能下降
- 办法二:CW算法提出的思想,将其映射到tanh空间
2.2 CW算法思路
- 便于对比,CW算法与常人思路放在一起。
- 与之前不一样,它将An映射到了区间【0,1】,目的就是随便参数Wn怎么变,反正经过映射变换后,对抗样本An也不会超出像素点的范围。
- 现在我们将类别 t(也就是我们最后想要攻击成的类别)所对应的逻辑值记为 Z(An)t,将最大的值(对应类别不同于t)记为 max{Z(An)i : i!=t },如果通过优化使得max{Z(An)i : i!=t } - Z(An)t变小,攻击不就离成功了更近嘛。
CW算法手稿模拟:
这里你可能对如下图。为什么外面还要套个max,然后与-k这个超参数进行比较:
来张函数图,你感受下:
- 如上图,如果y的值(即损失值),比 -k 要小,那max( y , -3 )的值就一直是 -3 ,即使继续反向传播也不会优化参数了。
- 我认为这一步加得鸡肋。给我一种感觉:你在不断努力地内卷,然后有个人不断的跟你说,你足够好了,不要学了,不要学了!!!
- 因此可以理解为,k越大,那么模型分错,且错成的那一类的概率越大。
3 攻击直观对比
常人思路攻击:
CW攻击:
4 总结
CW是一个基于优化的攻击,主要调节的参数是c和k,看你自己的需要了。它的优点在于,可以调节置信度,生成的扰动小,可以破解很多的防御方法,缺点是,很慢。
5 附录
论文:
CW攻击原论文地址——https://arxiv.org/pdf/1608.04644.pdf
代码:
作者github代码:https://github.com/carlini/nn_robust_attacks/blob/master/l2_attack.py
本人代码:https://colab.research.google.com/drive/1Lc36RwSqvbLTxY6G6O1hkuBn9W49x0jO?usp=sharing
博客:
CW算法详解–https://www.cnblogs.com/tangweijqxx/p/10627360.html
欢迎留言,力所能及,必答之。
关注我,带你体验不一样的AI生活。
对抗样本之CW原理coding相关推荐
- 对抗样本之MIM原理coding
目录 1 引言 2 MIM原理 3 coding 3.1 训练模型 3.2 MIM对抗样本生成 3.3 可视化展示 附录 1 引言 MIM,即基于动量的基本迭代法.在BIM上加了动量的操作.不会BIM ...
- 如何看待机器视觉的“对抗样本”问题,其原理是什么?
这两天正好看过一篇相关的paper,"EXPLAINING AND HARNESSING ADVERSARIAL EXAMPLES" 作者是Ian Goodfellow.Jonat ...
- 对抗样本生成的PGD和CW方法
参考 Projected. Gradient Algorithm 预备 先记录几个常见的单词 Convex set 凸集 convergence rate 收敛速率 convex 凸函数 interp ...
- ACL2020 | 使用强化学习为机器翻译生成对抗样本
2020-07-12 03:08:49 本文介绍的是 ACL 2020 论文<A Reinforced Generation of Adversarial Examples for Neural ...
- 论文盘点:GAN生成对抗样本的方法解析
©PaperWeekly 原创 · 作者|孙裕道 学校|北京邮电大学博士生 研究方向|GAN图像生成.情绪对抗样本生成 引言 对抗样本的生成方式很多.一般情况下会分成三大类,第一种是基于梯度的生成方式 ...
- 建议收藏!近期值得读的 9 篇「对抗样本」最新论文
在碎片化阅读充斥眼球的时代,越来越少的人会去关注每篇论文背后的探索和思考.在这个栏目里,你会快速 get 每篇精选论文的亮点和痛点,时刻紧跟 AI 前沿成果. 本期我们筛选了 9 篇「对抗样本」领域的 ...
- pytorch 对抗样本_【炼丹技巧】功守道:NLP中的对抗训练 + PyTorch实现
本文分享一个"万物皆可盘"的NLP对抗训练实现,只需要四行代码即可调用.盘他. 最近,微软的FreeLB-Roberta [1] 靠着对抗训练 (Adversarial Train ...
- LNG:首个基于图的对抗样本检测方法
关注公众号,发现CV技术之美 Adversarial Example Detection Using Latent Neighborhood Graph 论文链接: https://openacce ...
- CVPR 2021 出自港中文,对抗变换提高对抗样本的可迁移性
关注公众号,发现CV技术之美 1 引言 该论文发表于CVPR2021,主要是关于黑盒攻击中对抗样本可迁移性的研究.论文的创新点很新颖,虽然论文代码没有开源,但是自己实现起来也相对简单. 论文作者借助对 ...
最新文章
- 聂聪:数据科学让我为城市规划注入创新价值 | 优秀毕业生专访
- python函数的参数类型,Python函数的主要参数类型
- VMware中安装CentOS Linux release 7.4.1708 (Core)
- 使用 Navicat Lite 连接 Oracle 数据库
- 众筹网02_项目环境搭建
- 女主播还是女主播???
- php varexport,PHP函数补完:var_export()
- 2019.8.2闭包,作用域
- Java 多线程基本概念
- 超全opencv常见图像处理操作总结及效果展示(附python代码)
- android 仿qq it蓝豹,十大Android开源项目-IT蓝豹
- Android安装应用后点击打开(Open)带来的问题及解决方式
- Django模板语法和ModelForm
- 全国计算机考研人数,考研人数超165万创新高 连续3年年增超10万人
- 金圣叹“不亦快哉”三十三则
- PointNet学习笔记(一)—— 论文
- 在OpenCV里实现二维离散卷积1
- 领导的艺术:工作里怎么样做,才是包容
- 最后一个人可以挽救360和QQ的——马云
- 银行排队叫号系统的模拟