Lipschitz连续保持二元神经网络5
二元神经网络在
这里,我们重新审视了[7]中的一般基于梯度的方法,该
方法维护用 于 梯 度 更 新 的 全精度潜变量W
F
,
将第
k
个
权矩阵
Wk
二值化为±1个二值权矩阵
Wk
由
一个
二值化函数(通常
为
sgn
(
·
))
表示
为
Wk
=
sgn
(
Wk
)。
然后,
第k层的映射由A
k
=W
k
A
k−
1
产生,并且通过将该过程迭代L次来执
行二值化的整个前向传递
Lipschitz
常数(定义
1
)。
一个函数
g
:
R
n
R
m
称 为
Lipschitz连续的,如果存在一个常数
L
使得:
<$x
,
y∈R
,
<$
g
(x)−
g
(y)<
$2
≤
L
<$x−y<
$2
,
(2)
其中x
,
y表示函数
g
的两个随机输入。满足不等式的最小
L
是函数
g
的
Lipschitz常数,记为
g
Lip
。通过定义1,
Lip
可以上界输入Pertur之间的比
率, 在给定的距离内(通常是L2范数),它可以被看作是一个度量
来评估神经网络的鲁棒性[45,43,46]。
在下面的部分中,我们提出了我们的Lipschitz连续性保留方案(第
3.2),其中BNN被强制接近其FP对应物的Lipschitz常数。此外,我们
还介绍了用于优化二进制网络的损失函数和梯度近似(Sec.3.3)。最
后,我们讨论
了
LCR
和Lipschitz连续性之间的关系,并将我们的方法
与著名的谱归一化[36](Sec.3.3)。
3.2
Lipschitz
连续性保留程序
我们的目标是保持Lipschitz常数在一个适当的水平。在实践中,我们
需要拉
f
B
利普
和
f
F
Lip
紧密地稳定BNN的Lipschitz常数。然而,计算神
经网络的精确Lipschitz常数是NP 困难的[47],特别是涉及二值化过
程。为了解决这个问题,我们提出通过引入由相邻激活产生的保留矩
阵序列来绕过精确的Lipschitz常数计算,然后通过幂迭代方法计算它
们的谱范数以形成LCR损失,以保持BNN的Lipschitz连续性,如图1所
示。
神经网络的
Lipschitz
常数
我们
用权重矩阵W
k
,
f
k
()对第k层的仿射
函数进行分段,映射
k
−
1
a
k
,其中
a
k−
1
R
d
k−
1
和a
k
R
d
k
是由(k)产生
的激活 1)-th和第
k
层。基于补充材料中的引理1,
f
k
Lip
=
sup
a
W
k
(a)
SN
,其中
SN
是矩阵谱范数,形式上定义为:
其中矩阵W的谱范数等价于其最大奇异值。因此,对于
f
k
,基于补充
材料中的引理2,其