1.正则化的作用
在机器学习中,训练模型的目标是不仅要在训练集上表现良好,还要在测试集上表现好,我们称之为泛化。实际过程中可能都会遇到模型在训练上表现差,也就是所谓的欠拟合。也会出现在训练上表现良好,在测试上表现差,即:过拟合。而要在这两者之间寻找平衡,一个常用的方法就是正则化。
正则化的思想:在目标函数中引入额外的信息来惩罚过大的权重参数
我们假设要训练的目标函数为J(θ),那么在优化时候不是直接优化J(θ),而是优化J(θ)+λR(W),λ成为正则化系数,λR(W)称为正则项,λ越大表示正则化惩罚越大,通常只对权重做正则惩罚,不对偏置做惩罚
2. L1正则和L2正则
定义:
L1正则:权值向量w中各个元素的绝对值之和,通常表示为 ||𝑤|| 1,对于模型参数w的L1正则化公式为:
L2正则:权值向量w中各个元素的平方和然后再求平方根,通常表示为 ||𝑤|| 2,对于模型参数w的L2正则化公式为:
L1正则(特征选择,稀疏矩阵)
L1正则:相比L2更容易产生系数矩阵,所以在机器学习中更多被用于特征选择机制,对于回归模型,使用L1正则化的模型建叫做Lasso回归
推导:
假设样本是一维的,目标函数L(w),
加入L1正则后,就变为
加入L2正则后,就变为
设L(w)在w=0处的导数为d0
那么引入L1正则后导数变为:
那么引入L2正则后导数变为:
从上面结果来看,引入L2正则后,目标函数在0处导数依然是d0,引入L1正则后目标函数在0处有一个突变,若d0+λ和d0−λ异号,则在0处会是一个极小值点,优化时候很可能优化到该极小值点上,即w=0处。那么通过L1正则就很容易某个维度的特征系数为0,那么从整个模型来看,这个维度的特征对整体影响不是很大,再选择特征时就可以舍弃。而从矩阵来看,生成一些零元素,那么非零元素就会相对变得更少,以此达到稀疏矩阵的效果。
而在实际调优过程中,我们可以通过缩放λ这个正超参数来控制L1权重衰减的强度从而达到控制特征规模及矩阵的稀疏特性
L1范数约束
再假设现在是二维的数据,那么对于L1正则,我们可以设定|w|<1,则|w1|+|w2|<1,那么对于梯度下降法,求解Jθ的过程可以画出等值线,同时L1正则化的函数也可以在w1w2的二维平面上画出来。如下图:
L1正则化
从图中可以看到Jθ和L1图形相交的地方就是最优解,由于L1的图形在二维情况下有四个突出的角,多维会更多,那么与Jθ相交的概率,而在这些点上,总有权值为0的特征,这里也能分析出为什么L1正则化可以产生稀疏模型,进而可以用于特征选择。同时将w限制在这个L1图形里面,也就是形成了模型的约束区域。
L2正则与过拟合
L2正则化的模型叫做Ridge回归(岭回归)
推导
以线性回归为例:
损失函数为:
迭代公式为:
添加L2正则之后,迭代公式变为$$
可以看到,与未添加L2正则相比,每一次迭代,若w>0,权重w都要先乘以一个小于1的因子,从而导致w不断减小,若w<0,w就会不断增大,整体就是让|w|不断减小,使得模型的参数取得尽可能小的值
L2范数约束
和L1范数约束同理,我们假设现在是二维,设定|w|2<1,则
同样可以画出他们在二维平面的图形
二维平面下L2正则化的函数图形是个圆,与方形相比,被磨去了棱角,使得两个图形相交时,各个w的值几乎不会是0,同时也将w的权值约束在L2这个圆形里面。形成L2约束区域,这个区域可以通过正则化系数来控制其范围,当增大系数时,这个约束区域会减小,减小系数时,约束区域会扩大
总结
L1正则化可以产生稀疏权值矩阵,即产生一个稀疏模型,可以用于特征选择,一定程度上,L1也可以防止过拟合
L2正则化可以防止模型过拟合(overfitting)
在实际模型调整中,我们都希望权值尽可能小,然后构造出一个所有权值都比较小的模型,因为一般认为参数值小的模型比较简单,能适应不同的数据集,也在一定程度上避免了过拟合现象。可以设想一下对于一个线性回归方程,若参数很大,那么只要数据偏移一点点,就会对结果造成很大的影响;但如果参数足够小,数据偏移得多一点也不会对结果造成什么影响,专业一点的说法是『抗扰动能力强』
通常正则化项前添加一个系数,由用户指定
有些情况下L1和L2也是可以同时使用的
网友评论