规范化
取自孙明的"数字图像处理与分析基础"
1. 引入——病态问题和约束
通过改变模型 的拟合能力来避免过拟合并不是 一件容易的事情,更常用的办法是使用规范化 对模型的参数进行一定的约束。下面来考虑一个非常简单的例子,求下面方程的解:
2 x − y + 2 = 0 " role="presentation">2x−y+2=0 2 x − y + 2 = 0
这是一个二元一次方程,有无数个解,都在下图1a所示的这条直线上 。
图1 病态方程求解和规范化
这是一个典型的病态(ill-posed)方程,有无数个解可以满足方程,可以通过x " role="presentation">x x 和y " role="presentation">y y 代入等式左边求出0,但是通过等式来推导x " role="presentation">x x 和y " role="presentation">y y 的值却是不可行的。病态方程除了有不可逆的性质,在数值计算上也不受欢迎,比如x = 10 9 , y = 2 ∗ 10 9 + 2 " role="presentation">x=109,y=2∗109+2 x = 10 9 , y = 2 ∗ 10 9 + 2 ,那么如果x " role="presentation">x x 和y " role="presentation">y y 的系数发生很小的变化,则这个变化会被放大很多到等式的右边,在数值计算中,这常常是不稳定的。
针对病态方程,一个常见的办法是加入一个约束项,缩小x " role="presentation">x x 和y " role="presentation">y y 的取值范围,比如令x 2 + y 2 = 0.8 " role="presentation">x2+y2=0.8 x 2 + y 2 = 0.8 ,如图1b所示,则相当于约束x " role="presentation">x x 和y " role="presentation">y y 在半径为2 5 " role="presentation">25–√ 2 5 圆上,于是相切点(-0.8,0.4)成了一个稳定的解。此外还可以令约束为| x | + | y | = 1 " role="presentation">|x|+|y|=1 | x | + | y | = 1 ,则交点也只有一个,就是(-1,0),也是一个稳定的唯一解。
2. L2规范化
虽然上面讨论的是一个非常简单的解方程的例子,但是和机器学习 的问题有许多相似性。基于参数的机器学习模型某种程度上就是一个不可逆的问题,对于同一个损失函数 值,可以对应很多种不同的参数。甚至在高维度下,极小值和最小值都很接近,所以即使是很好优化 过的模型,也会对应许多不同的参数组 合,而这些组合未必是数值稳定的。而且因为参数的范围更自由,可以得到很小的训练误差,往往都不具有很好地泛化能力 (对训练数据 以外数据做出准确预测的能力成为泛化能力)。这时候可以考虑加入一个约束项,这种方法叫做规范化(Regularization)。具体来说就是在损失函数 里加上一项,最常用的一种是L2规范化:
其实就是L2范数,也就是欧氏距离的平方乘上一个系数。在神经网络 中,L2规范化通常只应用于仿射变换中的线性变换部分,也就是w x + b " role="presentation">wx+b w x + b 的w " role="presentation">w w 。根据公式形式,这样一项加上之后,权重 的绝对值大小就会整体倾向于减小,尤其是不会出现特别大的值。所以L2规范化还有个名字叫做权重衰减(weight decay),也有一种理解这种衰减是对权重的惩罚,所以有时候会看到文章 或者书里管这一项叫做惩罚(penalty)项。
下面通过一个简单的例子来形象理解下L2规范化的作用。考虑一个只有两个参数w 1 " role="presentation">w1 w 1 和w 2 " role="presentation">w2 w 2 的模型,其损失函数曲面如图2所示。
图2 L2规范化对目标函数曲面的影响
图2a是一个目标函数,可以看到,最小值所在是一条线,整个曲面像一条山岭倒过来一样。这样的曲面对应无数个参数组合,单纯用梯度下降法是难以得到确定解的,可以看做是一个典型的病态问题。但是加上一项0.1 ∗ ( w 1 2 + w 2 2 ) " role="presentation">0.1∗(w21+w22) 0.1 ∗ ( w 1 2 + w 2 2 ) ,则曲面 变成了如图2b所示的样子。最小值所在从倒过来的“岭”变成了一个“谷”。需要注意的是“谷”所在的位置并不是规范项的中心(0,0),而是根据规范化系数的大小和原来损失函数曲面共同决定的。当规范化系数α → ∞ " role="presentation">α→∞ α → ∞ 时,原来的损失函数可以忽略,则“谷”的位置趋近于(0,0);当α → 0 " role="presentation">α→0 α → 0 时,“谷”的位置趋近于原损失函数曲面中“岭”所在的位置。总之加上这一项之后,梯度下降法就能够解决了。并且通过这个例子可以看出,L2规范项还起到了帮助收敛的作用。统计学里这个方法常用来处理多重线性下的最小二乘法问题,并且有个形象的名字叫做岭回归(ridge regression )。
L1规范化(L1 Regularization)
除了L2规范化,L1规范化也是最常见的规范化方法之一,形式如下:
其实在图1所示的例子中已经见过,和L2的区别主要是L2项的等高线不同,二维情况的等高线画在了图1c中,是个旋转45 ∘ " role="presentation">45∘ 45 ∘ 的正方形。这个性质让L1规范化后的参数更趋向于某些维度为0,也就是稀疏性。关于这个性质的形象理解,还是来看一个二维的例子,如图3所示。
图3中虚线代表的是元损失函数的等高线,实线代表的是规范化项的等高线,左边a图是L2的情况,右边b图是L1的情况。当整体函数达到最小值的时候,如图a中点所示的位置,所以能够很清楚看出,L2项让整体参数都有变小的趋势。二L1则会让参数的方向朝着某个轴靠近,比如图3b中,因为原始损失函数等高线的形状,无论L1项的系数怎么变,最终最小值一定是在横轴上。这样的约束可以让有效特征的数量变少,从而获得稀疏性。因为这个性质,L1规范化经常被用在降噪 声和图像重建中。在统计学里L1规范化也有另外一个名字叫做LASSO,即least absolute Shrinkage and Selection Operator,是对L1规范化的一个简短概括。
图3 L2规范化和L1规范化的区别
相关阅读
在Excel2010中如何使用选择性粘贴
在Excel2010工作表中,用户可以使用“选择性粘贴”命令有选择地粘贴剪贴板中的数值、格式、公式、批注等内容,使复制和粘
lol2018年2月幸运召唤师活动地址 2月幸运召唤师活动网
lol2018年2月幸运召唤师活动地址,lol2月幸运召唤师活动网址,幸运召唤师的活动是游戏中特别给力的活动之一,大家可以通过超低的折扣来
Excel2010中快速输入身份证号码的操作方法
excel作为功能强大的办公软件,是非常重要的。许多朋友在输入身份证号的时候,会遇到类似3.62202E+17的情况,苦恼不堪。如何迅速的在ex
Excel2007如何分类汇总
Excel是Microsoft Office system中的电子表格程序。您可以使用 Excel 创建工作簿(电子表格集合)并设置工作簿格式,以便分析数据和
excel2007中制作员工工资表--自动生成既有格式的方法
企业要想提高整体工作效率,使工作和管理一体化,就必须规范员工工资的管理,再录入时经常会有各自用完而输入内容又要重复前面的工作的