Interval Bound Propagation (IBP)
概
一种可验证的提高网络鲁棒性的方法.
主要内容
IBP
假设第k层表示为:
z
k
=
h
k
(
z
k
−
1
)
=
σ
k
(
W
k
z
k
−
1
+
b
k
)
,
k
=
1
,
2
,
⋯
,
K
.
z_k = h_k(z_{k-1}) = \sigma_k (W_k z_{k-1} + b_k), \: k=1,2,\cdots, K.
zk=hk(zk−1)=σk(Wkzk−1+bk),k=1,2,⋯,K.
一般的分类网络, 要求:
e
y
T
z
K
≥
e
j
z
K
,
∀
j
≠
y
,
e_y^Tz_K \ge e_j z_K, \: \forall j \not= y,
eyTzK≥ejzK,∀j=y,
其中
e
j
e_j
ej只有第
j
j
j个元素为1, 其余均为0.
相应的, 如果考虑鲁棒性, 则需要
∀
z
0
∈
X
(
x
0
)
:
=
{
x
∣
∥
x
−
x
0
∥
∞
<
ϵ
}
,
\forall z_0 \in \mathcal{X}(x_0):= \{x| \|x-x_0\|_{\infty} < \epsilon \},
∀z0∈X(x0):={x∣∥x−x0∥∞<ϵ},
[
z
K
]
y
=
e
y
T
z
K
≥
e
j
T
z
K
=
[
z
K
]
j
,
∀
j
≠
y
,
[z_K]_y = e_y^Tz_K \ge e_j^T z_K = [z_K]_j, \: \forall j \not= y,
[zK]y=eyTzK≥ejTzK=[zK]j,∀j=y,
成立.
现在, 假设已知
z
‾
k
−
1
≤
z
k
−
1
≤
z
‾
k
−
1
,
\underline{z}_{k-1} \le z_{k-1} \le \overline{z}_{k-1},
zk−1≤zk−1≤zk−1,
并令
μ
k
−
1
=
z
‾
k
−
1
+
z
‾
k
−
1
2
r
k
−
1
=
z
‾
k
−
1
−
z
‾
k
−
1
2
μ
k
=
W
k
μ
k
−
1
+
b
r
k
=
∣
W
k
∣
r
k
−
1
\mu_{k-1} = \frac{\overline{z}_{k-1} + \underline{z}_{k-1}}{2} \\ r_{k-1} = \frac{\overline{z}_{k-1} - \underline{z}_{k-1}}{2} \\ \mu_k = W_k \mu_{k-1} + b \\ r_k = |W_k|r_{k-1} \\
μk−1=2zk−1+zk−1rk−1=2zk−1−zk−1μk=Wkμk−1+brk=∣Wk∣rk−1
则
μ
k
−
r
k
≤
W
k
z
k
−
1
+
b
≤
μ
k
+
r
k
,
\mu_k - r_k \le W_k z_{k-1} + b \le \mu_k + r_k,
μk−rk≤Wkzk−1+b≤μk+rk,
其中
∣
⋅
∣
|\cdot|
∣⋅∣是element-wise的绝对值.
注:
max
x
∈
[
x
‾
,
x
‾
]
a
⋅
x
⇒
x
=
{
x
‾
,
a
≥
0
x
‾
,
a
<
0
⇒
a
⋅
x
=
a
(
x
‾
+
x
‾
)
2
+
∣
a
∣
(
x
‾
−
x
‾
)
2
.
\max_{x \in [\underline{x}, \overline{x}]} \quad a \cdot x \Rightarrow x = \left \{ \begin{array}{ll} \overline{x}, & a \ge 0 \\ \underline{x}, & a < 0 \end{array} \right . \Rightarrow a \cdot x = \frac{a(\overline{x}+\underline{x})}{2} + \frac{|a|(\overline{x}-\underline{x})}{2}.
x∈[x,x]maxa⋅x⇒x={x,x,a≥0a<0⇒a⋅x=2a(x+x)+2∣a∣(x−x).
倘若激活函数
σ
\sigma
σ是单调的, 进而有
z
‾
k
=
σ
k
(
μ
k
−
r
k
)
,
z
‾
k
=
σ
k
(
μ
k
+
r
k
)
z
‾
k
≤
z
k
≤
z
‾
k
.
\underline{z}_k = \sigma_k(\mu_k - r_k), \: \overline{z}_k = \sigma_k (\mu_k + r_k) \\ \underline{z}_k \le z_k \le \overline{z}_k.
zk=σk(μk−rk),zk=σk(μk+rk)zk≤zk≤zk.
以此类推, 我们可以获得:
z
‾
K
≤
z
K
≤
z
‾
K
.
\underline{z}_K \le z_K \le \overline{z}_K.
zK≤zK≤zK.
可知:
[
z
K
]
j
−
[
z
K
]
y
≤
[
z
‾
K
]
j
−
[
z
‾
K
]
y
,
[z_K]_j - [z_K]_y \le [\overline{z}_K]_j - [\underline{z}_K]_y,
[zK]j−[zK]y≤[zK]j−[zK]y,
显然, 如果下式
[
z
‾
K
]
j
−
[
z
‾
K
]
y
≤
0
,
∀
j
≠
y
[\overline{z}_K]_j - [\underline{z}_K]_y \le 0, \: \forall j\not= y
[zK]j−[zK]y≤0,∀j=y
成立, 则该模型对于
x
0
x_0
x0在
ϵ
\epsilon
ϵ下就是鲁棒的.
故定义
[
z
∗
]
j
=
{
[
z
‾
K
]
j
,
j
≠
y
[
z
‾
K
]
j
,
j
≠
y
[z_{*}]_j = \left \{ \begin{array}{ll} [\overline{z}_K]_j, & j \not = y \\ [\underline{z}_K]_j, & j \not = y \\ \end{array} \right.
[z∗]j={[zK]j,[zK]j,j=yj=y
并通过下列损失:
L
=
κ
⋅
ℓ
(
z
K
,
y
)
+
(
1
−
κ
)
⋅
ℓ
(
z
∗
,
y
)
,
\mathcal{L} = \kappa \cdot \ell (z_K, y) + (1 - \kappa) \cdot \ell(z_*, y),
L=κ⋅ℓ(zK,y)+(1−κ)⋅ℓ(z∗,y),
其中
ℓ
\ell
ℓ是softmax交叉熵损失.
注:
max
∥
x
−
x
0
∥
∞
<
ϵ
ℓ
(
z
K
(
x
)
,
y
)
≤
ℓ
(
z
∗
,
y
)
.
\max_{\|x - x_0\|_{\infty}<\epsilon} \ell (z_K(x), y) \le \ell(z_*, y).
∥x−x0∥∞<ϵmaxℓ(zK(x),y)≤ℓ(z∗,y).
这是因为
ℓ
(
z
K
(
x
)
,
y
)
=
−
log
exp
(
z
y
)
∑
j
exp
(
z
j
)
=
−
log
1
∑
j
exp
(
z
j
−
z
y
)
≤
−
log
1
∑
j
≠
y
exp
(
z
‾
j
−
z
‾
y
)
+
1
≤
−
log
exp
(
z
‾
y
)
∑
j
≠
y
exp
(
z
‾
j
)
+
exp
(
z
‾
y
)
=
ℓ
(
z
∗
,
y
)
.
\begin{array}{ll} \ell(z_K(x), y) &= -\log \frac{\exp (z_y)}{\sum_j \exp(z_j)} \\ &= -\log \frac{1}{\sum_j \exp(z_j-z_y)} \\ &\le -\log \frac{1}{\sum_{j\not= y} \exp(\overline{z}_j-\underline{z}_y) + 1} \\ &\le -\log \frac{\exp(\underline{z}_y)}{\sum_{j\not =y} \exp(\overline{z}_j) + \exp(\underline{z}_y)} \\ &= \ell(z_*, y). \end{array}
ℓ(zK(x),y)=−log∑jexp(zj)exp(zy)=−log∑jexp(zj−zy)1≤−log∑j=yexp(zj−zy)+11≤−log∑j=yexp(zj)+exp(zy)exp(zy)=ℓ(z∗,y).
故我们优化的是一个上界.
CROWN
注: 此图来自[Lyu Z. et al. Towards Evaluating and Training Verifiably Robust Neural Networks].
CROWN的区别, 实际上就是其对激活函数的一个relaxation, 比如
x
‾
≤
x
≤
x
‾
⇒
a
x
≤
R
e
L
U
(
x
)
≤
x
‾
x
‾
−
x
‾
⋅
x
−
x
‾
x
‾
x
‾
−
x
‾
.
\underline{x} \le x \le \overline{x} \Rightarrow \\ ax\le \mathrm{ReLU}(x) \le \frac{\overline{x}}{\overline{x} - \underline{x}} \cdot x -\frac{\overline{x}\underline{x}}{\overline{x} - \underline{x}}.
x≤x≤x⇒ax≤ReLU(x)≤x−xx⋅x−x−xxx.
其中
a
∈
[
0
,
1
]
a \in [0, 1]
a∈[0,1].
这个界可视化就是上面的图.
注: 作者说是要back propagation, 但是感觉forward也可以…
CROWN-IBP
上面二者的结合, 假设由上面二者分别推导出两个界, 并得到
z
∗
,
z
∗
′
,
z_*, z_*',
z∗,z∗′,
相应的损失函数为
L
=
κ
⋅
ℓ
(
z
K
,
y
)
+
(
1
−
κ
)
⋅
ℓ
(
β
⋅
z
∗
+
(
1
−
β
)
⋅
z
∗
′
,
y
)
.
\mathcal{L} = \kappa \cdot \ell (z_K, y) + (1 - \kappa) \cdot \ell(\beta \cdot z_* + (1 - \beta) \cdot z_*', y).
L=κ⋅ℓ(zK,y)+(1−κ)⋅ℓ(β⋅z∗+(1−β)⋅z∗′,y).
这么做的原因是, 作者认为IBP在最开始的时候估计的界是非常loose的, 所以一开始的训练是很不稳定的, 故采取了这么一个折中的方案.
训练的技巧
- κ \kappa κ 从 κ s t a r t \kappa_{start} κstart线性下降到 κ e n d \kappa_{end} κend, 即训练开始先着重于clean的部分;
- β \beta β 同样从 0 0 0增大至 1 1 1(ramp-up).
- ϵ \epsilon ϵ则是从0慢慢增大(ramp-up), 且如果我们测试关系的是 8 / 255 8/255 8/255, 训练的时候实际增大到 8.8 / 255 8.8/255 8.8/255, 即 1.1 ϵ 1.1\epsilon 1.1ϵ, 原因是发现IBP的方法对于 ϵ \epsilon ϵ比较小的情况的效果不是特别好和稳定;
写在最后
首先, 这些理论的保证并没有太好的效果, 和经验的方法依旧差距甚远, 个人觉得有趣的地方在于, 网络在不接触对抗训练的基础上依然能够获得鲁棒性.
另外, IBP的估计的界虽然远不及一些别的方法包括CROWN, 但是其表现出来的效果却好上很多, 这是非常有意思的一点.
虽然这一点在深度学习里头似乎也是比较常见的现象.