Nicolas Papernot, Patrick McDaniel, Xi Wu, Somesh Jha, Ananthram Swami, Distillation as a Defense to Adversarial Perturbations against Deep Neural Networks.

本文提出一种distillation model, 能够免疫大部分的adversarial attacks, 具有良好的鲁棒性, 同时容易训练.

主要内容

符号 说明
\(F(\cdot)\) 神经网络, 且\(F(X)=\mathrm{softmax^*}(Z(X))\).
\(X \in \mathcal{X}\) 样本
\(Y\) 样本对应的标签
\(F^d\) distilled network
\(T\) temperature

注: 这里的\(\mathrm{softmax}^*(z)_i:=\frac{e^{z_i/T}}{\sum_j e^{e_j/T}}, i= 0,\ldots, N-1\);

注: \(F^d\)与\(F\)网络结构一样;

算法

Input: \(T\),训练数据\((X,Y)\).

  • 在训练数据\((X, Y)\)上训练得到\(F\);
  • 得到新的训练数据\((X, F(X))\);
  • 利用\((X, F(X))\)训练\(F^d\);
  • 修改\(F^d\)的最后一层\(T=1\).

Output: \(F^d\).

为什么这个算法是有效的呢?

  1. 训练\(F^d\)用的标签是概率向量\(F(X)\), 拿数字举例, 如果写的草一点\(7\)和\(1\)是很相近的, 但如果训练的标签是\((0,0,0,0,0,0,1,0,0,0)\)的话反而不符合实际, 会导致不稳定;
  2. 当\(T\)比较大的时候(训练):
\[\frac{\partial F_i(X)}{\partial X_j}|_T = \frac{1}{T}\frac{e^{z_i / T}}{g^2(X)}\big( \sum_{l=1^N}(\frac{\partial z_i}{\partial X_j}-\frac{\partial z_l}{\partial X_j})e^{z_l /T}\big),
\]

会比较小, 其中\(g(X)=\sum_{l=0}^{N-1} e^{z_l(X)/T}\).

3. 在测试的时候, 我们令\(T=1\), 假设\(X\)在原先情况下\(z_1/T\)最大, \(z_2/T\)次大, 则

\[\epsilon=z_2/T-z_1/T= 0 + \mathbf{Tr}(\mathcal{G}^T \delta X) + o(\delta x),
\]

\[T\epsilon=z_2-z_1= 0 + T \cdot \mathbf{Tr}(\mathcal{G}^T \delta X) + o(\delta x),
\]

其中\(\mathcal{G}\)为\(z_2-z_1\)在\(X\)处的负梯度.

一些有趣的指标

鲁棒性定义

\[\rho_{adv}(F)= E_{\mu}[\Delta_{adv}(X,F)],
\]

其中\(\mu\)为样本的分布

\[\Delta_{adv}(X,F) = \arg \min_{\delta X} \{ \| \delta X\| : F(X+\delta X) \not = F(X) \}.
\]

可采用下式来实际估计

\[\rho_{adv}(F) \approx \frac{1}{|\mathcal{X}|} \sum_{X \in \mathcal{X}} \min _{\delta X} \|\delta X\|.
\]

合格的抗干扰机制

  1. 对原有结构有较少的影响;
  2. 网络对干净数据因具有相当的正确率;
  3. 较好的训练速度;
  4. 对\(\| \delta X\|\)较小的情况能够免疫干扰.

原文还有一个理论分析, 但我认为不重要, 略过.

import torch.nn as nn

class Tsoftmax(nn.Module):

    def __init__(self, T=100):
super(Tsoftmax, self).__init__()
self.T = T def forward(self, x):
if self.train():
return nn.functional.softmax(x / self.T)
else:
return nn.functional.softmax(x)

Distillation as a Defense to Adversarial Perturbations against Deep Neural Networks的更多相关文章

  1. Adversarial Defense by Restricting the Hidden Space of Deep Neural Networks

    目录 概 主要内容 Mustafa A., Khan S., Hayat M., Goecke R., Shen J., Shao L., Adversarial Defense by Restric ...

  2. Exploring Adversarial Attack in Spiking Neural Networks with Spike-Compatible Gradient

    郑重声明:原文参见标题,如有侵权,请联系作者,将会撤销发布! arXiv:2001.01587v1 [cs.NE] 1 Jan 2020 Abstract 脉冲神经网络(SNN)被广泛应用于神经形态设 ...

  3. Limitations of the Lipschitz constant as a defense against adversarial examples

    目录 概 主要内容 Huster T., Chiang C. J. and Chadha R. Limitations of the lipschitz constant as a defense a ...

  4. A New Defense Against Adversarial Images: Turning a Weakness into a Strength

    目录 概 主要内容 准则1 准则2 总策略 Hu S, Yu T, Guo C, et al. A New Defense Against Adversarial Images: Turning a ...

  5. Universal adversarial perturbations

    目录 概 主要内容 算法 实验部分 实验1 实验2 实验3 代码 Moosavidezfooli S, Fawzi A, Fawzi O, et al. Universal Adversarial P ...

  6. 《C-RNN-GAN: Continuous recurrent neural networks with adversarial training》论文笔记

    出处:arXiv: Artificial Intelligence, 2016(一年了还没中吗?) Motivation 使用GAN+RNN来处理continuous sequential data, ...

  7. [论文阅读笔记] Adversarial Learning on Heterogeneous Information Networks

    [论文阅读笔记] Adversarial Learning on Heterogeneous Information Networks 本文结构 解决问题 主要贡献 算法原理 参考文献 (1) 解决问 ...

  8. Inherent Adversarial Robustness of Deep Spiking Neural Networks: Effects of Discrete Input Encoding and Non-Linear Activations

    郑重声明:原文参见标题,如有侵权,请联系作者,将会撤销发布! arXiv:2003.10399v2 [cs.CV] 23 Jul 2020 ECCV 2020 1 https://github.com ...

  9. (转)Awesome Knowledge Distillation

    Awesome Knowledge Distillation 2018-07-19 10:38:40  Reference:https://github.com/dkozlov/awesome-kno ...

随机推荐

  1. C/C++ Qt 数据库与TableView多组件联动

    Qt 数据库组件与TableView组件实现联动,以下案例中实现了,当用户点击并选中TableView组件内的某一行时,我们通过该行中的name字段查询并将查询结果关联到ListView组件内,同时将 ...

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

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

  3. Linux学习 - 流程控制

    一.if语句 1 单分支if条件语句 (1) if  [ 条件判断式 ];then 程序  fi (2) if [ 条件判断式 ] then 程序  fi 例:检测根分区的使用量 2 双分支if条件语 ...

  4. jenkins之授权和权限管理

    #:创建角色,给角色授权,然后创建用户,将用户加入到角色(前提先安装插件) #:先将之前的卸载掉 #:然后重启服务,在可选插件搜索Role #:装完重启服务 root@ubuntu:~# system ...

  5. DOM解析xml学习笔记

    一.dom解析xml的优缺点 由于DOM的解析方式是将整个xml文件加载到内存中,转化为DOM树,因此程序可以访问DOM树的任何数据. 优点:灵活性强,速度快. 缺点:如果xml文件比较大比较复杂会占 ...

  6. shell awk命令字符串拼接

    本节内容:awk命令实现字符串的拼接 输入文件的内容: TMALL_INVENTORY_30_GROUP my163149.cm6 3506 5683506 mysql-bin.000013 3273 ...

  7. numpy基础教程--浅拷贝和深拷贝

    在numpy中,使用等号(=)直接赋值返回的是一个视图,属于浅拷贝:要完整的拷贝一个numpy.ndarray类型的数据的话,只能调用copy()函数 # coding = utf-8 import ...

  8. numpy基础教程--将二维数组转换为一维数组

    1.导入相应的包,本系列教程所有的np指的都是numpy这个包 1 # coding = utf-8 2 import numpy as np 3 import random 2.将二维数组转换为一维 ...

  9. 车载以太网第二弹|测试之实锤-1000BASE-T1物理层PMA测试实践

    背景 100BASE-T1方兴未艾,国内外OEM量产车型纷至沓来:为了满足高带宽的应用场景需求(如图像.雷达等数据传输),1000BASE-T1将至已至,如大众MEB平台采用1000BASE-T1总线 ...

  10. [BUUCTF]REVERSE——[WUSTCTF2020]level3

    [WUSTCTF2020]level3 附件 步骤: 例行检查,64位程序,无壳 64位ida载入,找到关键函数 看样子是个base64加密,但又感觉没那么简单,再翻翻左边的函数,找到了base64加 ...