首页 > 其他分享 >为什么 L1 正则化能做特征选择而 L2 正则化不能

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

时间:2023-02-05 13:47:41浏览次数:61  
标签:特征选择 gathered 正则 L2 L1 极小值 lambda

假设我们的模型只有一个参数 \(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\) 都达不到这样的效果。

相关资料:

标签:特征选择,gathered,正则,L2,L1,极小值,lambda
From: https://www.cnblogs.com/zhb2000/p/l1-l2-regularization-feature-selection.html

相关文章

  • 正则化技术
    目录L2正则化L2范数损失函数为什么L2正则化能够起作用Dropout参考:2.3.线性代数—动手学深度学习2.0.0documentation(d2l.ai)4.5.权重衰减—动手学深度学习2.0......
  • 3.5正则表达式和EXCESS系统
    尾数部分使用正则表达式(按照特定的规则来表示数据的形式即为正则表达式,除小数外,字符串以及数据库等都有各自的正则表达式),可以将表现形式多样的浮点数统一为一种表现形式。......
  • grep中的正则表达式使用
    ◆语法如下图所示、grep的命令行参数非常之多,在此,我们主要介绍如下使用方式:grep[-eexpression][filename]-e指定正则表达式-i不区分大小写-n显示行号  简......
  • shell脚本——正则表达式
     LinuxShell脚本之正则表达式一、常见的管道命令sort命令sort命令可针对文本文件的内容,以行为单位来排序格式:sort [选项] 参数常用选项选项  ......
  • 20230204 - 解决 Delphi 10.4 IDE 提示 socket error 10038 Access violation coreide
    现象:Delphi Embarcadero®Delphi10.4Version27.0.40680.4203进入时,弹出以下四个错误提示框,内容如下:1、[WindowTitle]Error[Content]SocketError#10038So......
  • 20230204 - 解决 Delphi 10.4 IDE 提示 socket error 10038 Access violation coreide
    现象:Delphi Embarcadero®Delphi10.4Version27.0.40680.4203进入时,弹出以下四个错误提示框,内容如下:1、[WindowTitle]Error[Content]SocketError#10038So......
  • 20230204 - 解决 Delphi 10.4 IDE 提示 socket error 10038 Access violation coreide
    现象:Delphi Embarcadero®Delphi10.4Version27.0.40680.4203进入时,弹出以下四个错误提示框,内容如下:1、[WindowTitle]Error[Content]SocketError#10038So......
  • 正则表达式
    正则表达式正则表达式:对特殊的输入格式进行验证;应用matches方法匹配1、\d:匹配一位数字例:Scannerinput=newScanner(System.in);   System.out.println("请输......
  • 正则表达式四
    不区分大小写模式(Case-Insensitive)不区分大小写是匹配模式的一种。当我们把模式修饰符放在整个正则前面时,就表示整个正则表达式都是不区分大小写的。模式修饰符是通过(?......
  • 正则表达式三
    分组与编号括号在正则中可以用于分组,被括号括起来的部分“子表达式”会被保存成一个子组。不保存子组在括号里面的会保存成子组,但有些情况下,你可能只想用括号将某些部分......