前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >L2正则效果不好?试试WEISSI正则

L2正则效果不好?试试WEISSI正则

作者头像
mathor
发布2021-06-17 18:07:40
6990
发布2021-06-17 18:07:40
举报
文章被收录于专栏:mathor

L2正则的表现通常没有理论上说的那么好,很多时候加了可能还有负作用。最近的一篇文章《Improve Generalization and Robustness of Neural Networks via Weight Scale Shifting Invariant Regularizations》从"权重尺度偏移"这个角度分析了L2正则的弊端,并提出了新的WEISSI正则项。本文将指出常见的深度学习模型中存在的"权重尺度偏移(Weight Scale Shif)"现象,这个现象可能会导致L2正则的作用没那么明显。进一步地,我们可以构建一个新的正则项,它具有跟L2类似的作用,但是与权重尺度偏移现象更加协调,理论上来说更加有效。为了方便大家理解,请先阅读L2正则化的一些思考这篇文章

权重尺度偏移

我们知道深度学习模型的基本结构就是"线性变换+非线性激活函数",而现在最常用的激活函数之一是\varepsilon \ge 0 ,我们有\varepsilon \phi(x)=\phi(\varepsilon x) 恒成立。对于其他的激活函数如SoftPlus、GELU、Swish等,其实它们都是\text{ReLU} 的光滑近似,因此也可以认为它们是满足"正齐次性"

"正齐次性"使得深度学习模型对于权重尺度偏移具有一定的不变性。具体来说,假设一个

$$ \begin{aligned} \boldsymbol{h}_l =&\, \phi(\boldsymbol{W}_l \boldsymbol{h}_{l-1} + \boldsymbol{b}_l) \ =& \,\phi(\boldsymbol{W}_l \phi(\boldsymbol{W}_{l-1} \boldsymbol{h}_{l-2} + \boldsymbol{b}_{l-1}) + \boldsymbol{b}_l) \ =& \,\cdots\ =& \,\phi(\boldsymbol{W}_l \phi(\boldsymbol{W}_{l-1} \phi(\cdots\phi(\boldsymbol{W}_1\boldsymbol{x} + \boldsymbol{b}_1)\cdots) + \boldsymbol{b}_{l-1}) + \boldsymbol{b}_l) \end{aligned}\tag{1} $$

假设每个参数引入偏移\boldsymbol{W}_l = \gamma_l\tilde{\boldsymbol{W}}_l,\boldsymbol{b}_l = \gamma_l\tilde{\boldsymbol{b}}_l ,那么根据正齐次性可得

$$ \begin{aligned} \boldsymbol{h}_l =\left(\prod_{i=1}^l \gamma_i\right) \phi(\tilde{\boldsymbol{W}}_l \phi(\tilde{\boldsymbol{W}}_{l-1} \phi(\cdots\phi(\tilde{\boldsymbol{W}}_1\boldsymbol{x} + \tilde{\boldsymbol{b}}_1)\cdots) + \tilde{\boldsymbol{b}}_{l-1}) + \tilde{\boldsymbol{b}}_l) \end{aligned}\tag{2} $$

如果\prod\limits_{i=1}^l \gamma_i=1 ,那么参数为\{\boldsymbol{W}_l,b_l\} 就跟参数完全等价了。换句话说,模型对于\prod\limits_{i=1}^l\gamma_i=1 的权重尺度偏移具有不变性(WEIght-Scale-Shift-Invariance,WEISSI)

与L2正则不协调

刚才我们说只要尺度偏移满足\prod\limits_{i=1}^l\gamma_i=1 ,那么两组参数对应的模型就等价了,但问题是它们对应的L2正则却不等价:

$$ \begin{equation}\sum_{i=1}^l \Vert\boldsymbol{W}_i\Vert_2^2=\sum_{i=1}^l \gamma_i^2\Vert\tilde{\boldsymbol{W}}_i\Vert_2^2\neq \sum_{i=1}^l \Vert\tilde{\boldsymbol{W}}_i\Vert_2^2\end{equation}\tag{3} $$

并且可以证明,如果固定\Vert \boldsymbol{W}_1\Vert_2,\Vert \boldsymbol{W}_2\Vert_2,...,\Vert \boldsymbol{W}_l\Vert_2 ,并且保持约束\prod\limits_{i=1}^l\gamma_i=1 ,那么\sum\limits_{i=1}^l\left\Vert \tilde{\boldsymbol{W}}_i\right\Vert_2^2 的最小值在

\begin{equation}\Vert\tilde{\boldsymbol{W}_1}\Vert_2^2=\Vert\tilde{\boldsymbol{W}}_2\Vert_2^2=\dots=\Vert\tilde{\boldsymbol{W}}_l\Vert_2^2=l\cdot\left(\prod_{i=1}^l \Vert\boldsymbol{W}_i\Vert_2^2\right)^{1/l}\end{equation}\tag{4}

上面的证明主要利用积定和最小性质(a+b\ge 2\sqrt{ab} 变形),即已知x>0,y>0 如果积xy 是定值p ,那么当且仅当x=y 时,x+y 有最小值2\sqrt{xy} 。实际上我们将其推广到l 项也是成立的。其中: $$ x_1 = \Vert\tilde{\boldsymbol{W}}_1\Vert_2^2=\frac{\Vert\boldsymbol{W}_1\Vert_2^2}{\gamma_1^2}\ x_2 = \Vert\tilde{\boldsymbol{W}}_2\Vert_2^2=\frac{\Vert\boldsymbol{W}_2\Vert_2^2}{\gamma_2^2}\ \vdots\ x_l = \Vert\tilde{\boldsymbol{W}}_l\Vert_2^2=\frac{\Vert\boldsymbol{W}_l\Vert_2^2}{\gamma_l^2}\ $$ 因为

x_1x_2\cdots x_l=\prod_{i=1}^{l}\Vert\tilde{\boldsymbol{W}}_i\Vert_2^2=\frac{\prod\limits_{i=1}^l\Vert \boldsymbol{W}_i\Vert_2^2}{\prod\limits_{i=1}^{l}\gamma_i^2}=\prod_{i=1}^l\Vert \boldsymbol{W}_i\Vert_2^2

是定值,所以当

\Vert\tilde{\boldsymbol{W}}_1\Vert_2^2=\Vert\tilde{\boldsymbol{W}}_2\Vert_2^2=\cdots =\Vert\tilde{\boldsymbol{W}}_l\Vert_2^2

时,\sum\limits_{i=1}^l\left\Vert \tilde{\boldsymbol{W}}_i\right\Vert_2^2 的最小值为

l\cdot\left(\prod_{i=1}^l \Vert\tilde{\boldsymbol{W}}_i\Vert_2^2\right)^{1/l}=l\cdot \left(\prod_{i=1}^l\Vert\boldsymbol{W}_i\Vert_2^2\right)^{1/l}

事实上,这就体现了L2正则的低效性。试想一下,假如我们已经训练得到一组参数\{\boldsymbol{W}_l,b_l\} ,这组参数泛化性能可能不太好,于是我们希望L2正则能帮助优化器找到一组更好的参数(牺牲一点\mathcal{L}_{\text{task}} ,降低一点\mathcal{L}_{\text{reg}} )。但是,上述结果告诉我们,由于权重尺度偏移不变性的存在,模型完全可以找到一组新的参数\{\tilde{\boldsymbol{W}}_l, \tilde{b}_l\} ,它跟原来参数的模型完全等价(没有提升泛化性能),但是\mathcal{L}_{\text{reg}} 还更小。说白了,就是L2正则确实起作用了,它使得\sum\limits_{i=1}^l\Vert\boldsymbol{W}_i\Vert_2^2 更小,但并没有提升模型的泛化性能,没有达到使用L2正则的初衷

WEISSI正则

上述问题的根源在于,模型对权重尺度偏移具有不变性,但是L2正则对权重尺度偏移没有不变性。如果我们能找到一个新的正则项,它具有类似的作用,同时还对权重尺度偏移不变,那么就能解决这个问题了

我们考虑如下的一般形式的正则项

\mathcal{L}_{\text{reg}}=\sum_{i=1}^l\varphi(\Vert\boldsymbol{W}_i\Vert_2)\tag{5}

对于L2正则来说,\varphi(x)=x^2 ,只要\varphi(x) 是关于x[0,+\infty) 上的单调递增函数,就能保证优化目标是缩小\Vert\boldsymbol{W}_i\Vert 。要注意我们希望正则项具有尺度偏移不变性,其实并不需要严格要求\varphi(\gamma x)=\varphi(x) ,而只需要

\frac{d}{dx}\varphi(\gamma x)=\frac{d}{dx}\varphi(x)\tag{6}

因为优化过程只需要用到它的梯度。可能有的读者已经看出它的一个解了,其实就是对数函数\varphi(x)=\log x ,所以新提出来的正则项就是

$$ \begin{aligned} \mathcal{L}_{\text{reg}}&=\sum_{i=1}^l \log \Vert \boldsymbol{W}_i\Vert_2\ &=\log\left(\prod_{i=1}^l\Vert\boldsymbol{W}_i\Vert_2\right) \end{aligned}\tag{7} $$

除此之外,原论文可能担心上述正则项惩罚力度不够,因此还对参数方向加了个L1的惩罚,总的形式为:

\mathcal{L}_{\text{reg}}=\lambda_1\sum_{i=1}^l\log \Vert\boldsymbol{W}_i\Vert_2+\lambda_2\sum_{i=1}^l\left\Vert \frac{\boldsymbol{W}_i}{\Vert\boldsymbol{W}_i\Vert_2}\right\Vert_2\tag{8}
实验效果简述

按惯例展示一下原论文的实验结果,当然既然作者都整理成文了,显然说明是有积极效果的:

对我们来说,无非就是知道有这么个新的选择,炼丹的时候多一种尝试罢了。毕竟正则项这种东西,没有什么理论保证它一定能起作用,别人说得再漂亮也不一定有用,还是只有自己用了才知道效果

Reference
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 权重尺度偏移
  • 与L2正则不协调
  • WEISSI正则
  • 实验效果简述
  • Reference
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档