标题:DeepFool: a simple and accurate method to fool deep neural networks
作者:Seyed-Mohsen Moosavi-Dezfooli等
链接:https://arxiv.org/abs/1511.04599
摘要:
本文内容:
对于robustness的量化与计算;
DeepFool算法。
形式化
图像
x
∈
\textbf{x}\in
x∈图像空间
R
n
\mathbb{R}^n
Rn。
分类器
k
^
(
x
)
\hat{k}(\textbf{x})
k^(x)在点
x
x
x处的鲁棒性
Δ
(
x
;
k
^
)
\Delta(\textbf{x};\hat{k})
Δ(x;k^):(几何意义是
x
\textbf{x}
x到分类边界的距离)
Δ
(
x
;
k
^
)
:
=
min
r
∣
∣
r
∣
∣
2
s
.
t
.
k
^
(
x
+
r
)
≠
k
^
(
x
)
\Delta(\textbf{x};\hat{k}):=\min_{\textbf{r}}\left||\textbf{r}|\right|_2 \ \ s.t.\hat{k}(\textbf{x}+\textbf{r})\neq\hat{k}(\textbf{x})
Δ(x;k^):=rmin∣∣r∣∣2 s.t.k^(x+r)̸=k^(x)
其中
r
\textbf{r}
r是能够fool分类器的最小扰动。
分类器
k
^
(
x
)
\hat{k}(\textbf{x})
k^(x)的鲁棒性:
ρ
a
d
v
(
k
^
)
=
E
x
Δ
(
x
;
k
^
)
∣
∣
x
∣
∣
2
\rho_{adv}(\hat{k})=\mathbb{E}_{\textbf{x}}\dfrac{\Delta(\textbf{x};\hat{k})}{||\textbf{x}||_2}
ρadv(k^)=Ex∣∣x∣∣2Δ(x;k^)
(点面距离越远,计算输入的样本度量越小,模型越健壮)
二分类问题
记
k
^
(
x
)
=
s
i
g
n
(
w
T
x
+
b
)
:
=
s
i
g
n
(
f
(
x
)
)
\hat{k}(\textbf{x})=sign(\textbf{w}^T\textbf{x}+b):=sign(f(\textbf{x}))
k^(x)=sign(wTx+b):=sign(f(x))
分类边界
F
=
{
x
:
f
(
x
)
=
0
}
\mathscr{F}=\{\textbf{x}:f(\textbf{x})=0\}
F={x:f(x)=0}
扰动向量计为数据点到分类边界(直线)的距离向量,可以先算点到直线距离,然后求直线的单位法向量,相乘即
r
⋆
(
x
0
)
:
=
arg
min
r
∣
∣
r
∣
∣
2
s
.
t
.
s
i
g
n
(
f
(
x
0
+
r
)
)
≠
s
i
g
n
(
f
(
x
0
)
)
\textbf{r}_{\star}(\textbf{x}_0):=\arg\min\limits_{\textbf{r}}||\textbf{r}||_2s.t.\ sign(f(\textbf{x}_0+\textbf{r}))\neq sign(f(\textbf{x}_0))
r⋆(x0):=argrmin∣∣r∣∣2s.t. sign(f(x0+r))̸=sign(f(x0))
=
−
f
(
x
0
)
∣
∣
w
∣
∣
2
2
w
=-\dfrac{f(\textbf{x}_0)}{||\textbf{w}||_2^2}\textbf{w}
=−∣∣w∣∣22f(x0)w
迭代算法如下:
多分类问题
label数:
c
c
c
记分类函数
f
(
x
)
=
W
T
x
+
b
f(\textbf{x})=\textbf{W}^T\textbf{x}+\textbf{b}
f(x)=WTx+b
分类器
k
^
(
x
)
=
arg
max
k
f
k
(
x
)
\hat{k}(\textbf{x})=\arg\max\limits_{k}{f_k(\textbf{x})}
k^(x)=argkmaxfk(x),
f
k
(
x
)
是
向
量
f
(
x
)
f_k(\textbf{x})是向量f(\textbf{x})
fk(x)是向量f(x)的第
k
k
k个维度。
扰动向量:
arg
min
r
∣
∣
r
∣
∣
2
\arg\min\limits_{\textbf{r}}||\textbf{r}||_2
argrmin∣∣r∣∣2
s
.
t
.
∃
k
:
w
k
T
(
x
0
+
r
)
+
b
k
≥
w
k
^
(
x
0
)
T
(
x
0
+
r
)
+
b
k
^
(
x
0
)
s.t. \exists k: \textbf{w}^T_k(\textbf{x}_0+\textbf{r})+\textbf{b}_k\geq \textbf{w}^T_{\hat{k}(\textbf{x}_0)}(\textbf{x}_0+\textbf{r})+\textbf{b}_{\hat{k}(\textbf{x}_0)}
s.t.∃k:wkT(x0+r)+bk≥wk^(x0)T(x0+r)+bk^(x0)
其中
w
k
\textbf{w}_k
wk是
W
\textbf{W}
W的第
k
k
k列。、
几何意义为寻找
x
0
\textbf{x}_0
x0与所在的凸区域
P
=
⋂
k
=
1
c
{
x
:
f
k
^
(
x
0
)
(
x
)
≥
f
k
(
x
)
}
P=\bigcap\limits_{k=1}^{c}\{\textbf{x}:f_{\hat{k}(\textbf{x}_0)}(\textbf{x})\geq f_{k}(\textbf{x})\}
P=k=1⋂c{x:fk^(x0)(x)≥fk(x)}边界的最小距离,即:
l
^
(
x
0
)
=
arg
min
k
≠
k
^
(
x
0
)
∣
f
k
(
x
0
)
−
f
k
^
(
x
0
)
(
x
0
)
∣
∣
∣
w
k
−
w
k
^
(
x
0
)
∣
∣
2
\hat{l}(\textbf{x}_0)=\arg\min\limits_{k\neq \hat{k}(\textbf{x}_0)}\dfrac{|f_k(\textbf{x}_0)-f_{\hat{k}(\textbf{x}_0)}(\textbf{x}_0)|}{||\textbf{w}_{k}-\textbf{w}_{\hat{k}(\textbf{x}_0)}||_2}
l^(x0)=argk̸=k^(x0)min∣∣wk−wk^(x0)∣∣2∣fk(x0)−fk^(x0)(x0)∣
所以最小扰动
r
⋆
(
x
0
)
=
∣
f
l
^
(
x
0
)
(
x
0
)
−
f
k
^
(
x
0
)
(
x
0
)
∣
∣
∣
w
l
^
(
x
0
)
−
w
k
^
(
x
0
)
∣
∣
2
2
(
w
l
^
(
x
0
)
−
w
k
^
(
x
0
)
)
\textbf{r}_{\star}(\textbf{x}_0)=\dfrac{|f_{\hat{l}(\textbf{x}_0)}(\textbf{x}_0)-f_{\hat{k}(\textbf{x}_0)}(\textbf{x}_0)|}{||\textbf{w}_{\hat{l}(\textbf{x}_0)}-\textbf{w}_{\hat{k}(\textbf{x}_0)}||_2^2}(\textbf{w}_{\hat{l}(\textbf{x}_0)}-\textbf{w}_{\hat{k}(\textbf{x}_0)})
r⋆(x0)=∣∣wl^(x0)−wk^(x0)∣∣22∣fl^(x0)(x0)−fk^(x0)(x0)∣(wl^(x0)−wk^(x0))
当边界非线性时,把上述
w
\textbf{w}
w替换成
∇
f
(
(
x
)
)
\nabla f(\textbf(x))
∇f((x))即可(如下算法2)
值得注意的是本算法的输出不是optimal的,但实验中已经能够大概率实现小幅度扰动了。