Lipschitz constraint in deep learning
作者:互联网
1. “稳健”模型:满足L约束
(1)对于参数扰动的稳定性
如模型与是否有相近的效果。
(2)对于输入扰动的稳定性
如与是否有相近的效果。
2. L约束:
当,。
存在某个常数C(与参数有关,与输入无关),使下式恒成立
其中,越小越好,意味着对输入扰动越不敏感。
3. 神经网络中的L约束:
单层全连接,为激活函数,为参数矩阵(向量),则
让充分接近,则
由于现有激活函数如sigmoid,relu等满足“导数有上下界”,则(每个元素)的绝对值都不超过某个常数,则
希望C尽可能小,从而给参数带来一个正则化项。
4. 矩阵范数:
F范数(Frobenius Norm):(又称L2范数)——deep中常用的L2正则化就是这种。
通过柯西不等式,有。
谱范数(Spectral Norm):(又称2范数或谱半径)
,为(Hermite矩阵)的最大特征值
谱范数等于的最大特征根(主特征根)的平方根,若是方阵,则等于W的最大的特征根的绝对值。
则:
为提供了一个上界,是最准确的C,如果不太关心精准度,则C取也可以。
5. L2正则项:(L2正则化与F范数的关系)
由于谱范数暂时没有计算出来,则先计算一个更大的上界,此时神经网络的loss为
表明L2正则化使模型更好地满足L约束,降低模型对输入扰动的敏感性,增强模型的泛化性能。
6. 幂迭代求谱范数:求 ->求的最大特征根。
特征根求法:,,。
,迭代若干次,得
等价于
,,
即初始化u,v之后,迭代若干次得到u,v,然后带入计算得到的近似值。
7. 谱正则化(Spectral Norm Regularization):
F范数是一个更粗糙的条件,更准确的范数应该为谱范数。则神经网络的loss为
PyTorch计算谱范数代码(待续)
8. 梯度惩罚:只在局部空间生效???
,此时C=1,且是前述不等式的充分条件,把该项加入到网络的loss中作为惩罚项,即
9. 谱归一化(Spectral Normalization):将中所有的参数替换为
梯度惩罚的每个epoch的运行时间比谱归一化要长。
Reference:
https://spaces.ac.cn/archives/6051
《Spectral Norm Regularization for Improving the Generalizability of Deep Learning》
《Spectral Normalization for Generative Adversarial Networks》ICLR2018
标签:Spectral,loss,constraint,deep,正则,L2,learning,范数,Norm 来源: https://blog.csdn.net/lxlhexl/article/details/90726308