L2(岭回归)和L1(lasso回归)

720 阅读3分钟

1. L2(岭回归)


1.1 问题

①当训练的特征和数据很少时,往往会造成欠拟合的情况,对应的是左边的坐标;
②当有很多个特征值时,训练模型的时候往往会造成过拟合的情况,如右边的坐标所示;
而我们想要达到的目的往往是中间的坐标,适当的特征和数据用来训练;

1.2 公式

以图中的公式为例,往往我们得到的模型是:{\theta _0} + {\theta _1}x + {\theta _2}{x^2} + {\theta _3}{x^3} + {\theta _4}{x^4} 为了能够得到中间坐标的图形,肯定是希望{\theta _3}{\theta _4}越小越好,因为这两项越小就越接近于0,就可以得到中间的图形了。

对应的损失函数也加上这个惩罚项(为了惩罚\theta):假设\lambda  = 1000

min(\frac{1}{{2m}}[\sum\limits_{i = 1}^m {{{({h_\theta }({x^i}) - {y^i})}^2}}  + 1000\theta _3^2 + 1000\theta _4^2])

公式通用化得:

min(\frac{1}{{2m}}[\sum \limits_{i = 1}^m {{{({h_\theta }({x^i}) - {y^i})}^2}}  + \lambda \sum \limits_{j = 1}^n {\theta _j^2} ])

相当于在原始损失函数中加上了一个惩罚项(\lambda项)
这就是防止过拟合的一个方法,通常叫做L2正则化,也叫作岭回归

1.3 对应图形

简化L2正则化的方程:

J = {J_0} + \lambda\sum\limits_w {{w^2}}

{J_0} 表示原始的损失函数,咱们假设正则化项为: L = \lambda (w_1^2 + w_2^2)

我们已知圆形的方程:{(x - a)^2} + {(y - b)^2} = {r^2}

其中(a,b)为圆心坐标,r为半径。 那么经过坐标原点的单位元可以写成:{x^2} + {y^2} = 1

正和L2正则化项一样,同时,机器学习的任务就是要通过一些方法(比如梯度下降)求出损失函数的最小值。

此时我们的任务变成在L约束下求出J_0取最小值的解。

求解J_o的过程可以画出等值线。同时L2正则化的函数L也可以在w_1 w_2的二维平面上画出来。如下图:

L表示为图中的黑色圆形,随着梯度下降法的不断逼近,与圆第一次产生交点,而这个交点很难出现在坐标轴上。

这就说明了L2正则化不容易得到稀疏矩阵,同时为了求出损失函数的最小值,使得w1*和w2无限接近于0,达到防止过拟合的问题。

1.4 使用场景

只要数据线性相关,用LinearRegression拟合的不是很好,需要正则化,可以考虑使用岭回归(L2)。如果输入特征的维度很高,而且是稀疏线性关系的话, 岭回归就不太合适,考虑使用Lasso回归

2. L1(lasso回归)


2.1 公式

L1正则化与L2正则化的区别在于惩罚项的不同:
loss=min(\frac{1}{{2m}}[\sum \limits_{i = 1}^m {{{({h_\theta }({x^i}) - {y^i})}^2}}  + \lambda \sum \limits_{j = 1}^n | \theta |])

L1正则化表现的是\theta的绝对值,变化为上面提到的w_1w_2可以表示为:

J = {J_0} + \lambda (|{w_1}| + |{w_2}|)

2.2 对应图形

求解J_o的过程可以画出等值线。同时L1正则化的函数也可以在w_1 w_2的二维平面上画出来。如下图:

惩罚项表示为图中的黑色棱形,随着梯度下降法的不断逼近,与棱形第一次产生交点,而这个交点很容易出现在坐标轴上。这就说明了L1正则化容易得到稀疏矩阵

2.3 使用场景

L1正则化(Lasso回归)可以使得一些特征的系数变小,甚至还使一些绝对值较小的系数直接变为0,从而增强模型的泛化能力

对于高纬的特征数据,尤其是线性关系是稀疏的,就采用L1正则化(Lasso回归),或者是要在一堆特征里面找出主要的特征,那么L1正则化(Lasso回归)更是首选了。