Lipschitz constraint in deep learning

匿名 (未验证) 提交于 2019-12-02 23:36:01

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

文章来源: https://blog.csdn.net/lxlhexl/article/details/90726308
标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!