有关蒸馏 (Distillation)的论文:
- (2006)Model Compression
- (2014)Do Deep Nets Really Need to be Deep?— 论文笔记
- (2015)Distilling the Knowledge in a Neural Network— 论文笔记
摘要
与 JSMA 文章同作者,本文提出了防御蒸馏(defensive distillation),主要思想为:使用从DNN中提取的知识来降低生成对抗样本时的梯度,如果这个对抗梯度很高,那么扰动很大,DNN的输出不稳定;为了抵抗这种扰动,需要减少输入周围的变化,即使用防御蒸馏来平滑训练得到的模型,提高模型的泛化能力,从而令模型对对抗样本具有高弹性。此外,作者还理论推导+实验证明了防御蒸馏的有效性。
本文是较早的对抗文章,作者十分详细的介绍了神经网络、对抗样本、对抗攻击、对抗训练、蒸馏等基本概念,此笔记不过多重复叙述这些基础知识。
1. Defending DNNs using distillation
A)防御对抗样本
1)在本文中,作者认为具有对抗鲁棒性的模型应该具有以下能力:
- 对训练集内外的数据都应有高准确率;
- 很平滑(smooth),即对给定样本附近(neighborhood)的输入进行相对一致的分类。
这里的neighborhood是根据合适的范数所定义,neighborhood范围越大,模型的鲁棒性越高。
2)防御对抗扰动的设计要求:
- 对网络结构影响小
- 保持网络的准确率
- 保持网络的计算速度
- 防御与训练数据相对接近的对抗样本(很远的样本与安全性无关)
B)蒸馏用作防御
防御蒸馏与传统蒸馏的区别在于:使用相同的模型结构来训练原来的网络和蒸馏网络。防御蒸馏的概述如图1所示。

图1. 防御蒸馏的概述:首先在数据 X X X 上使用硬标签训练一个初始网络 F F F,softmax 的 temperature 为 T T T。然后使用概率向量 F ( X ) F(X) F(X)作为软标签,以在相同数据 X X X 和相同的 T T T 训练蒸馏网络 F d F^d Fd。
2. Analysis of defensive distillation
分析分为三个方面研究 (1) 网络训练(2) 模型敏感度(sensitivity)(3) 网络的泛化能力
A)网络训练
1)考虑模型 F F F,数据集为 X \mathcal{X} X,给定一组带正确标签的样本 { ( X , Y ( X ) ) ∣ X ∈ X } \{(X,Y(X))|X\in \mathcal{X}\} {(X,Y(X))∣X∈X},即 Y ( X ) Y(X) Y(X)为 X X X的正确标签向量(硬标签),训练目标为(最小化负对数似然):
arg min θ F − 1 ∣ X ∣ ∑ X ∈ X ∑ i ∈ 0... N Y i ( X ) log F i ( X ) (1) \arg\min_{\theta_F} -\frac{1}{|\mathcal{X}|}\sum_{X\in \mathcal{X}}\;\sum_{i\in 0...N} Y_i(X)\log F_i(X) \tag{1} argθFmin−∣X∣1X∈X∑i∈0...N∑Yi(X)logFi(X)(1)
θ F \theta_F θF 为模型的参数集合, Y i Y_i Yi 是 Y Y Y 的第 i i i 个元素, F i ( X ) F_i(X) Fi(X) 是 F ( X ) F(X) F(X) 的第 i i i 个元素,即表示 X X X 是第 i i i 个类别的概率。优化的目标是调整模型参数 θ F \theta_F θF。
由于 Y ( X ) Y(X) Y(X)为 X X X的正确标签向量,即one-hot向量,只有正确类别的元素才是1,其余都为0,所以公式(1)可以简化为:
arg min θ F − 1 ∣ X ∣ ∑ X ∈ X log F t ( x ) ( X ) (2) \arg\min_{\theta_F} -\frac{1}{|\mathcal{X}|}\sum_{X\in \mathcal{X}} \log F_{t(x)}(X) \tag{2} argθFmin

这篇论文介绍了一种名为防御蒸馏的方法,通过利用DNN的知识降低对抗样本的梯度,增强模型的稳定性和泛化能力。作者详细阐述了如何通过蒸馏网络训练防御对抗扰动,并通过实验验证了其在MNIST和CIFAR10数据集上的有效性,显著提高了模型对对抗样本的抵抗能力。
最低0.47元/天 解锁文章
922

被折叠的 条评论
为什么被折叠?



