1 正则化的背景和作用
问题背景:机器学习的参数太多,会导致模型的复杂度上升,容易产生过拟合。
正则化的原理:在损失函数上增加某些限制,减少求出过拟合解的可能性。
作用:
- 对参数进行约束,降低模型复杂度,从而避免过拟合。假设一个线性回归模型,如果参数很大,只要数据有一点点偏移,那么结果的差距就会很大;如果参数很小,那么数据偏移量较多也不会有太大影响,这样模型对于数据就会有一定的抗扰动能力,
- 相当于将模型的先验知识增加到损失函数中。
常用的正则化方法:L1,L2,
。
2 范数的定义
范数:向量中非0元素的个数。
范数:向量中各个元素绝对值之和。也叫“稀疏规则算子”。L0和L1范数用于正则化可以导致稀疏性。
范数:向量各元素平方和再求平方根:
与
范数不同,
范数不会让参数等于0,而是接近于0。
范数可以防止过拟合,同时让求解变得稳定和快速。
3 参数稀疏的好处
3.1 特征选择
稀疏的参数可以在一定程度上实现对参数的选择。一般而言,大部分特征不提供信息,或者对预测帮助很小。稀疏算子的引入可以在一定程度上去掉这些没有帮助的特征,即将它们的权重置0,这样就只关注那些权重非0的特征,从而实现对特征的自动选择。
3.2 可解释性
稀疏性可以使参数更容易被分析和解释。如果最后学习到的参数是稀疏的,那么我们有理由相信,最后剩余的这些参数提供的信息量是巨大的、决定性的,只通过对这些决定性的特征进行组合就可以对结果进行预测,那么对这些参数进行分析就容易多了,进而也更容易解释它们。
4 L1和L2正则化的区别
L1范数更容易产生稀疏模型,而L2范数更容易避免过拟合。
4.1 从优化的角度
考虑一个只有两个参数
的模型,其损失函数为
,其中
表示正则化项。
4.1.1 L1范数
对于L1范数而言,
和
范数可以画在同一幅图中,如下图所示:
图中横纵坐标分别为
和
,彩色的曲线表示
的等值线,黑色的直线表示L1范数的图形。
和
图形首次相交的点就是最优解,注意到这个点的坐标是
。
由上图可见,
的图形有很多突出的点,在这些点上会有很多权重等于0,而
与这些突出的点相交的机会远大于与其他部位相交的区域,因此就会产生稀疏性。
4.1.2 L2范数
对于L2范数,画出相同的图形如下:
可见L2范数的图形没有“角”,因此
与L2范数图形相交的点具有稀疏性的可能性就很小。
4.2 从梯度的角度
假设存在某线性回归模型,其损失函数为:
由梯度下降得到的权重迭代更新公式为:
其中
为学习率。
4.2.1 带有L1范数的损失函数梯度
带有L1范数的损失函数为:
其梯度为:
参数迭代更新公式为:
其中
为学习率。
4.2.2 带有L2范数的损失函数梯度
带有L2范数的损失函数为:
其梯度为:
参数迭代更新公式为:
4.2.3 两者梯度的区别
在参数更新时,L1范数对应的梯度为
,而L2范数为
。
当
时,L2范数对应的梯度更大,从而参数减小更快;而当
时,L1范数对应梯度更大、参数变化更快。
此外,当
越小时,L1更容易接近到0,而L2更不容易变化,因此带有L1范数的损失函数会获得更多接近于0的
,即更为稀疏的参数;相比之下,L2获取到的
值更为平滑。
4.3 从先验的角度
为损失函数加入正则化项,相当于为
的参数加先验,要求这些参数满足某一分布。
L1正则化相当于为
加入Laplace分布的先验,使得
趋向于0本身;L2正则化相当于加入Gaussian分布的先验,使得
趋向于0周围。