在机器学习领域,经常遇到Lasso回归和Ridge回归这两种正则化技术。它们都旨在解决过拟合问题,即模型在训练数据上表现良好,但在未见过的数据上表现不佳。这两种方法的主要区别在于它们进行正则化的方式。正则化的目标是适当的特征选择以避免过拟合,通过优化特征的重要性来实现。Lasso回归通过完全降低某些特征的重要性(将权重设置为零)来实现正则化,而Ridge回归则是通过减少某些特征的重要性,而不是将特征的重要性降为零。因此,可以说Lasso回归会导致稀疏性,而Ridge回归则不会。那么,这究竟是如何实现的呢?
让考虑一个回归场景,其中‘y’是预测向量,‘x’是特征矩阵。在任何回归问题中,都试图最小化平方误差。设‘β’为参数向量(特征的重要性权重),‘p’为特征的数量。
Ridge回归也被称为L2回归,因为它使用L2范数进行正则化。在Ridge回归中,试图最小化以下函数以找到最佳的‘β’:
minimize (y - Xβ)^2 + λβ^2
上述表达式中的第一项是平方误差,第二项是正则化项。试图理解最小化L2相对于β是否会导致稀疏性(βi→0,对于任何i)。稀疏性导致特征选择,因为某些特征的权重被降低。如果特征‘i’对应的权重βi变为零,则实现了稀疏性。这里‘λ’是正则化参数。为了简化,设p=1且βi=β。现在,应用局部最小值的一阶条件,知道对于β要成为最小值(β*),必须满足:
∂/∂β (y - Xβ)^2 + λβ^2 = 0
这意味着,对于稀疏性,β* = 0,这只可能发生在λ→∞时。因此,很明显Ridge回归不会导致稀疏性。它只有在正则化参数为无穷大时才可能产生稀疏性。因此,在所有实际应用中,如果使用Ridge回归进行正则化,每个特征总会有一些权重与之相关。
现在,让讨论Lasso回归的情况,它也被称为L1回归,因为它使用L1范数进行正则化。在Lasso回归中,试图解决以下最小化问题:
minimize (y - Xβ)^2 + λ|β|
由于λ|β|这一项,很明显函数L1是不连续的,因此在不连续点不是可微的。因此,不能使用Ridge回归案例中遵循的微积分方法来找到最小值。但在不连续函数的情况下,优化理论指出,最优解出现在不连续点。如果β=0处发生不连续性,那么这将导致稀疏性。为了更好地理解这一点,让可视化上述函数。
从上述图表中可以看出,随着增加正则化参数λ的值从0.5到5,函数变得不那么平滑,不连续点在β=0处,这是最小值。这是具有单一特征的回归的最简单案例,在这里Lasso回归使该单一特征变得稀疏。因此,很明显,在Lasso回归中,对于一个特征,其对应的权重β可能变为零。
对于Ridge回归,分析是通过微积分本身完成的,可以证明任何权重都不可能变为零。当尝试可视化函数L2时,这一点变得更加清晰。这个函数是平滑的,没有任何不连续性,因此在整个过程中都是可微的。从图表中,人们可能会注意到最小值发生在接近零的地方,但它永远不会是零。随着不断增加λ的值从0.5到5,最小值更接近零,尽管它永远不会是零!
假设正在构建一个由两个特征组成的线性模型,将有两个系数(β1和β2)。对于Ridge回归,这种情况下的惩罚项将是:
L2p = β1^2 + β2^2
线性回归模型实际上想要最大化β1和β2的值,但同时也想要最小化惩罚。最小化惩罚以减少β1或β2的最大值的最佳方式是,因为惩罚函数是二次的。因此,两个系数中较大的一个将受到收缩的影响。
为了更好地理解,设β1=10且β2=1000。正则化会更多地收缩β2,而β1几乎保持不变,因为β2已经被做得接近零。进一步收缩β1不会对整个函数产生太大影响。假设,β1收缩到8,β2收缩到100。这将把整体惩罚函数从1000100收缩到10064,这是一个显著的变化。
L1p = |β1| + |β2|