DL中常用的三种K-Lipschitz技术

本文介绍了深度学习中确保模型平滑性的K-Lipschitz约束技术,包括权重裁剪、梯度惩罚和谱归一化。其中,谱归一化通过调整网络层权重以保持1-Lipschitz特性,效果最佳。理论推导和Tensorflow实现也被详细讨论。
摘要由CSDN通过智能技术生成


在进入到正题前,首先来了解下什么是 K-Lipschitz 以及它在 DL 中能起到什么作用

Lipschitz continuity

利普希茨连续。满足如下性质的任意连续函数 f f f 称为 K-Lipschitz:
∥ f ( x 1 ) − f ( x 2 ) ∥ ≤ K ∥ x 1 − x 2 ∥ ,   ∀ x 1 , x 2 ∈ dom f \| f(x_1) - f(x_2) \| \leq K \| x_1 - x_2 \|,\ \forall x_1,x_2 \in \text{dom}f f(x1)f(x2)Kx1x2, x1,x2domf
这里的 ∥ ⋅ ∥ \|\cdot\| 常用2-范。直观上看,Lipschitz 条件限制了函数变化的剧烈程度。在DL中,由于 Lipschitz continous 的函数的梯度上界被限制,因此函数会更平滑。因此利用梯度下降进行参数更新时,参数的变化不会太大/剧烈从而降低梯度爆炸的发生概率,使模型的更新更稳定。 K K K 称为 Lipschitz constant。

那么在 DL 中,有哪些方法可用于将 f f f 限制在 K-Lipschitz 空间中?这里介绍三种:weight clipping、gradient penality、spectral normalization,一般而言,第三种的效果最佳

Weight clipping

Wasserstein GAN 提出。
在利用 gradient descent 进行参数更新后,在对所有参数进行如下操作:
w = { c , if  w &gt; c − c , if  w &lt; − c w , otherwise w=\begin{cases} c, &amp; \text{if } w &gt; c \\ -c, &amp; \text{if } w &lt; -c \\ w, &amp; \text{otherwise} \end{cases} w=c,c,w,if w>cif w<cotherwise
其中 c c c 是人为设定的阈值。注意,Weight cplipping 并无法保证 f f f 位于 1-Lipschitz,而只能保证其是 K-Lipschitz的(K具体无法确定)

Gradient penalty

Improved Training of Wasserstein GANs 提出。
理论支持:一个可微函数 f f f 是 1-Lipschitz 当且仅当它对所有的输入 x x x 均满足 ∥ ∇ x f ( x ) ∥ ≤ 1 \| \nabla_x f(x) \| \leq 1 xf(x)1,即,
f ∈ 1-Lipschitz &ThickSpace; ⟺ &ThickSpace; ∥ ∇ x f ( x ) ∥ ≤ 1 , ∀ x ∈ dom f f \in \text{1-Lipschitz} \iff \| \nabla_x f(x) \| \leq 1, \forall x \in \text{dom}f f1-Lipschitzxf(x)1,xdomf
在具体实现时,即在 Objective function 中添加如下正则项:
min ⁡ θ { L ( x , θ ) + λ max ⁡ ( 0 , ∥ ∇ x f ( x ) − 1 ) ∥ } \min_{\theta} \{ \mathcal{L}(x, \theta) + \lambda \color{#F00}{\max(0, \| \nabla_x f(x) - 1) \| } \} θmin{ L(x,θ)+λmax(0,xf(x)1)}
公式中的 L \mathcal L L 即为 Loss/Objective function,而 f f f 为 Score function。注意,优化该目标函数后,所解出的 f f f 并无法保证一定满足 ∥ ∇ x f ( x ) ∥ ≤ 1 \| \nabla_x f(x) \| \leq 1 xf(x)1,但 f f f 会偏向具有该属性

Spectral Normalization

谱归一化,由SN-GAN提出,是目前三种方法中效果最优的方法。

下面简要介绍其非严格的理论推导,主要来自知乎,再添加上自己的一些理解

理论推导

对于复合函数,存在如下定理:
∥ f ∘ g ∥ L i p ≤ ∥ f ∥ L i p ⋅ ∥ g ∥ L i p \|f \circ g\|_{Lip} \leq \| f \|_{Lip} \cdot \| g \|_{Lip} fgLipfLipgLip
neutral network 正是由多个复合函数嵌套而成,最常见的嵌套方式如下: f ( g ( f ( g ( ⋯ &ThinSpace; ) ) ) ) f(g(f(g(\cdots)))) f(g(f(g()))),其中 f 表示激活函数, g g g 表示卷积操作(以CNN为例)。而 f f f 常选取 LeakyRelu,Relu,Sigmoid,Tanh,而它们均为 1-Lipschitz。因此 ∥ f ∘ g ∥ L i p ≤ ∥ f ∥ L i p ⋅ ∥ g ∥ L i p = ∥ g ∥ L i p \|f \circ g\|_{Lip} \leq \| f \|_{Lip} \cdot \| g \|_{Lip}=\| g \|_{Lip} fgLipfLipgLip=gLip,故要使得复合函数 f ∘ g f \circ g fg 为 1-Lipschitz,即需保证卷积操作 g g g 是 1-Lipschitz,就可以保证整个网络都是 1-Lipschitz continous 的。

在图像上每个位置的卷积操作,正好就是做如下“局部区域“的变换:
∥ unfold r a w ( M ) ⋅ unfold c o l ( x ) ∥ = y \| \text{unfold}_{raw}(M) \cdot \text{unfold}_{col}(x) \| = y unfoldraw(M)unfoldcol(x)=y
其中 x ∈ R f × f x \in R^{f×f} xRf×f 为 local receptive field, M ∈ R f × f M \in R^{f×f} MRf×f 为卷积核, y y y 为对应位置的卷积输出, unfold r a w ( ⋅ ) \text{unfold}_{raw}(\cdot) unfoldraw() ⋅ \cdot 按行展开成行向量, unfold c o l ( ⋅ ) \text{unfold}_{col}(\cdot) unfoldcol() ⋅ \cdot 按列展开成列向量。因此,只需保证 unfold r a w ( M ) \text{unfold}_{raw}(M) unfoldraw(M) 是 1-Lipschitz,就可以使得整个 network 是 1-Lipschitz。

对任意矩阵 A A A ( unfold r a w ( M ) \text{unfold}_{raw}(M) unfoldraw(M) A A A 的一个具例),存在如下定理:
(1) A ∈ K-Lipschitz , ∀ A : R n → R m / ∀ A ∈ R m × n &ThickSpace; ⟺ &ThickSpace; ∥ A x → ∥ ≤ K ∥ x → ∥ , ∀ x → ∈ R n &ThickSpace; ⟺ &ThickSpace; ⟨ A x → , A x → ⟩ ≤ K 2 ⟨ x → , x → ⟩ &ThickSpace; ⟺ &ThickSpace; x → T ( A T A − K 2 I ) x → ≤ 0 &ThickSpace; ⟺ &ThickSpace; ⟨ ( A T A − K 2 I ) x → , x → ⟩ ≤ 0 \begin{array}{ll} &amp; A \in \text{K-Lipschitz}, \forall A: R^n \to R^m / \forall A \in R^{m×n} \\[.4em] \iff&amp; \| A \overrightarrow{x} \| \leq K \| \overrightarrow{x} \|, \forall \overrightarrow{x} \in R^n \\[.4em] \iff&amp; \langle A \overrightarrow{x}, A \overrightarrow{x} \rangle \leq K^2 \langle \overrightarrow{x}, \overrightarrow{x} \rangle \\[.4em] \iff&amp; \overrightarrow{x}^T (A^TA - K^2I)\overrightarrow{x} \leq 0 \\[.4em] \iff&amp; \langle (A^TA - K^2I) \overrightarrow{x}, \overrightarrow{x} \rangle \leq 0 \end{array} \tag{1} AK-Lipschitz,A:RnRm/ARm×nAx Kx ,x RnAx ,Ax K2x ,x x T(ATAK2I)x 0(ATAK2I)x ,x 0(1)

  • 14
    点赞
  • 34
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值