L1范数如何选择特征?

人们常说L1正则化有助于特征选择?L1范数是如何做到这一点的?

另外,为什么L2正则化无法做到这一点?


回答:

首先要注意的是,L1L2正则化并不总是像这样工作的,存在各种特殊情况,并且取决于应用的强度和其他因素。

首先,我们将以最简单的线性回归为例进行考虑。

其次,为了获得一些直观的理解,最容易考虑两个权重的问题。

现在,让我们引入一个简单的约束:两个权重的总和必须等于1.0(例如,第一个权重w1=0.2和第二个w2=0.8或任何其他组合)。

最后的假设如下:

  • x1特征与目标有完美的正相关性(例如,1.0 * x1 = y,其中y是我们的目标)
  • x2与目标有几乎完美的正相关性(例如,0.99 * x2 = y

alpha(即正则化强度)将被设置为1.0,适用于L1L2,以免进一步混淆情况)。

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.50.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 (它们的绝对值平均值)

这次无论w1w2设置为什么(只要它们的总和必须等于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

现实

在现实中,几乎从未有过变量的“完美相关性”,有很多特征相互作用,有超参数和不完美的优化器以及许多其他因素。

然而,这个简化的观点应该能让你对“为什么”有一个直观的理解。

Related Posts

使用LSTM在Python中预测未来值

这段代码可以预测指定股票的当前日期之前的值,但不能预测…

如何在gensim的word2vec模型中查找双词组的相似性

我有一个word2vec模型,假设我使用的是googl…

dask_xgboost.predict 可以工作但无法显示 – 数据必须是一维的

我试图使用 XGBoost 创建模型。 看起来我成功地…

ML Tuning – Cross Validation in Spark

我在https://spark.apache.org/…

如何在React JS中使用fetch从REST API获取预测

我正在开发一个应用程序,其中Flask REST AP…

如何分析ML.NET中多类分类预测得分数组?

我在ML.NET中创建了一个多类分类项目。该项目可以对…

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注