有关蒸馏 (Distillation)的论文:
与 JSMA 文章同作者,本文提出了防御蒸馏(defensive distillation),主要思想为:使用从DNN中提取的知识来降低生成对抗样本时的梯度,如果这个对抗梯度很高,那么扰动很大,DNN的输出不稳定;为了抵抗这种扰动,需要减少输入周围的变化,即使用防御蒸馏来平滑训练得到的模型,提高模型的泛化能力,从而令模型对对抗样本具有高弹性。此外,作者还理论推导+实验证明了防御蒸馏的有效性。
本文是较早的对抗文章,作者十分详细的介绍了神经网络、对抗样本、对抗攻击、对抗训练、蒸馏等基本概念,此笔记不过多重复叙述这些基础知识。
1)在本文中,作者认为具有对抗鲁棒性的模型应该具有以下能力:
这里的neighborhood是根据合适的范数所定义,neighborhood范围越大,模型的鲁棒性越高。
2)防御对抗扰动的设计要求:
防御蒸馏与传统蒸馏的区别在于:使用相同的模型结构来训练原来的网络和蒸馏网络。防御蒸馏的概述如图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。
分析分为三个方面研究 (1) 网络训练(2) 模型敏感度(sensitivity)(3) 网络的泛化能力
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−∣X∣1X∈X∑logFt(x)(X)(2)
其中 t ( X ) t(X) t(X) 是向量 Y ( X ) Y(X) Y(X) 中唯一等于 1 的元素的索引。
2)引入对抗蒸馏后,蒸馏模型记为 F d F^d Fd,训练的数据集仍为 X \mathcal{X} X,但样本 X ∈ X X \in \mathcal{X} X∈X 的标签变为 F ( X ) F(X) F(X)(软标签),训练目标变为:
arg min θ F − 1 ∣ X ∣ ∑ X ∈ X ∑ i ∈ 0... N F i ( X ) log F i d ( X ) (3) \arg\min_{\theta_F} -\frac{1}{|\mathcal{X}|}\sum_{X\in \mathcal{X}}\;\sum_{i\in 0...N} F_i(X)\log F_i^d(X) \tag{3} argθFmin−∣X∣1X∈X∑i∈0...N∑Fi(X)logFid(X)(3)
同样的, F i d F_i^d Fid 是 F d F^d Fd 的第 i i i 个元素。 对于一个包含了两个或多个类别特征的样本,网络有时会十分自信的预测出一个类别,作者认为,上述的蒸馏训练能避免这种情况,从而提高网络的泛化能力。
训练目标实际就是令 F d = F F^d = F Fd=F,也就是最小化交叉熵。
模型对输入变化的敏感度由其Jacobian矩阵计算,在 temperature = T =T =T 时,模型 F F F 的 Jacobian矩阵的第 ( i , j ) (i,j) (i,j) 元素为:
∂ F i ( X ) ∂ X j ∣ T = ∂ ∂ X j ( e z i / T ∑ l = 0 N − 1 e z l / T ) = 1 T e z i / T ( ∑ l = 0 N − 1 e z l / T ) 2 ( ∑ l = 0 N − 1 ( ∂ z i ∂ X j − ∂ z l ∂ X j ) e z l / T ) (4) \begin{aligned} \left.\frac{\partial F_i(X)}{\partial X_j}\right|_{T} &= \frac{\partial }{\partial X_j}\left ( \frac{ e^{z_i/T}}{\sum_{l=0}^{N-1}e^{z_l/T}}\right )\\ &= \frac{1}{T}\frac{e^{z_i/T}}{(\sum_{l=0}^{N-1}e^{z_l/T})^2}\left ( \sum_{l=0}^{N-1}\left ( \frac{\partial z_i}{\partial X_j}-\frac{\partial z_l}{\partial X_j} \right )e^{z_l/T} \right ) \end{aligned} \tag{4} ∂Xj∂Fi(X)∣ ∣T=∂Xj∂(∑l=0N−1ezl/Tezi/T)=T1(∑l=0N−1ezl/T)2ezi/T(l=0∑N−1(∂Xj∂zi−∂Xj∂zl)ezl/T)(4)
其中 z 0 , . . . , z N − 1 z_0,...,z_{N-1} z0,...,zN−1 是logits 层的输出。公式(4)说明了,当 z 0 , . . . , z N − 1 z_0,...,z_{N-1} z0,...,zN−1 不变时,增加 T T T 的值会降低Jacobian矩阵内所有元素的绝对值,从而降低了模型对其输入的微小变化的敏感度。
作者认为,使用较高的 T T T 进行训练,可以将这种敏感度信息编码在模型参数中,因此在测试时,令 T = 1 T=1 T=1,仍可以保持其敏感性。
Shalev-Schwartz等人证明了 learnability 和 stability 之间的联系:考虑一个学习问题 ( Z = X × T , H , l ) (Z=X\times T, \mathcal{H},l) (Z=X×T,H,l),其中 X X X 是输入空间, Y Y Y 是输出空间, H \mathcal{H} H 是假设空间, l l l 是将 ( w , z ) ∈ H × Z (w,z) \in \mathcal{H}\times Z (w,z)∈H×Z 映射为一个正实数的损失函数。对于给定的一组训练集 S = { z i : i ∈ [ n ] } S=\{z_i: i\in[n]\} S={zi:i∈[n]},定义一个经验损失(empirical loss) L S ( w ) = 1 n ∑ i ∈ [ n ] l ( w , z i ) L_S(w)=\frac{1}{n}\sum_{i\in[n]} l(w,z_i) LS(w)=n1∑i∈[n]l(w,zi),将最小经验风险记为 L S ∗ = min w ∈ H L S ( w ) L_S^* = \min_{w\in \mathcal{H}}L_S(w) LS∗=minw∈HLS(w)。现在给出以下两个定义和一个定理:
定义1 Asymptotic Empirical Risk Minimizer:a learning rule A A A is an asymptotic empirical risk minimizer, if there is a rate function ε ( n ) \varepsilon (n) ε(n) (means a function that non-increasingly vanishes to 0 as n grows) such that for every training set S S S of size n n n,
L S ( A ( S ) ) − L S ∗ ≤ ε ( n ) L_S(A(S))-L_S^*\leq \varepsilon (n) LS(A(S))−LS∗≤ε(n)
定义2 Stability:we say that a learning rule A A A is ε ( n ) \varepsilon (n) ε(n) stable if for every two training sets S S S, S ′ S′ S′ that only differ in one training item, and for every z ∈ Z z \in Z z∈Z,
∣ l ( A ( S ) , z ) − l ( A ( S ′ ) , z ) ∣ ≤ ε ( n ) |l(A(S),z)-l(A(S'),z)|\leq \varepsilon (n) ∣l(A(S),z)−l(A(S′),z)∣≤ε(n)
其中 h = A ( S ) h=A(S) h=A(S) 是 A A A 在训练集 S S S 上的输出, l ( A ( S ) , z ) = l ( h , z ) l(A(S),z)=l(h,z) l(A(S),z)=l(h,z) 是损失函数。
定理1 If there is a learning rule A A A that is both an asymptotic empirical risk minimizer and stable, then A A A generalizes, which means that the generalization error L D ( A ( S ) ) L_D(A(S)) LD(A(S)) converges to L D ∗ = min h ∈ H L D ( h ) L^∗_D =\min_{ h\in \mathcal{H}} L_D(h) LD∗=minh∈HLD(h) with some rate ε ( n ) \varepsilon (n) ε(n) independent of any data generating distribution D D D.
根据这个定理可以知道,通过适当的设置 T T T,对于任何数据集 S S S 和 S ′ S' S′,新生成的训练集 ( X , F S ( X ) ) (X,F^S(X)) (X,FS(X)) 和 ( X , F S ′ ( X ) ) (X,F^{S'}(X)) (X,FS′(X)) 满足很强的稳定性条件。反过来就是,对于任意的 X ∈ X X\in \mathcal{X} X∈X, F S ( X ) F^S(X) FS(X) 和 F S ′ ( X ) F^{S'}(X) FS′(X) 在统计上是接近的。可以看出,防御蒸馏训练满足上述定义的稳定性条件。
此外,从防御蒸馏的目标函数可以推出,该方法将经验风险降至最低。将这两个结论与定理1结合可以得出:本文的蒸馏模型具有很好地泛化能力。
对防御蒸馏进行试验评估:
数据集:使用 MNIST 和 CIFAR10,每个数据集对应一个网络结构,即两个DNN,前者网络的准确率为 99.51%,后者的诶80.95%;
攻击策略:JSMA;
Temperature: T = 20 T=20 T=20,蒸馏之后,MNIST的准确率为99.05%,CIFAR为81.39%,测试时 T = 1 T=1 T=1,也就是不使用temperature。
主要评估了以下方面:
其他的实验包括temperature取值对攻击成功率的影响、对模型准确率的影响、对对抗梯度的影响、对模型鲁棒性的影响等