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(⋅) |
神經網絡, 且F(X)=softmax∗(Z(X)). |
X∈X |
樣本 |
Y |
樣本對應的標籤 |
Fd |
distilled network |
T |
temperature |
注: 這裏的softmax∗(z)i:=∑jeej/Tezi/T,i=0,…,N−1;
注: Fd與F網絡結構一樣;
算法
Input: T,訓練數據(X,Y).
- 在訓練數據(X,Y)上訓練得到F;
- 得到新的訓練數據(X,F(X));
- 利用(X,F(X))訓練Fd;
- 修改Fd的最後一層T=1.
Output: Fd.
爲什麼這個算法是有效的呢?
- 訓練Fd用的標籤是概率向量F(X), 拿數字舉例, 如果寫的草一點7和1是很相近的, 但如果訓練的標籤是(0,0,0,0,0,0,1,0,0,0)的話反而不符合實際, 會導致不穩定;
- 當T比較大的時候(訓練):
∂Xj∂Fi(X)∣T=T1g2(X)ezi/T(l=1N∑(∂Xj∂zi−∂Xj∂zl)ezl/T),
會比較小, 其中g(X)=∑l=0N−1ezl(X)/T.
- 在測試的時候, 我們令T=1, 假設X在原先情況下z1/T最大, z2/T次大, 則
ϵ=z2/T−z1/T=0+Tr(GTδX)+o(δx),
則
Tϵ=z2−z1=0+T⋅Tr(GTδX)+o(δx),
其中G爲z2−z1在X處的負梯度.
一些有趣的指標
魯棒性定義
ρadv(F)=Eμ[Δadv(X,F)],
其中μ爲樣本的分佈
Δadv(X,F)=argδXmin{∥δX∥:F(X+δX)=F(X)}.
可採用下式來實際估計
ρadv(F)≈∣X∣1X∈X∑δXmin∥δX∥.
合格的抗干擾機制
- 對原有結構有較少的影響;
- 網絡對乾淨數據因具有相當的正確率;
- 較好的訓練速度;
- 對∥δ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)