ML/DL-复习笔记【二】- L1正则化和L2正则化
作者:互联网
本节为ML/DL-复习笔记【二】L1正则化和L2正则化,主要内容包括:L1正则化和L2正则化的定义、作用、性质以及作用机制。
L1正则化和L2正则化可以看做是损失函数的惩罚项。所谓『惩罚』是指对损失函数中的某些参数做一些限制。对于线性回归模型,使用L1正则化的模型建叫做Lasso回归,使用L2正则化的模型叫做Ridge回归(岭回归)。二者的损失函数分别为:
一般回归分析中
ω
\omega
ω表示特征的系数,从上式可以看到正则化项是对系数做了处理(限制)。L1正则化和L2正则化的说明如下:
- L1正则化是指权值向量 ω \omega ω中各个元素的绝对值之和,通常表示为 ∣ ∣ ω ∣ ∣ 1 ||\omega||_1 ∣∣ω∣∣1
- L2正则化是指权值向量 ω \omega ω中各个元素的平方和然后再求平方根(可以看到Ridge回归的L2正则化项有平方符号),通常表示为 ∣ ∣ ω ∣ ∣ 2 ||\omega||_2 ∣∣ω∣∣2
两个正则化的作用分别为:
- L1正则化可以产生稀疏权值矩阵,即产生一个稀疏模型,可以用于特征选择
- L2正则化可以防止模型过拟合(overfitting);一定程度上,L1也可以防止过拟合
更加详细地:
- L1正则化有一个有趣的性质,它会让权重向量在最优化的过程中变得稀疏(即非常接近0)。也就是说,使用L1正则化的神经元最后使用的是它们最重要的输入数据的稀疏子集,同时对于噪音输入则几乎是不变的了。相较L1正则化,L2正则化中的权重向量大多是分散的小数字。
- L2正则化可以直观理解为它对于大数值的权重向量进行严厉惩罚,倾向于更加分散的权重向量。由于输入和权重之间的乘法操作,这样就有了一个优良的特性:使网络更倾向于使用所有输入特征,而不是严重依赖输入特征中某些小部分特征。 L2惩罚倾向于更小更分散的权重向量,这就会鼓励分类器最终将所有维度上的特征都用起来,而不是强烈依赖其中少数几个维度。。这样做可以提高模型的泛化能力,降低过拟合的风险。
- 在实践中,如果不是特别关注某些明确的特征选择,一般说来L2正则化都会比L1正则化效果好。
Q:为什么要生成系数权值矩阵?
稀疏矩阵指的是很多元素为0,只有少数元素是非零值的矩阵,即得到的线性回归模型的大部分系数都是0. 通常机器学习中特征数量很多,例如文本处理时,如果将一个词组(term)作为一个特征,那么特征数量会达到上万个(bigram)。在预测或分类时,那么多特征显然难以选择,但是如果代入这些特征得到的模型是一个稀疏模型,表示只有少数特征对这个模型有贡献,绝大部分特征是没有贡献的,或者贡献微小(因为它们前面的系数是0或者是很小的值,即使去掉对模型也没有什么影响),此时我们就可以只关注系数是非零值的特征。这就是稀疏模型与特征选择的关系。
上面的内容说明了正则化起的是什么作用,接下来看如何起作用。
模型的学习优化的目标是最小化损失函数,学习的结果是模型参数。在原始目标函数上添加正则化的作用相当于在参数的原始解空间添加了额外的约束,L1正则化对解空间添加的约束是:
而L2正则化对解空间的约束是:
直观来看,假设一个二维参数空间,假设有两个参数
ω
1
\omega_1
ω1和
ω
2
\omega_2
ω2,则L1正则化对解空间的约束为:
L2对解空间的约束为:
则二维平面上绘制这两个式子,得L1约束的范围是一个顶点在坐标轴上的菱形,L2约束的范围是一个圆形:
上图中左面是L2约束下的解空间图像,右边是L1约束下的解空间图像。蓝色的圈表示损失函数的等值线,圆的半径越大损失值越大,由内而外损失函数值越来越小,中间最小。如果没有L1和L2正则化约束的化,
ω
1
\omega_1
ω1和
ω
2
\omega_2
ω2是可以任意取值的,损失函数可以优化到中心的最小值,但是添加了约束之后就把解空间约束在了黄色平面内。黄色图像的边缘与损失函数等值线的交点,便是满足约束条件的损失函数最小化的模型的解。
由于L1正则化约束的解空间是一个菱形所以等值线与菱形端点相交的概率比与线中间相交的概率要大很多,端点在坐标轴上,所以一些参数的取值便为0。L2正则化约束的解空间是圆形,所以等值线与圆的任何部分相交的概率一样,所以不会产生稀疏的参数。
那么为什么L2倾向于产生分散而小的参数呢,因为模型求解时要求,在约束条件满足的情况下最小化损失函数, ∑ ∣ ∣ ω ∣ ∣ 2 2 \sum||\omega||_2^2 ∑∣∣ω∣∣22也应尽可能小,举个栗子:设输入向量 x = [ 1 , 1 , 1 , 1 ] x=[1,1,1,1] x=[1,1,1,1],两个权重向量分别为 [ 1 , 0 , 0 , 0 ] 、 [ 0.25 , 0.25 , 0.25 , 0.25 ] [1,0,0,0]、[0.25,0.25,0.25,0.25] [1,0,0,0]、[0.25,0.25,0.25,0.25],有 ω 1 T x = ω 2 T = 1 \omega^T_1x=\omega^T_2=1 ω1Tx=ω2T=1,L2惩罚分别为1.0和0.25。这样一看,后者权重向量更好,正则化损失更小。直观来看后者更加分散,更加小。
一般正则化项都会添加一个超参数 λ \lambda λ,用于平衡经验风险和结构风险(也就是正则项),以L2为例,若 λ \lambda λ很小则我们考虑经验风险更多一些,对于结构风险没有那么重视,约束条件更为宽松。对应上文中的 C 值就很大。这时候,圆形区域很大,能够让 w 更接近中心最优解的位置。若 λ \lambda λ近似为 0,相当于圆形区域覆盖了最优解位置,这时候,正则化失效,容易造成过拟合。相反,若 λ 很大,约束条件更为严格,对应上文中的 C 值就很小。这时候,圆形区域很小, ω \omega ω离中心最优解的位置较远。 ω \omega ω 被限制在一个很小的区域内变化, ω \omega ω普遍较小且接近 0,起到了正则化的效果。但是, λ \lambda λ过大容易造成欠拟合。
总的来看
- 添加正则化相当于参数的解空间添加了约束,限制了模型的复杂度
- L1正则化的形式是添加参数的绝对值之和作为结构风险项,L2正则化的形式添加参数的平方和作为结构风险项
- L1正则化鼓励产生稀疏的权重,即使得一部分权重为0,用于特征选择;L2鼓励产生小而分散的权重,鼓励让模型做决策的时候考虑更多的特征,而不是仅仅依赖强依赖某几个特征,可以增强模型的泛化能力,防止过拟合。
- 正则化参数 λ越大,约束越严格,太大容易产生欠拟合。正则化参数 λ越小,约束宽松,太小起不到约束作用,容易产生过拟合。
- 如果不是为了进行特征选择,一般使用L2正则化模型效果更好。
参考文章:L1正则化和L2正则化
欢迎扫描二维码关注微信公众号 深度学习与数学 [每天获取免费的大数据、AI等相关的学习资源、经典和最新的深度学习相关的论文研读,算法和其他互联网技能的学习,概率论、线性代数等高等数学知识的回顾]
标签:DL,0.25,ML,模型,正则,L2,L1,omega 来源: https://blog.csdn.net/kevin_zhao_zl/article/details/107405728