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\).
为什么这个算法是有效的呢?
- 训练\(F^d\)用的标签是概率向量\(F(X)\), 拿数字举例, 如果写的草一点\(7\)和\(1\)是很相近的, 但如果训练的标签是\((0,0,0,0,0,0,1,0,0,0)\)的话反而不符合实际, 会导致不稳定;
- 当\(T\)比较大的时候(训练):
\]
会比较小, 其中\(g(X)=\sum_{l=0}^{N-1} e^{z_l(X)/T}\).
3. 在测试的时候, 我们令\(T=1\), 假设\(X\)在原先情况下\(z_1/T\)最大, \(z_2/T\)次大, 则
\]
则
\]
其中\(\mathcal{G}\)为\(z_2-z_1\)在\(X\)处的负梯度.
一些有趣的指标
鲁棒性定义
\]
其中\(\mu\)为样本的分布
\]
可采用下式来实际估计
\]
合格的抗干扰机制
- 对原有结构有较少的影响;
- 网络对干净数据因具有相当的正确率;
- 较好的训练速度;
- 对\(\| \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的更多相关文章
- 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 ...
- Exploring Adversarial Attack in Spiking Neural Networks with Spike-Compatible Gradient
郑重声明:原文参见标题,如有侵权,请联系作者,将会撤销发布! arXiv:2001.01587v1 [cs.NE] 1 Jan 2020 Abstract 脉冲神经网络(SNN)被广泛应用于神经形态设 ...
- 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 ...
- 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 ...
- Universal adversarial perturbations
目录 概 主要内容 算法 实验部分 实验1 实验2 实验3 代码 Moosavidezfooli S, Fawzi A, Fawzi O, et al. Universal Adversarial P ...
- 《C-RNN-GAN: Continuous recurrent neural networks with adversarial training》论文笔记
出处:arXiv: Artificial Intelligence, 2016(一年了还没中吗?) Motivation 使用GAN+RNN来处理continuous sequential data, ...
- [论文阅读笔记] Adversarial Learning on Heterogeneous Information Networks
[论文阅读笔记] Adversarial Learning on Heterogeneous Information Networks 本文结构 解决问题 主要贡献 算法原理 参考文献 (1) 解决问 ...
- 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 ...
- (转)Awesome Knowledge Distillation
Awesome Knowledge Distillation 2018-07-19 10:38:40 Reference:https://github.com/dkozlov/awesome-kno ...
随机推荐
- Ubuntu Linux安装QT5之旅
1. QT 版本选择 如何选择QT版本,参考如下介绍 https://www.cnblogs.com/chinasoft/p/15226293.html 2. 在此以5.15.0解说 下载QT 版本 ...
- 19. awk 命令详解
awk是一个强大的文本分析工具,相对于grep的查找,sed的编辑,awk在其对数据分析并生成报告时,显得尤为强大.简单来说awk就是把文件逐行的读入,以空格为默认分隔符将每行切片,切开的部分再进行各 ...
- IDEA中对代码进行测试
一. 建立对应得目录 二.导入junit依赖 <dependency> <groupId>junit</groupId> <artifactId>jun ...
- Could not get a resource from the pool
redis报错Could not get a resource from the pool情况是:1.可以连接redis2.可以keys *查看数据,但是发现key少了好多(其实原因就是大量的key过 ...
- 使用Mock测试
一.前言 在前面的章节我们介绍过 Junit 的使用,也了解过 spring-test,今天我们来了解一个新玩意 -- mock 测试.这里仅仅做一个入门,对返回视图和返回 Json 数据的方法进行测 ...
- jstl中的foreach标签
<%@ page import="java.util.ArrayList" %><%@ page import="java.util.List" ...
- 关于python中的随机种子——random_state
random_state是一个随机种子,是在任意带有随机性的类或函数里作为参数来控制随机模式.当random_state取某一个值时,也就确定了一种规则. random_state可以用于很多函数,我 ...
- Python循环控制
一.比较符 和算术操作符一样,布尔操作符也有操作顺序.在所有算术和比较操作符求值后,Python 先求值 not 操作符,然后是 and 操作符,然后是 or 操作符. 二.if控制 if name ...
- 开发中的PR和MR
GitLab的是Pull Request缩写.GitHub则是Merge Request也就是MR. 当项目下载后进行更改并提交,每次过程算一次PR,一般会加入管理员审核,通过才能合并到master主 ...
- Python 中更安全的 eval
问题 想要将一段列表形式的字符串转为 list,但是担心这个动态的字符串可能是恶意的代码?使用 eval 将带来安全隐患.比如: # 期望是 eval('[1, 2, 3]') # 实际上是 eval ...