Loading

为什么 L1 正则化能做特征选择而 L2 正则化不能

假设我们的模型只有一个参数 \(w\),损失函数为 \(L(w)\),加入 L1 和 L2 正则化后的损失函数分别记为 \(J_1(w), J_2(w)\)

\[\begin{gathered} J_1(w) = L(w) + \lambda |w| \\ J_2(w) = L(w) + \lambda w^2 \end{gathered} \]

原损失函数 \(L\)\(w = 0\) 处的导数记为 \(L'(0)\),那么 \(J_1\)\(w = 0\) 处的左、右导数为:

\[\begin{gathered} J_{-}'(0) = L'(0) - \lambda \\ J_{+}'(0) = L'(0) + \lambda \\ \end{gathered} \]

\(\lambda > |L'(0)|\) 时,\(w = 0\) 处的左导数 \(L'(0) - \lambda < 0\)、右导数 \(L'(0) + \lambda > 0\),此时 \(w = 0\)\(J_1\) 的一个极小值点。

也就是说,即使 \(L\) 不在 \(w = 0\) 处取得极小值(\(L'(0) \neq 0\)),我们也能够通过调节 \(\lambda\) 将损失函数的极小值点“转移”到 \(w = 0\)

再来看 L2 正则化时的情况,\(J_2\)\(w = 0\) 处的导数为:

\[J_2'(0) = [L'(w) + 2 \lambda w]_{w = 0} = L'(0) \]

由此可见,如果 \(L\) 不在 \(w = 0\) 处取得极小值(\(L'(0) \neq 0\)),那么加入 L2 正则项后仍然不可能在 \(w = 0\) 处取得极小值。

总结:L1 正则化能将损失函数的极小值点“转移”到 \(w = 0\) 处,而 L2 正则化无论如何设置 \(\lambda\) 都达不到这样的效果。

相关资料:

posted @ 2023-02-05 13:25  zhb2000  阅读(243)  评论(0编辑  收藏  举报