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. 看动画学算法之:二叉搜索树BST

    目录 简介 BST的基本性质 BST的构建 BST的搜索 BST的插入 BST的删除 简介 树是类似于链表的数据结构,和链表的线性结构不同的是,树是具有层次结构的非线性的数据结构. 树是由很多个节点组 ...

  2. MyBatis 如何实现流式查询

    基本概念 流式查询指的是查询成功后不是返回一个集合而是返回一个迭代器,应用每次从迭代器取一条查询结果.流式查询的好处是能够降低内存使用. 如果没有流式查询,我们想要从数据库取 1000 万条记录而又没 ...

  3. HDFS初探之旅(二)

    6.HDFS API详解 Hadoop中关于文件操作类疾病上全部在"org.apache.hadoop.fs"包中,这些API能够支持的操作包含:打开文件.读写文件.删除文件等. ...

  4. archive后upload to app store时遇到app id不可用的问题

    问题如下图 出现此问题的原因有两种: 1.此app id在AppStore中已经存在,也就是说你使用别人注册的app ID ,  如果是这样,你只能更换app ID 2.此app ID是自己的,突然之 ...

  5. Nodejs源码解析之module

    modulejs的导入 Require函数详解 module路径解析 module.js的导入 module.js是由node.js在Nodejs程序启动的时候导入的.module.js中使用的req ...

  6. table表格数据无缝循环滚动

    分享一个好看的表格无缝滚动:(实战用起来很舒服) 直接copy代码到你的程序中: 1.HTML <div class="tablebox">              ...

  7. spring Profile 为不同环境提供不同的配置支持

    说明 Profile为在不同环境下使用不同的配置提供了支持(开发环境下的配置和生产环境下的配置肯定是不同的, 例如, 数据库的配置) . 在spring开发中用@Profile 注解使用来选择行配置系 ...

  8. Socket通信和多线程的总结

    1.ServerSocket进行多线程接收 package com.yh.chat; import java.io.IOException; import java.net.ServerSocket; ...

  9. Linux进程操作

    查看进程启动时间 ps -eo pid,lstart | grep PID 查看进程的运行多久 ps -eo pid,etime |grep PID 查看进程中启动了哪些线程 top -H -p pi ...

  10. Firebug: Net Panel 使用详解

    Introduction to Firebug: Net Panel Since there is not much user documentation related to Firebug fea ...