神经网络的Lipschitz连续性
Lipschitz 连续性
实值函数情形
定义:设有函数
例:
例:
例:
下面的定理说明,Lipschitz 连续是比一致连续更强的条件。事实上,我们有 Lipschitz 连续
定理:Lipschitz 连续的函数是一致连续的。
证明:设
在实际应用场景中,
引理(多元实值函数的中值定理):设
定理:设
证明:
向量值函数情形
实值函数下对 Lipschitz 连续性的定义可以自然拓展到向量值函数下。
定义:设有函数
下面的定理考虑复合函数的 Lipschitz 常数。
定理:设有函数
证明:
上一小节关于实值可微函数的结论也可以拓展到向量值可微函数情形。同样我们需要先给出一个引理。
引理(多元向量值函数的“中值定理”):设
证明:
推论:设
一般度量空间情形
事实上,在一般的度量空间下,我们也可以类似地定义 Lipschitz 连续性。
定义:设
一般度量空间下 Lipschitz 连续性的性质不在本文的讨论范围之内,读者可自行参阅相关书籍。
神经网络的 Lipschitz 常数
一个神经网络往往由多个线性层和激活函数堆叠而成(卷积层也可以视为线性层):
考虑一个线性层
下面我们介绍几种控制神经网络 Lipschitz 常数的方法,包括权重裁剪、梯度惩罚、谱范数正则和谱归一化。
权重裁剪
WGAN[1]提出使用权重裁剪 (weight clipping) 来控制网络的 Lipschitz 常数,即在每一步更新权重后手动将其裁剪到
但是权重裁剪容易导致大多数权重集中在
梯度惩罚
为了解决权重裁剪的问题,WGAN-GP[2]提出了梯度惩罚 (gradient penalty),即在优化目标中加入正则项:
梯度惩罚控制 Lipschitz 常数的原理基于上文的结论:可微函数的 Lipschitz 连续性与梯度有界是等价的,因此只要控制了梯度的界,就控制了网络的 Lipschitz 常数。另外,梯度惩罚是一种“软”的约束,即鼓励网络的梯度接近 1 而并没有硬性约束梯度必须小于 1,因此并不能保证网络是 1-Lipschitz 连续的,但在合适的超参数下能有足够好的效果。
梯度惩罚也有如下形式的变种,仅在梯度大于 1 时作惩罚:
需要说明的是,原则上梯度惩罚要在整个
谱范数正则
梯度惩罚直接考虑一整个网络,但根据第一节的结论,其实只需要考虑每一层就行了。对于线性层
有趣的是,谱范数正则可以看作常用的 L2 正则的弱化版本。注意 L2 正则相当于限制了矩阵的 Frobenius 范数:
最后,与梯度惩罚相比,谱范数正则不依赖于输入数据,因此并没有梯度惩罚中只能在数据流形上限制 Lipschitz 常数的缺点。
谱归一化
谱范数正则是一种软的约束,但我们完全可以将其变成硬的约束。对于线性层
如何计算谱范数
对于谱范数正则和谱归一化,一个问题是如何计算谱范数。由于谱范数等于最大奇异值,所以最直接的方法就是对权重矩阵
根据矩阵论的知识,
证明:设
事实上,幂迭代法有着非常直观的几何解释——每次迭代乘以
References
- Arjovsky, Martin, Soumith Chintala, and Léon Bottou. Wasserstein generative adversarial networks. In International conference on machine learning, pp. 214-223. PMLR, 2017. ↩︎
- Gulrajani, Ishaan, Faruk Ahmed, Martin Arjovsky, Vincent Dumoulin, and Aaron C. Courville. Improved training of wasserstein gans. Advances in neural information processing systems 30 (2017). ↩︎
- Yoshida, Yuichi, and Takeru Miyato. Spectral norm regularization for improving the generalizability of deep learning. arXiv preprint arXiv:1705.10941 (2017). ↩︎
- Miyato, Takeru, Toshiki Kataoka, Masanori Koyama, and Yuichi Yoshida. Spectral normalization for generative adversarial networks. arXiv preprint arXiv:1802.05957 (2018). ↩︎
- Lebl, Jiří. Basic analysis: Introduction to real analysis. https://www.jirka.org/ra/ ↩︎
- 萌萌憨. Lipschitz连续性和导数有界的等价性证明(前提:函数可微). https://blog.csdn.net/weixin_42128655/article/details/138209570 ↩︎