为什么 L1 正则化适用于机器学习

Why L1 regularization works in machine Learning

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

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

L2 正则化由于平方会惩罚大数。当然L2在平滑度方面更'elegant'

你应该检查 this webpage

P.S。

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

众所周知,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。同意这仅在您进行 linear/logistic 回归时才是实用的选择。但是,在那种情况下,Elastic Nets 已被证明(在理论上和实践中)优于 L1/Lasso。 Elastic Nets 以 "only" 成本结合了 L1 和 L2 正则化,引入了另一个要调整的超参数(有关更多详细信息,请参阅 Hastie 的论文 stanford.edu 页)。

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

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

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

使用它取决于你的问题,即如果数据有很多特征并且你知道它们中的大多数是无用的,那么最好使用 l1 正则化器,因为它会使这些特征的值为 0 和您将获得一个易于解释的特征向量。这是 l1 的用例之一。在某些情况下,您将不得不同时使用这两种方法,而这种正则化被称为弹性网。 为了让您的模型获得最佳结果,您需要尝试这些事情。

希望对您有所帮助。

L1正则化:增加等于系数大小绝对值的L1惩罚,或者简单的限制系数的大小。比如Lasso回归就实现了这个方法。

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

你可以阅读更多this website