Papernot N, Mcdaniel P, Goodfellow I, et al. Practical Black-Box Attacks against Machine Learning[C]. computer and communications security, 2017: 506-519.

@article{papernot2017practical,

title={Practical Black-Box Attacks against Machine Learning},

author={Papernot, Nicolas and Mcdaniel, Patrick and Goodfellow, Ian and Jha, Somesh and Celik, Z Berkay and Swami, Ananthram},

pages={506--519},

year={2017}}

Adversarial samples 构造策略中的black-box策略. black-box attacks, 即不依赖所针对的神经网络\(O\)的参数(像FGSM需要关于样本求导), 不依赖训练\(O\)所需的样本.

主要内容

算法为:

策略如下, 我们现在仅有一个黑盒般的神经网络\(O\), 我们喂入一个样本\(x\)就会有一个输出, 记\(\tilde{O}(x)\)为对应的预测的类, 即

\[\tilde{O}(x) = \arg \max_{j \in 0, \ldots, N} O_j(x),
\]

其中\(O_j(x)\)是概率向量\(O(x)\)的第\(j\)个元素.

我们构造一个新的神经网络\(S\), 以期望训练\(S\)使得\(S\)和\(O\)二者的分类边界近似. 因为没有训练样本, 一种想法是人工生成训练样本(随机生成是可以预料到的方法, 但是这种方法作者说不好).

Jacobian-based Dataset Augmentation

假设有一批最开始的样本(可以是找的少量训练样本, 或者随机生成的样本), 设为\(S_0\), 将这批样本畏入\(O\)获得对应的样本标签(虽然可能是误判, 我们的目的是拟合\(O\)),

\[D \leftarrow \{(x, \tilde{O}(x)):x \in S_0\},
\]

再将这批数据喂入\(S\)训练\(S\), 现在我们需要更新\(S_0\):

\[S_1 \leftarrow \{x + \lambda \cdot \mathrm{sgn} (J_F[\tilde{O}(x)]: x \in S_0]\} \cup S_0.
\]

其中\(J_F[\tilde{O}(x)]\)表示\(\tilde{O}(x)\)关于\(x\)的导数(这个idea应该是中FGSM中来的, 比较Goodfellow是联合作者).

后续的数据的更新是类似的.

现在假设我们已经训练好了\(S\), 我们需要在\(S\)的基础上构造adversarial samples, 这些作者直接借鉴了部分关于white-box的工作(FGSM等), 我们只需利用white-box attacks 去欺骗\(S\)即可.

Note

  • 网络结构, 比如网络的层数, 训练时的epoch等等对结果的影响有限.
  • white-box 方法选择对结果的影响有限.
  • 该方法可以扩展到除DNN以外的机器学习上, 比如逻辑斯蒂回归(决策树似乎也可, 但是没找到怎么实现的方案).
  • 为了提高网络的稳定性, 我们可以在训练的时候加入adversarial samples, 但是作者发现, 最好是在\(\epsilon\)(输入摄动)较大但有限的adversarial samples 上训练比较好.

Practical Black-Box Attacks against Machine Learning的更多相关文章

  1. (转)Is attacking machine learning easier than defending it?

    转自:http://www.cleverhans.io/security/privacy/ml/2017/02/15/why-attacking-machine-learning-is-easier- ...

  2. Federated Machine Learning: Concept and Applications

    郑重声明:原文参见标题,如有侵权,请联系作者,将会撤销发布! Qiang Yang, Yang Liu, Tianjian Chen, and Yongxin Tong. 2019. Federate ...

  3. Practical Machine Learning For The Uninitiated

    Practical Machine Learning For The Uninitiated Last fall when I took on ShippingEasy's machine learn ...

  4. Lessons learned developing a practical large scale machine learning system

    原文:http://googleresearch.blogspot.jp/2010/04/lessons-learned-developing-practical.html Lessons learn ...

  5. How do I learn machine learning?

    https://www.quora.com/How-do-I-learn-machine-learning-1?redirected_qid=6578644   How Can I Learn X? ...

  6. How do I learn mathematics for machine learning?

    https://www.quora.com/How-do-I-learn-mathematics-for-machine-learning   How do I learn mathematics f ...

  7. [C5] Andrew Ng - Structuring Machine Learning Projects

    About this Course You will learn how to build a successful machine learning project. If you aspire t ...

  8. [C2P1] Andrew Ng - Machine Learning

    About this Course Machine learning is the science of getting computers to act without being explicit ...

  9. [C2P2] Andrew Ng - Machine Learning

    ##Linear Regression with One Variable Linear regression predicts a real-valued output based on an in ...

随机推荐

  1. Angular中怎样创建service服务来实现组件之间调用公共方法

    Angular组件之间不能互相调用方法,但是可以通过创建服务来实现公共方法的调用. 实现 创建服务命令 ng g service 服务路径/服务名 比如这里在app/services目录下创建stor ...

  2. 【leetcode】212. Word Search II

    Given an m x n board of characters and a list of strings words, return all words on the board. Each ...

  3. C语言产生随机数(伪)

    C语言的获取随机数的函数为rand(), 可以获得一个非负整数的随机数.要调用rand需要引用头文件stdlib.h.要让随机数限定在一个范围,可以采用模除加加法的方式.要产生随机数r, 其范围为 m ...

  4. Shell学习(一)——Shell简介

    参考博客: [1]Shell简介

  5. 转 Android Studio中Junit调试

    转:https://blog.csdn.net/xanthus_li/article/details/54314189 在程序开发完成后,需要交给专业的调试人员进行相关的专业调试(白盒测试,黑盒测试, ...

  6. Maven pom.xml报错解决

    用Maven建了一个web工程,总是在pom.xml头的地方报错: 大概是: Original error: Could not transfer artifact org.hamcrest:hamc ...

  7. Android 高级UI组件(一)GridView与ListView

    1.GridView 1.GridView学习 GridView和ListView都是比较常用的多控件布局,而GridView更是实现九宫图的首选 main.xml: <?xml version ...

  8. Default Assignment Operator and References

    We have discussed assignment operator overloading for dynamically allocated resources here . This is ...

  9. APP调用系统相册,使用3DTouch重压,崩溃

    崩溃:app调用系统相册,使用3DTouch重压,崩溃 问题描述 app调用系统相册,使用3DTouch重压,一般的app都会崩溃. 解决方法 写个分类即可 @implementation UICol ...

  10. Mysql资料 主键

    目录 一.简介 二.操作 三.技巧 一.简介 主键意味着表中每一行都应该有可以唯一标识自己的一列(或一组列). 一个顾客可以使用顾客编号列,而订单可以使用订单ID,雇员可以使用雇员ID 或 雇员社会保 ...