人们常说L1正则化有助于特征选择?L1范数是如何做到这一点的?
另外,为什么L2正则化无法做到这一点?
回答:
首先要注意的是,L1
和L2
正则化并不总是像这样工作的,存在各种特殊情况,并且取决于应用的强度和其他因素。
首先,我们将以最简单的线性回归为例进行考虑。
其次,为了获得一些直观的理解,最容易考虑两个权重的问题。
现在,让我们引入一个简单的约束:两个权重的总和必须等于1.0
(例如,第一个权重w1=0.2
和第二个w2=0.8
或任何其他组合)。
最后的假设如下:
x1
特征与目标有完美的正相关性(例如,1.0 * x1 = y
,其中y
是我们的目标)x2
与目标有几乎完美的正相关性(例如,0.99 * x2 = y
)
(alpha
(即正则化强度)将被设置为1.0
,适用于L1
和L2
,以免进一步混淆情况)。
L2
权重值
对于两个变量(权重)和L2
正则化,我们将有以下公式:
alpha * (w1^2 + w2^2)/2 (它们的平方平均值)
现在,我们希望最小化上述方程,因为它是成本函数的一部分。
很容易看出,两者都必须设置为0.5
(记住,它们的总和必须等于1.0
!),因为0.5 ^ 2 + 0.5 ^ 2 = 0.5
。对于任何其他总和为1
的两个值,我们会得到更大的值(例如,0.8 ^ 2 + 0.2 ^ 2 = 0.64 + 0.68
),因此0.5
和0.5
是最优解。
目标预测
在这种情况下,我们对于所有数据点都非常接近,因为:
0.5 * 1.0 + 0.5 + 0.99 = 0.995 (of `y`)
所以我们每个样本只偏差0.005
。这意味着权重上的正则化对成本函数的影响大于这种微小的差异(这就是为什么w1
没有被选为唯一变量,值被“分开”)。
顺便提一下,上述确切值会略有不同(例如,w1
~0.49
,但我认为这样更容易理解)。
最终见解
使用L2
正则化,两个相似的权重倾向于“分开”一半,因为这最小化了正则化惩罚
L1
权重值
这次会更简单:对于两个变量(权重)和L1
正则化,我们将有以下公式:
alpha * (|w1| + |w2|)/2 (它们的绝对值平均值)
这次无论w1
或w2
设置为什么(只要它们的总和必须等于1.0
),所以|0.5| + |0.5| = |0.2| + |0.8| = |1.0| + |0.0|...
(依此类推)。
在这种情况下,L1
正则化会偏好1.0
,原因如下
目标预测
由于权重分布在这种情况下无关紧要,我们追求的是损失值(在1.0
总和约束下)。对于完美的预测,它将是:
1.0 * 1.0 + 0.0 * 0.99 = 1.0
这次我们根本没有偏差,最好只选择w1
,在这种情况下不需要w2
。
最终见解
使用L1
正则化,相似的权重倾向于被归零,以支持与特征连接更好的预测最终目标的权重最低系数。
顺便提一下,如果我们有x3
,它再次与我们要预测的值呈正相关,并由方程描述
0.1 * x3 = y
只有x3
会被选择,权重等于0.1
现实
在现实中,几乎从未有过变量的“完美相关性”,有很多特征相互作用,有超参数和不完美的优化器以及许多其他因素。
然而,这个简化的观点应该能让你对“为什么”有一个直观的理解。