面试(5):L1正则与L2正则

本文介绍了L1正则(Lasso回归)和L2正则(Ridge回归)的区别,包括正则项形式、求解方法及特征选择。L1正则产生稀疏权重矩阵,适合特征选择;L2正则避免过拟合,但特征系数不为0。同时,讨论了正则化系数λ的影响以及坐标轴下降法和梯度下降法在正则化问题中的应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1、概述

  L1正则和L2正则是为了防止模型过拟合,添加在损失函数后面,构成对模型复杂的惩罚项。
结构风险 = 经验风险+惩罚项(正则化)
Lasso回归,L1正则:
J ( θ ) = 1 2 ( X θ − Y ) T ( X θ − Y ) + λ ∥ θ ∥ 1 J(\theta)=\frac{1}{2 }(\mathbf{X} \theta-\mathbf{Y})^{T}(\mathbf{X} \theta-\mathbf{Y})+\lambda\|\theta\|_{1} J(θ)=21(XθY)T(XθY)+λθ1
  因为L1正则项是绝对值之和,所以损失函数并不是处处可导,不能使用梯度下降方法求导,采用坐标轴下降法求解。
Ridge回归,L2正则:
J ( θ ) = 1 2 ( X θ − Y ) T ( X θ − Y ) + 1 2 λ ∥ θ ∥ 2 2 J(\theta)=\frac{1}{2}(\mathbf{X} \theta-\mathbf{Y})^{T}(\mathbf{X} \theta-\mathbf{Y})+\frac{1}{2} \lambda\|\theta\|_{2}^{2} J(θ)=21(XθY)T(XθY)+21λθ22
  因为L1正则项是平方和,所以损失函数处处可导,可采用梯度下降法进行求解。

2、区别

(1)正则项的表达形式不同
  L1正则为回归系数的绝对值之和,L2的正则为回归系数的绝对值之和;这就导致各自拥有不同的性质。

(2)损失函数求解方法不同
  带L1正则的损失函数并不是处处可导,因此不可采用梯度下降法求导,可采用坐标轴下降法求导;带L2正则的损失函数处处可导,因此可采用梯度下降法求导。

(3)所选特征数量不同
  L1正则采用回归系数的绝对值之和,这样会将回归系数限定在一个正方形内,正方形的顶点在坐标轴上,回归系数的限定区域与训练集误差的区域的交点处,求得使损失函数达到最小的值;L1正则往往在坐标轴上取得最优解,这样就会使得一些特征的系数为0,选择的特征数量比较少,产生稀疏权重矩阵。
  L2正则采用回归系数的平方和,这样会将回归系数限定在一个圆内,回归系数的限定区域与训练集的误差区域的交点往往靠近坐标轴,但不在坐标轴上,这就导致了L2正则选择的特征数量比较多,但是有一些特征的系数比较小。
在这里插入图片描述

3、正则化系数 λ \lambda λ

  正则化系数 λ \lambda λ,使得损失函数在训练误差与正则化之间权衡,
  当 λ \lambda λ 较小时,对回归系数的限定区域就会比较大,这样损失函数的最优解比较靠近训练误差的最优解,导致过拟合,当 λ \lambda λ接近0时,回归系数的限定区域覆盖训练误差的最优解,导致过拟合,正则项不发挥作用。
  当 λ \lambda λ 较大时,对回归系数的限定区域就会比较小,这时损失函数的最优解会远远偏离训练误差的最优解,回归系数普遍较小,起到了正则化的目的,但是容易导致欠拟合。这种加了正则项反而使得损失函数最优解偏离比较严重。
在这里插入图片描述

4、坐标轴下降法(L1正则的求解过程)

  坐标轴下降法(Coordinate Descent, CD)是一种迭代法,通过启发式的方法一步步的迭代求解函数的最小值,和梯度下降法(GD)不同的时候,坐标轴下降法是沿着坐标轴的方向去下降,而不是采用梯度的负方向下降。

在这里插入图片描述

令损失函数 f ( x , y ) = 5 x 2 − 6 x y + 5 y 2 − 0.0259 f(x,y) = 5x^2-6xy+5y^2-0.0259 f(x,y)=5x26xy+5y20.0259;
1、假设初始点为(-0.5,-1),代入公式f(x,y)后会有一个对应的值。
2、现在固定住 x= -0.5,让y不断变化:(-0.5,-1),(-0.5,1),(-0.5,2),(-0.5,3) …
3、不断根据y值的变化,检索 f(x,y)的最小值。

首先,我们固定了x=-0.5,即在损失函数 f ( x , y ) = 5 x 2 − 6 x y + 5 y 2 − 0.0259 f(x,y) = 5x^2-6xy+5y^2-0.0259 f(x,y)=5x26xy+5y20.0259 中, 5 x 2 5x^2 5x2 − 6 x -6x 6x都成了常数C;
-0.0259和5x2都是常数,合并到了一起变成C;
f ( y ) = C + 3 y + 5 y 2 f(y) = C+3y+5y^2 f(y)=C+3y+5y2
然后,分析 f(y)处于极小值点时,y的值是多少?
y=-2a/b时获得。即 y=-2*5/3 = -10/3 ≈ -0.3;

将EM算法的思想运用于坐标轴下降法,最终结果会收敛在圆心附近的这个位置,这个点是损失函数的全局极小值点。

主要坐标轴下降法面对的是一个凸函数,必然能找到一个全局的最小值点。

参考:https://www.jianshu.com/p/6156764203de

5、梯度下降法(Ridge回归求解)

  首先,我们有一个可微分的函数。这个函数就代表着一座山。我们的目标就是找到这个函数的最小值,也就是山底。根据之前的场景假设,最快的下山的方式就是找到当前位置最陡峭的方向,然后沿着此方向向下走,对应到函数中,就是找到给定点的梯度 ,然后朝着梯度相反的方向,就能让函数值下降的最快!因为梯度的方向就是函数之变化最快的方向(在后面会详细解释)
所以,我们重复利用这个方法,反复求取梯度,最后就能到达局部的最小值,这就类似于我们下山的过程。而求取梯度就确定了最陡峭的方向。

  梯度实际上就是多变量微分的一般化。
  下面这个例子:
J ( Θ ) = 0.55 − ( 5 θ 1 + 2 θ 2 − 12 θ 3 ) ∇ J ( Θ ) = ⟨ ∂ J ∂ θ 1 , ∂ J ∂ θ 2 , ∂ J ∂ θ 3 ⟩ = ⟨ − 5 , − 2 , 12 ⟩ \begin{aligned} J(\Theta) &=0.55-\left(5 \theta_{1}+2 \theta_{2}-12 \theta_{3}\right) \\ \nabla J(\Theta) &=\left\langle\frac{\partial J}{\partial \theta_{1}}, \frac{\partial J}{\partial \theta_{2}}, \frac{\partial J}{\partial \theta_{3}}\right\rangle \\ &=\langle- 5,-2,12\rangle \end{aligned} J(Θ)J(Θ)=0.55(5θ1+2θ212θ3)=θ1J,θ2J,θ3J=5,2,12
  梯度下降算法的数学解释:
Θ 1 = Θ 0 − α ∇ J ( Θ )  evaluated at  Θ 0 \Theta^{1}=\Theta^{0}-\alpha \nabla J(\Theta) \quad \text { evaluated at } \Theta^{0} Θ1=Θ0αJ(Θ) evaluated at Θ0
  此公式的意义是: J J J是关于 Θ Θ Θ的一个函数,我们当前所处的位置为 Θ 0 Θ^0 Θ0点,要从这个点走到J的最小值点,也就是山底。首先我们先确定前进的方向,也就是梯度的反向,然后走一段距离的步长,也就是 α α α,走完这段步长(步长不能太大也不能太小),就到达了 Θ 1 Θ^1 Θ1这个点!
θ = θ − ( α ( X T ( X θ − Y ) + λ θ ) ) \theta=\theta-\left(\alpha( \mathbf{X}^{T}(\mathbf{X} \theta-\mathbf{Y})+\lambda \theta)\right) θ=θ(α(XT(XθY)+λθ))

6、坐标轴下降法和梯度下降法对比

  • 迭代方法:坐标轴下降法在每次迭代中在当前点处沿一个坐标方向进行一维搜索 ,固定其他的坐标方向,找到一个函数的局部极小值。而梯度下降总是沿着梯度的负方向求函数的局部最小值。
  • 迭代周期类比: 坐标轴下降优化方法是一种非梯度优化算法。在整个过程中依次循环使用不同的坐标方向进行迭代,一个周期的一维搜索迭代过程相当于一个梯度下降的迭代。
  • 与坐标轴平行:梯度下降是利用目标函数的导数来确定搜索方向的,该梯度方向可能不与任何坐标轴平行。而坐标轴下降法是利用当前坐标方向进行搜索,不需要求目标函数的导数,只按照某一坐标方向进行搜索最小值。
  • 计算量:两者都是迭代方法,且每一轮迭代,都需要O(mn)的计算量(m为样本数,n为系数向量的维度)

问题:
  1. 为什么参数越小代表模型越简单?

  越是复杂的模型,越是尝试对所有样本进行拟合,包括异常点。这就会造成在较小的区间中产生较大的波动,这个较大的波动也会反映在这个区间的导数比较大。

  只有越大的参数才可能产生较大的导数。因此参数越小,导数相对越小,模型就越简单。

   2.实现参数的稀疏有什么好处?

  因为参数的稀疏,在一定程度上实现了特征的选择。一般而言,大部分特征对模型是没有贡献的。这些没有用的特征虽然可以减少训练集上的误差,但是对测试集的样本,反而会产生干扰。稀疏参数的引入,可以将那些无用的特征的权重为0.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值