其他分享
首页 > 其他分享> > Lipschitz constraint in deep learning

Lipschitz constraint in deep learning

作者:互联网

1. “稳健”模型:满足L约束

(1)对于参数扰动的稳定性

如模型f_{w+\bigtriangleup w}(x)f_{w}(x)是否有相近的效果。

(2)对于输入扰动的稳定性

f_{w}(x+\bigtriangleup x)f_{w}(x)是否有相近的效果。

2. L约束:

\left \| x_{1}-x_{2} \right \|\rightarrow 0\left \| f_{w}(x_1)-f_{w}(x_2) \right \|\rightarrow 0

存在某个常数C(与参数有关,与输入无关),使下式恒成立

\left \| f_{w}(x_1)-f_{w}(x_2) \right \|\leqslant C(w)·\left \| x_1-x_2 \right \|

其中,C(w)越小越好,意味着对输入扰动越不敏感。

3. 神经网络中的L约束:

单层全连接f(Wx+b)f为激活函数,W,b为参数矩阵(向量),则

\left \| f(Wx_1+b)-f(Wx_2+b)) \right \|\leqslant C(W,b)·\left \| x_1-x_2 \right \|

x_1,x_2充分接近,则

\left \| f(Wx_1+b)-f(Wx_2+b)) \right \|\approx \left \| \frac{\partial f}{\partial x}W(x_1-x_2) \right \|\leqslant C(W,b)·\left \| x_1-x_2 \right \|

由于现有激活函数如sigmoid,relu等满足“导数有上下界”,则\partial f/\partial x(每个元素)的绝对值都不超过某个常数,则

\left \| W(x_1-x_2) \right \|\leqslant C\left \| x_1-x_2 \right \|

希望C尽可能小,从而给参数带来一个正则化项C^2

4. 矩阵范数:

F范数(Frobenius Norm):(又称L2范数)——deep中常用的L2正则化就是这种。

\left \| W \right \|_{F}=\sqrt{\sum_{i,j}w_{ij}^2}

通过柯西不等式,有\left \| Wx \right \|\leqslant \left \| W \right \|_F·\left \| x \right \|

谱范数(Spectral Norm):(又称2范数或谱半径)

\left \| W \right \|_2=\max_{x\neq 0}\frac{\left \| Wx \right \|}{\left \| x \right \|}=\sqrt{\lambda _{1}}\lambda_{1}A^HA(Hermite矩阵)的最大特征值

谱范数\left \| W \right \|_2等于W^TW的最大特征根(主特征根)的平方根,若W是方阵,则\left \| W \right \|_2等于W的最大的特征根的绝对值。

则:

\left \| W(x_1-x_2) \right \|\leqslant \left \| W \right \|_2·\left \| x_1-x_2 \right \|

\left \| W \right \|_F\left \| W \right \|_2提供了一个上界,\left \| W \right \|_2是最准确的C,如果不太关心精准度,则C取\left \| W \right \|_F也可以。

5. L2正则项:(L2正则化与F范数的关系)

由于谱范数暂时没有计算出来,则先计算一个更大的上界\left \| W \right \|_F,此时神经网络的loss为

loss = loss(y,f_w(x))+\lambda\left \| W \right \|_F^2=loss(y,f_w(x))+\lambda(\sum_{i,j}w_{ij}^2)

表明L2正则化使模型更好地满足L约束,降低模型对输入扰动的敏感性,增强模型的泛化性能。

6. 幂迭代求谱范数:\left \| W \right \|_2  ->求W^TW的最大特征根。

特征根求法:u\leftarrow Wvv\leftarrow W^Tu\lambda \leftarrow \left \| u \right \|/\left \| v \right \|

u\leftarrow \frac{(W^TW)u}{\left \| (W^TW)u \right \|},迭代若干次,得\left \| W \right \|_2^2\approx u^TW^TWu

等价于

v\leftarrow \frac{W^Tu}{\left \| W^Tu \right \|}u\leftarrow \frac{Wv}{\left \| Wv \right \|}\left \| W \right \|_2\approx u^TWv

即初始化u,v之后,迭代若干次得到u,v,然后带入计算得到\left \| W \right \|_2的近似值。

7. 谱正则化(Spectral Norm Regularization):

F范数是一个更粗糙的条件,更准确的范数应该为谱范数。则神经网络的loss为

loss=loss(y,f_w(x))+\lambda\left \| W \right \|_2^2

PyTorch计算谱范数代码(待续)

8. 梯度惩罚:只在局部空间生效???

\left | f(x_1)-f(x_2) \right |\leqslant \left \| x_1-x_2 \right \|,此时C=1,且\left \| f^{'}(x) \right \|=1是前述不等式的充分条件,把该项加入到网络的loss中作为惩罚项,即

loss=loss(y,f_w(x))+\lambda\left \| f^{'}(x)-1 \right \|^2

9. 谱归一化(Spectral Normalization):f中所有的参数替换为w/\left \| w \right \|_2

梯度惩罚的每个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