那么,在机器学习中,防止过拟合的一种方法是加入L2正则化,也有人说L1正则化更好,这是为什么呢?我也知道L1是用来保证数据的稀疏性的,这个结果的理论支持是什么?
4 回答
L1 正则化用于稀疏性。这可能是有益的,尤其是在处理大数据时,因为 L1 可以生成比 L2 正则化更多的压缩模型。这基本上是由于随着正则化参数的增加,您的最优值为 0 的可能性更大。
L2 正则化由于平方而惩罚更多的数字。当然,L2 在平滑方式上更“优雅”。
你应该检查这个网页
附言
更全面的数学解释可能不适合本网站,您可以尝试其他 Stack Exchange 网站,例如
L1 正则化:它增加了一个等于系数大小绝对值的 L1 惩罚,或者只是限制系数的大小。例如,Lasso 回归实现了这种方法。
当具有大量特征时,L1 正则化是首选,因为它提供了稀疏解决方案。甚至,我们获得了计算优势,因为可以避免零系数的特征。
你可以阅读更多这个网站
众所周知,L1 正则化有助于在稀疏特征空间中执行特征选择,这也是在某些情况下使用 L1 的一个很好的实际理由。然而,除了这个特殊原因之外,我从未见过 L1 在实践中表现得比 L2 更好。如果您查看有关此问题的LIBLINEAR 常见问题解答,您会发现他们没有看到 L1 击败 L2 的实际示例,并鼓励图书馆用户在找到时与他们联系。即使在您可能从 L1 的稀疏性中受益以进行特征选择的情况下,对剩余变量使用 L2 也可能比单独使用 L1 提供更好的结果。
所以,正如 Andrew Ng 在这里解释的那样
当功能数量很大时,您可以试一试 L1,但 L2 应该始终是您的盲目选择。
即使在考虑到功能数量的情况下,您有充分的理由使用 L1,我也建议您改用 Elastic Nets。同意只有在进行线性/逻辑回归时,这才是一个实用的选择。但是,在这种情况下,弹性网络已被证明(在理论上和实践中)比 L1/Lasso 更好。Elastic Nets 结合了 L1 和 L2 正则化,“唯一”的代价是引入另一个超参数进行调整(有关更多详细信息,请参阅 Hastie 的论文页面 on stanford.edu)。
所以简而言之,L1 正则化最适合稀疏特征空间中的特征选择。
由于 l1 正则化器创建稀疏性,因此与 l2 正则化器相比,它更快地收敛到您的最小值。现在让我们试着证明这一点。l1 正则器是一个绝对值函数 (|w_i|),它是线性函数,即无论值是正数还是负数,结果总是正数。现在,在解决任何模型的优化问题时,我们需要 SGD(随机梯度下降),它需要一个微分函数。所以现在我们需要区分 l1 正则化器。|w_i| 的微分 始终是恒定的,因此在 SGD 的更新阶段需要更长的步骤。
来到 l2 正则化器,它是 |w_i|^2,它是一个二次函数,它的图形看起来像一个抛物线,其最小值为 0,而没有最大值。l2 正则化器的导数是一个线性函数,它减小缓慢,这意味着它与 l1 正则化器相比不是恒定的。因此它比 l1 需要更多的时间来收敛。这回答了您的理论支持问题。
使用它取决于您的问题,即数据是否有很多特征,并且您知道它们中的大多数都是无用的,因此最好使用 l1 正则化器,因为它会将这些特征的值设为 0,您将获得一个特征容易解释的向量。这是 l1 的用例之一。在某些情况下,您必须同时使用这两种方法,并且正则化被称为弹性网络。您需要这些东西来尝试为您的模型获得最佳结果。
希望这可以帮助。