为啥 L1 正则化在机器学习中起作用

Posted

技术标签:

【中文标题】为啥 L1 正则化在机器学习中起作用【英文标题】:Why L1 regularization works in machine Learning为什么 L1 正则化在机器学习中起作用 【发布时间】:2015-06-30 06:04:00 【问题描述】:

嗯,在机器学习中,防止过拟合的一种方法是添加 L2 正则化,有人说 L1 正则化更好,这是为什么呢?我也知道L1是用来保证数据的稀疏性的,这个结果的理论支持是什么?

【问题讨论】:

如果问题本质上是理论性的并且非常主观,它最有可能在 Stack Overflow 中泛泛而谈。有人可能确实对这个主题有很好的反馈,但如果没有独特且相对“正确”的答案,那就太宽泛了。 欢迎来到 ***!这个问题与编程没有直接关系,而是与纯机器学习有关。请考虑将其移至 StackExchange 的交叉验证或理论计算机科学。 【参考方案1】:

L1 正则化用于稀疏性。这可能是有益的,尤其是在您处理大数据时,因为 L1 可以生成比 L2 正则化更多的压缩模型。这基本上是因为随着正则化参数的增加,您的最优值为 0 的可能性更大。

L2 正则化由于平方而惩罚更多的数字。当然,L2 在流畅度上更“优雅”。

你应该检查this webpage

附:

更全面的数学解释可能不适合本网站,您可以尝试其他 Stack Exchange 网站,例如

【讨论】:

【参考方案2】:

众所周知,L1 正则化有助于在稀疏特征空间中执行特征选择,这也是在某些情况下使用 L1 的一个很好的实际理由。然而,除了这个特殊原因之外,我从未见过 L1 在实践中表现得比 L2 更好。如果您在此问题上查看LIBLINEAR FAQ,您会发现他们没有看到 L1 击败 L2 的实际示例,并鼓励图书馆用户在找到时与他们联系。即使在您可能受益于 L1 的稀疏性以进行特征选择的情况下,对剩余变量使用 L2 也可能比单独使用 L1 提供更好的结果。

所以,正如 Andrew Ng 在这里解释的那样

L1 regularized logistic regression can be effective even if there are exponentially many irrelevant features as there are training examples.

当功能数量很大时,您可以试一试 L1,但 L2 应该始终是您的盲目选择。

即使考虑到功能的数量,如果您有充分的理由使用 L1,我还是建议您改用 Elastic Nets。同意只有在进行线性/逻辑回归时,这才是一个实用的选择。但是,在这种情况下,弹性网络已被证明(在理论上和实践中)比 L1/Lasso 更好。 Elastic Nets 结合了 L1 和 L2 正则化,“唯一”成本是引入另一个超参数进行调整(有关更多详细信息,请参阅 Hastie 的论文页面 on stanford.edu)。

简而言之,L1 正则化最适合稀疏特征空间中的特征选择。

【讨论】:

【参考方案3】:

L1 正则化:它增加了一个等于系数大小绝对值的 L1 惩罚,或者只是限制系数的大小。例如,Lasso 回归实现了这种方法。

当具有大量特征时,L1 正则化是首选,因为它提供了稀疏解决方案。甚至,我们获得了计算优势,因为可以避免零系数的特征。

你可以阅读更多this website

【讨论】:

【参考方案4】:

由于 l1 正则化器会产生稀疏性,因此与 l2 正则化器相比,它会更快地收敛到您的最小值。现在让我们试着证明这一点。 l1 正则器是一个绝对值函数 (|w_i|),它是线性函数,即无论值是正数还是负数,结果总是正数。现在,在解决任何模型的优化问题时,我们需要 SGD(随机梯度下降),它需要一个微分函数。所以现在我们需要区分 l1 正则化器。 |w_i| 的微分始终是恒定的,因此在 SGD 的更新阶段需要更长的步骤。

来到 l2 正则化器,它是 |w_i|^2,它是一个二次函数,它的图形看起来像一个抛物线,其最小值为 0,而没有最大值。 l2 正则化器的导数是一个线性函数,它减小缓慢,这意味着它与 l1 正则化器相比不是恒定的。因此它比 l1 需要更多的时间来收敛。这回答了您的理论支持问题。

使用它取决于您的问题,即数据是否有很多特征并且您知道它们中的大多数都是无用的,因此最好使用 l1 正则化器,因为它会将这些特征的值设为 0,您将得到一个易于解释的特征向量。这是 l1 的用例之一。在某些情况下,您必须同时使用这两种方法,并且正则化被称为弹性网络。 您需要这些东西才能为您的模型获得最佳结果。

希望这会有所帮助。

【讨论】:

这里有很多问题恕我直言。核心是:l1-norm 不可微(实际上比可微的 l2-norm 更难优化;从基于凸优化梯度的角度来看)。 @sascha 你怎么能说 l1 是不可微的

以上是关于为啥 L1 正则化在机器学习中起作用的主要内容,如果未能解决你的问题,请参考以下文章

机器学习中L1,L2正则化项

机器学习100天(二十四):024 L1L2正则化

机器学习100天(二十四):024 L1L2正则化

机器学习中正则化项L1和L2的直观理解

机器学习正则化(L1正则化L2正则化)

机器学习--线性回归中L1正则和L2正则