在机器学习模型中,往往会有模型相对复杂过、拟合的情况。所以为了增加其泛化能力,最常用的方法就是增加正则化,常见的就是L1和L2正则化。
- L2正则化
L2正则化,就是在原来损失函数的基础上加上权重向量的L2范式:
E是基本损失函数,||ω||2是权重向量的L2范式,也就是向量元素的平方和
,λ是两者的调和系数。这种形式我们最常见的就是线性回归模型中的岭回归模型,就是用过的L2正则化。我们将上式转化一种形式:
![]()
上面的系数λ/2是为了方便后面计算而写的,反正是个系数,怎么表达都行。后面的是关于ω的平方和公式,为了后面画图方面,我们将其限定为二维的,那么后面的就是一个以原点为圆心的圆,假设半径为C,那么
,所以整体的损失可以看成是两个函数的和:
即 ![]()
画出函数图像(我也不画了,直接用网上的图片):

上图中的圆是O(ωj),彩色的是E(ωj)。我们都知道求极值的方法就是求导然后令导数等于0,然后对上式采用同样的方法,得到:
![]()
前后两项,分别是自己对ω的各个分量求一阶导数,那么也就是我们熟悉的梯度的概念,梯函数增长最快的方向,而我们是求最小值,所以上式修改为:
即
即![]()
我们知道圆的梯度方向是垂直于圆切线方向向外的向量,在这里也就是向量ω,而
是原损失函数的梯度,他们之间存在一个系数λ,当λ很大的时候,ω就相对较小,当λ很小的时候,ω就相对较大,容易出现过拟合的现象;但是当λ特别小,无限趋近于0的时候,正则化项就相当于失效了,或者说圆的半径C特别大,那么对最优值就构不成最限制了。
我们这么想,如果没有正则化项,通过算法在样本数据上就很容易取到最优值,那么就是容易过拟合,而我们加入正则化项,就是将限定在一定范围内,然后求解,这样就防止了在训练数据上得到所谓的“最优解”。
- L1正则化
其实L1正式则化和L2正则化道理是一样的,只不过是对系数的限定函数做了变化。L2是各项的平方和,L1是各项的绝对值之和。画出下列图像:

下面的正方形就是L1范式的图像,也是对系数ω做了限制。但是L1范式不能像L2范式那样直接求导,因为我们看图像就知道L1在图像的顶点处是不可导的,但是存在极值。
但是L1范试更多的是可以用来进行特征的选择,因为L1范式的函数图像棱角比较明显,所以最优值也容易在这个对应的极值点出取到,而这个极值点出存在ω中的某些项为0的情况,那么其对应的特征项就不起作用了,说明该项特征对整体的影响不大,从而起到了特征选择的作用。
6363



被折叠的 条评论
为什么被折叠?



