本文转载的是知乎上这篇文章,详细内容可以去看看原文。这里只是为了简单理解L1和L2正则化在克服过拟合中的逻辑。
L1、L2正则化和过拟合
过拟合问题是机器学习中经常需要考虑的问题,有两个办法可以解决过拟合问题,一个是增加更多的数据,另一个是使用正则化来简化模型,使得模型在新的数据上有更好的泛化性能。
常用的正则化方法是L1正则化和L2正则化。在介绍L1和L2正则化之前先了解一下什么是范数。
1. 范数 norm
范数可以将一个向量转换为一个标量,可以理解为衡量一个向量的长度。在遇到机器学习中的低秩,稀疏模型时,会用到各种范数。范数的公式如下:
∣ ∣ x ∣ ∣ p = ( ∣ x 1 ∣ p + . . . + ∣ x n ∣ p ) 1 p ||x||_p = (|x_1|^p + ... + |x_n|^p)^{\frac{1}{p}} ∣∣x∣∣p=(∣x1∣p+...+∣xn∣p)p1
p=1时,就是向量的1范数(L1范数),即向量的各个元素的绝对值之和,又称为曼哈顿距离。使用L1范数可以度量两个向量间的差异(绝对误差和)。
∣ ∣ x ∣ ∣ 1 = ∣ x 1 ∣ + . . . + ∣ x n ∣ ||x||_1 = |x_1| + ... + |x_n| ∣∣x∣∣1=∣x1∣+...+∣xn∣
p=2时,就是向量的2范数(L2范数),即向量的每个元素的平方之和的平方根,也可以表示向量的长度(模)或两点之间的距离,又称为欧氏距离。L2也可以度量两个向量间的差异(平方误差和)。
∣ ∣ x ∣ ∣ 2 = ∣ x 1 ∣ 2 + . . . + ∣ x n ∣ 2 ||x||_2 = \sqrt{ |x_1|^2 + ... + |x_n|^2 } ∣∣x∣∣2=∣x1∣2+...+∣xn∣2
2. L1和L2正则化
L1范数和L2范数,用在机器学习中就是L1正则化、L2正则化。正则化就是在原损失函数(目标函数)中引入正则项(惩罚项),下面是多样本的添加了正则项的损失公式,其中 λ 是正则化参数,决定了正则项作用的强弱:
L = 1 N ∑ i L i + λ R ( W ) λ > 0 L = \frac{1}{N}\sum_{i}L_i + \lambda R(W) \qquad \lambda > 0 L=N1i∑Li+λR(W)λ>0
第一项为data loss,第二项为regularization loss。
数据损失部分表示由权重参数构成的模型对训练数据的拟合程度,但是我们更关心的是该模型对测试数据的拟合程度,添加一个正则项可以简化模型并提高模型在测试数据上的泛化性能,即在模型中添加正则项是为了简化模型,而不是拟合数据。
下面分别是添加L1正则项和L2正则项的损失函数:
L = 1 N ∑ i L i + λ ∑ k ∑ l ∣ W k , l ∣ L = \frac{1}{N}\sum_{i}L_i + \lambda \sum_{k}\sum_{l}|W_{k,l}| L=N1i∑Li+λk∑l∑∣Wk,l∣
L = 1 N ∑ i L i + λ ∑ k ∑ l ∣ W k , l 2 ∣ L = \frac{1}{N}\sum_{i}L_i + \lambda \sum_{k}\sum_{l}|W_{k,l}^2| L=N1i∑Li+λk∑l∑∣Wk,l2∣
L1正则化是指权重矩阵中各个元素的绝对值之和,为了优化正则项,会减少参数的绝对值总和,所以L1正则化倾向于选择稀疏(sparse)权重矩阵(稀疏矩阵指的是很多元素都为0,只有少数元素为非零值的矩阵)。L1正则化主要用于挑选出重要的特征,并舍弃不重要的特征。
L2正则化是指权重矩阵中各个元素的平方和,为了优化正则项,会减少参数平方的总和,所以L2正则化倾向于选择值很小的权重参数(即权重衰减),主要用于防止模型过拟合。是最常用的正则化方法。一定程度上,L1也可以防止过拟合。
1126

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



