Lipschitz Continuity
在深度学习中,Lipschitz continuity常用于约束学习函数的形状,从而起到正则化的作用。那么,该约束的有效性和实现方式是什么?
Lipschitz连续
直觉上,Lipschitz连续是一个限制函数变化过快的特性,定义为:
给定两个度量空间$(X,d_{X})$和$(Y,d_{Y})$,$d_{X}$表示集合$X$上的度量,$d_{Y}$表示集合$Y$上的度量。若存在实数$K$,对于$\forall{\mathbf{x}_1,\mathbf{x}_2}$,
$$
\begin{aligned}
d_{Y}(f(\mathbf{x}_1),f(\mathbf{x}_2))\le Kd_{X}(\mathbf{x_1},\mathbf{x_2})
\end{aligned}\tag{1}
$$
那么,函数$f:X\to Y$被认为Lipschitz连续。$K$被称为Lipschitz常量。推论:若函数的梯度有界:$\Vert\nabla_{\mathbf{x}}f(\mathbf{x})\Vert\le K$,那么函数$f$也为Lipschitz连续
Lipschitz约束的有效性
《Loss-Sensitive Generative Adversarial Networks on Lipschitz Densities》表明Lipschitz密度集包含大量的分布族,该分布在连续密度空间属于稠密的。例如:自然图片的密度被像素值的压缩集合所定义,且可被视为Lipschitz连续,这是因为两个相似的图片不可能以一个无界的变化率突然改变。
由此,作者们假设真实样本比生成样本拥有一个更小的损失,且该损失差有一定幅度,那么可通过Lipschitz连续的方式施加先验,提高学习效率。
Lipschitz连续的实现方式
在WGAN中,为了降低利用Wasserstein-1度量两个分布之间距离度量的计算难度,需要限制判别器函数为Lipschitz函数。这种约束主要通过权重clipping的方式实现。该理论与梯度裁剪可使网络学习稳定形成了相关,数学原理可见《为什么梯度裁剪的默认模长是1?》。
实际上,WGAN的训练并不稳定。因此,WGAN-GP增加了判别器梯度损失的方式,实现Lipschitz连续约束。
引用方法
请参考:
li,wanye. "Lipschitz Continuity". wyli'Blog (Apr 2025). https://www.robotech.ink/index.php/archives/730.html
或BibTex方式引用:
@online{eaiStar-730,
title={Lipschitz Continuity},
author={li,wanye},
year={2025},
month={Apr},
url="https://www.robotech.ink/index.php/archives/730.html"
}