目录

  • 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相关推荐

  1. 对抗样本之MIM原理coding

    目录 1 引言 2 MIM原理 3 coding 3.1 训练模型 3.2 MIM对抗样本生成 3.3 可视化展示 附录 1 引言 MIM,即基于动量的基本迭代法.在BIM上加了动量的操作.不会BIM ...

  2. 如何看待机器视觉的“对抗样本”问题,其原理是什么?

    这两天正好看过一篇相关的paper,"EXPLAINING AND HARNESSING ADVERSARIAL EXAMPLES" 作者是Ian Goodfellow.Jonat ...

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

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

  4. ACL2020 | 使用强化学习为机器翻译生成对抗样本

    2020-07-12 03:08:49 本文介绍的是 ACL 2020 论文<A Reinforced Generation of Adversarial Examples for Neural ...

  5. 论文盘点:GAN生成对抗样本的方法解析

    ©PaperWeekly 原创 · 作者|孙裕道 学校|北京邮电大学博士生 研究方向|GAN图像生成.情绪对抗样本生成 引言 对抗样本的生成方式很多.一般情况下会分成三大类,第一种是基于梯度的生成方式 ...

  6. 建议收藏!近期值得读的 9 篇「对抗样本」最新论文

    在碎片化阅读充斥眼球的时代,越来越少的人会去关注每篇论文背后的探索和思考.在这个栏目里,你会快速 get 每篇精选论文的亮点和痛点,时刻紧跟 AI 前沿成果. 本期我们筛选了 9 篇「对抗样本」领域的 ...

  7. pytorch 对抗样本_【炼丹技巧】功守道:NLP中的对抗训练 + PyTorch实现

    本文分享一个"万物皆可盘"的NLP对抗训练实现,只需要四行代码即可调用.盘他. 最近,微软的FreeLB-Roberta [1] 靠着对抗训练 (Adversarial Train ...

  8. LNG:首个基于图的对抗样本检测方法

    关注公众号,发现CV技术之美 Adversarial Example Detection Using Latent Neighborhood Graph 论文链接:  https://openacce ...

  9. CVPR 2021 出自港中文,对抗变换提高对抗样本的可迁移性

    关注公众号,发现CV技术之美 1 引言 该论文发表于CVPR2021,主要是关于黑盒攻击中对抗样本可迁移性的研究.论文的创新点很新颖,虽然论文代码没有开源,但是自己实现起来也相对简单. 论文作者借助对 ...

最新文章

  1. 聂聪:数据科学让我为城市规划注入创新价值 | 优秀毕业生专访
  2. python函数的参数类型,Python函数的主要参数类型
  3. VMware中安装CentOS Linux release 7.4.1708 (Core)
  4. 使用 Navicat Lite 连接 Oracle 数据库
  5. 众筹网02_项目环境搭建
  6. 女主播还是女主播???
  7. php varexport,PHP函数补完:var_export()
  8. 2019.8.2闭包,作用域
  9. Java 多线程基本概念
  10. 超全opencv常见图像处理操作总结及效果展示(附python代码)
  11. android 仿qq it蓝豹,十大Android开源项目-IT蓝豹
  12. Android安装应用后点击打开(Open)带来的问题及解决方式
  13. Django模板语法和ModelForm
  14. 全国计算机考研人数,考研人数超165万创新高 连续3年年增超10万人
  15. 金圣叹“不亦快哉”三十三则
  16. PointNet学习笔记(一)—— 论文
  17. 在OpenCV里实现二维离散卷积1
  18. 领导的艺术:工作里怎么样做,才是包容
  19. 最后一个人可以挽救360和QQ的——马云
  20. 银行排队叫号系统的模拟

热门文章

  1. 福州三中信息学奥赛培训网址
  2. 上手ChatGPT威力加强版后,我发现它很强,但也有点拉。。。
  3. vite实现md转vue
  4. 如何高效学习ARMv8/ARMv9架构知识
  5. python3的tkinter登录界面设计+mysql数据库的导入数据
  6. bootstraptable remove 不依靠刷新数据
  7. 前端 JS 打印 WORD/EXCEL PDF
  8. 河北科大校联通园网破解(调教)教程———保姆级
  9. windows 10 一下载就会变卡,音乐出现杂音,鼠标卡顿,看视频音频不同步
  10. MATLAB显示:由于未找到因为输出,无法播放音频