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. 理解ASP.NET Core - 模型绑定&验证(Model Binding and Validation)

    注:本文隶属于<理解ASP.NET Core>系列文章,请查看置顶博客或点击此处查看全文目录 模型绑定 什么是模型绑定?简单说就是将HTTP请求参数绑定到程序方法入参上,该变量可以是简单类 ...

  2. 【Go语言学习笔记】包

    包其实是每个大型工程都会使用的模块化工具. 将相关的代码封装成一个包,给其他项目调用,提供不同的功能. GO的设计是将一个文件夹看成一个包,虽然不一定非要用文件夹的名字,但是比较建议. 同一个文件夹下 ...

  3. Flink(三)【核心编程】

    目录 一.Environment 二.Source 从集合读取数据 从文件读取数据 从kakfa读取数据(常用) 自定义数据源 三.Transform map Rich版本函数 flatMap key ...

  4. 【leetcode】208. Implement Trie (Prefix Tree 字典树)

    A trie (pronounced as "try") or prefix tree is a tree data structure used to efficiently s ...

  5. STM32 CAN用队列缓冲接收的例子

    [1]CAN接收用队列缓冲的例子: 发单帧没有问题,多帧或者连续发两帧就有问题.

  6. 【STM8】外挂存储器W25Q16

    好像有几张图片被强制缩小了?看到这篇博客的人先对你们说声抱歉,我不知道怎么设置 文字就可以很长(文章宽度的全部),图片就只有文章宽度的2/3宽度 开新分页应该就是原始尺寸了,这点还是和大家说抱歉... ...

  7. Linux系统中安装软件方法总结

    Linux系统中安装软件方法总结 [1]Linux系统中安装软件的几种方式 [2] Linux配置yum源(本地源和网络源) [3] SuSE下zypper源配置 [4] SUSE zypper 本地 ...

  8. Insert into select语句引发的生产事故

    前言   Insert into select请慎用.这天xxx接到一个需求,需要将表A的数据迁移到表B中去做一个备份.本想通过程序先查询查出来然后批量插入.但xxx觉得这样有点慢,需要耗费大量的网络 ...

  9. 【Linux】【Services】【SaaS】Spinnaker

    1. 简介 1.1. 说明: Spinnaker 是 Netflix 的开源项目,是一个持续交付平台,它定位于将产品快速且持续的部署到多种云平台上.Spinnaker 通过将发布和各个云平台解耦,来将 ...

  10. excel数据导入mySql数据库

    1.将excel数据保存好 2.打开数据库,在表上点击右键,选择导入向导 3.点击下图中红色部门,点击下一步 4.选择excel文件的位置,下方的表空间内,会出现excel中的sheet页,选择要导入 ...