岭(Ridge 线性回归大结局、 Lasso回归原理、公式推导),你想要的这里都有( 三 )


为什么正则化惩罚项Work?上面谈到模型出现过拟合的现象,而加上\(L_2\)损失可以一直过拟合现象,我在这里简单给大家说说我得观点,不一定正确 , 希望可以帮助大家理解为什么\(L_2\)惩罚项可以在一定程度上抑制过拟合现象 。首先看一下真实数据:

岭(Ridge 线性回归大结局、 Lasso回归原理、公式推导),你想要的这里都有

文章插图
如果需要拟合的话 , 下面的结果应该是最好的,即一个正弦函数:
岭(Ridge 线性回归大结局、 Lasso回归原理、公式推导),你想要的这里都有

文章插图
下图是一个过拟合的情况:
岭(Ridge 线性回归大结局、 Lasso回归原理、公式推导),你想要的这里都有

文章插图
我们可以观察一下它真实规律正弦曲线的之间的差异:过拟合的曲线将每个点都考虑到了,因此他会有一个非常大的缺点就是”突变“,即曲线的斜率的绝对值非常大,如:
岭(Ridge 线性回归大结局、 Lasso回归原理、公式推导),你想要的这里都有

文章插图
对于一般的一次函数 \(y = ax + b\) 来说,当 \(a\) 很大的时候,斜率会很大 , 推广到复杂模型也是一样的,当模型参数很大的时候模型可能会发生剧烈的变化,即可能发生过拟合现象 。现在我们来看为什么在线性回归中加入了一个 \(L_2\) 惩罚项会减少过拟合的现象 。因为在损失函数中有权重的二范数的平方,当权重过大的时候模型的损失就会越大,但是模型需要降低损失 , 那么就需要降低权重的值,权重的值一旦低下来,突变的可能性就会变小,因此在一定程度上可以抑制过拟合现象 。而参数 \(\alpha\) 就是来调控权重在损失中的比例,当 \(\lambda\) 越大的时候对权重惩罚的越狠 , 这在实际调参的过程中需要了解 。后面的 \(Lasso\) 回归参数 \(\alpha\) 的意义也是相似的 。
Lasso回归岭回归是在损失函数中加一个\(L_2\)损失,而\(Lasso\)回归是在损失函数\(\mathcal{L(\hat{w})}\)后面加一个\(L_1\)的损失,即:
\[\mathcal{L(\hat{w})} = ||X\hat{w} - Y||_2^2 + \alpha\sum_{j=0}^{m}|{\hat{w}}_j| \tag{25}\]对公式\((25)\)求导:
\[\frac{\partial \mathcal{L(\hat{w})}}{\partial \hat{w}} = 2X^TX\hat{w} - 2X^TY + \alpha C = 0 \tag{26}\\\]\[\left\{\begin{matrix}c_i = -1\ ,\ if\\hat{w}_i < 0;\\c_i = 1\ ,\ if\\hat{w}_i \ge 0;\\\end{matrix}\right.\]其中\(C\)是和\(\hat{w}\)同维度的向量 。则可以得到:
\[\hat{w} = (X^TX)^{-1}(X^TY-\frac{\alpha}{2} C)\tag{27}\]线性回归实现过程上面提到\(\mathcal{L(w, b)}\)是一个关于 \(\hat{w}\) 的凸函数,则当它关于\(\hat{w}\)导数为0时求出的\(\hat{w}\)是\(\hat{w}\)的最优解,因此在编码实现线性回归的过程中,如果数据集比较小可以直接将所有的数据同时进行计算 , 节省计算资源,因为只需要计算一次 \(\hat{w}\) 的导数 。但是如果数据量过大的话,计算无法一次性完成,可以使用随机梯度下降法 , 或者其他的优化算法,进行多次迭代学习,得到最终的结果 。
Ridge回归和Lasso回归区别上面谈到了 \(Ridge\) 和 \(Lasso\) 的具体的实现方法,还简要谈到了 \(Ridge\) 可以有效防止模型过拟合,和他在数据个数小于数据维度的时候的使用 。那么都是增加一个惩罚项 , 那么 \(Ridge\) 和 \(Lasso\) 有什么区别呢?
  • \(Ridge\) 和 \(Lasso\) 都可以在一定程度上防止模型过拟合
  • \(Ridge\) 在数据个数小于数据维度的时候比较适合
  • \(Lasso\) 的数据的属性之间有共线性的时候比较适合
  • \(Ridge\) 会限制参数的大?。顾平?
  • \(Lasso\) 是一种稀疏模型,可以做特征选择
为什么 \(Lasso\) 是一种稀疏模型,因为它在训练的过程中可以使得权重 \(\hat{w}\) 中的某些值变成0(稀疏权重) , 如果一个属性对应的权重为0,那么该属性在最终的预测当中并没有发挥作用,这就相当与模型选择了部分属性(他们你的权重不为0) 。我们很容易知道既然这些属性对应的权值为0 , 即他对于模型来说并不重要,模型只选择了些权重不为0的属性,所以说 \(Lasso\) 可以做特征选择 。而\(Ridge\) 也会不断降低权值的大小,但是他不会让权值变成0,只会不断的缩小权值,使其逼近于0 。
Ridge和Lasso对权值的影响在正式讨论这个问题之间我们首先先来分析不同的权值所对应的\(RSS\)(残差平方和)值是多少 。\(RSS\)的定义如下:
\[RSS = \sum_{i=0}^{n}(x_i\hat{w} - y_i)^2\]对于一个只有两个属性的数据,对不同的权值计算整个数据集在相应权值下的 \(RSS\)。然后将 \(RSS\) 值相等的点连接起来做成一个等高线图,看看相同的\(RSS\) 值下权值围成了一个什么图形 。

推荐阅读