查看原文
其他

第4.4节 模型的改善与泛化(正则化)

空字符 月来客栈 2024-01-19

各位朋友大家好,欢迎来到月来客栈,我是掌柜空字符。

本期推送内容目录如下,麻烦大家点个赞、关个注、下回更新不迷路

  • 4.4 正则化
    • 4.4.1 测试集导致的泛化误差
    • 4.4.2 训练集导致的泛化误差
    • 4.4.3 正则化原理
    • 4.4.4 正则化中的参数更新
    • 4.4.5 正则化示例代码
    • 4.4.6 正则化原理
    • 4.4.7 正则化差异
    • 4.4.8 小结

4.4 正则化

4.3节的内容可以知道,模型产生过拟合的现象表现为在训练集上误差较小,而在测试集上误差较大,并且笔者还讲到,之所以会产生过拟合现象是由于训练数据中可能存在一定的噪声,而我们在训练模型时为了尽可能地做到拟合每个样本点(包括噪声),往往就会使用复杂的模型。最终使训练出来的模型在很大程度上受到了噪声数据的影响,例如真实的样本数据可能更符合一条直线,但是由于个别噪声的影响使训练出来的是一条曲线,从而使模型在测试集上表现糟糕,因此,可以将这一过程看作由糟糕的训练集导致了糟糕的泛化误差,但仅仅从过拟合的表现形式来看糟糕的测试集(噪声多)也可能导致糟糕的泛化误差。在接下来的内容中,笔者将分别从这两个角度来介绍一下正则化(Regularization)方法中最常用的正则化是如何来解决这一问题的。

这里还是以线性回归为例,我们首先来看一下在线性回归的目标函数后面再加上一个正则化项的形式。

在式(4.6)中的第2项便是新加入的正则化项(Regularization Term),那它有什么作用呢?根据2.1.3节中的内容可知,当真实值与预测值之间的误差越小(表现为损失值趋于0)时,也就代表着模型的预测效果越好,并且可以通过最小化目标函数来达到这一目的。由式(4.6)可知,为了最小化目标函数,第2项的结果也必将逐渐地趋于0。这使最终优化求解得到的均会趋于0附近,进而得到一个平滑的预测模型。这样做的好处是什么呢?

4.4.1 测试集导致的泛化误差

所谓测试集导致糟糕的泛化误差是指训练集本身没有多少噪声,但由于测试集含有大量噪声,使训练出来的模型在测试集上没有足够的泛化能力,而产生了较大的误差。这种情况可以看作模型过于准确而出现了过拟合现象。正则化方法是怎样解决这个问题的呢?

假如式(4.7)所代表的模型就是根据式(4.6)中的目标函数训练而来的,此时当某个新输入样本(含噪声)的某个特征维度由训练时的变成了现在的,那么其预测输出就由训练时的变成了现在的,即产生了的误差,但是,由于接近于附近,所以这使模型最终只会产生很小的误差。同时,如果越接近于,则产生的误差就会越小,这意味着模型越能够抵抗噪声的干扰,在一定程度上越能提升模型的泛化能力 [1]。

由此便可以知道,通过在原始目标函数中加入正则化项,便能够使训练得到的参数趋于平滑,进而能够使模型对噪声数据不再那么敏感,缓解了模型的过拟合现象。

4.4.2 训练集导致的泛化误差

所谓训练集导致糟糕的泛化误差是指,由于训练集中包含了部分噪声,导致我们在训练模型的过程中为了能够尽可能地最小化目标函数而使用了较为复杂的模型,使最终得到的模型并不能在测试集上有较好的泛化能力,但这种情况完全是因为模型不合适而出现了过拟合的现象,而这也是最常见的过拟合的原因。正则化方法又是怎样解决在训练过程中就能够降低对噪声数据的敏感度的呢?为了便于后面的理解,我们先从图像上来直观地理解一下正则化到底对目标函数做了什么。

如图4-16所示,左右两边黑色实线为原始目标函数,黑色虚线为加了正则化后的目标函数。可以看出黑色实线的极值点均发生了明显改变,并且不约而同地都更靠近原点。

图 4-16 正则化图形

再来看一张包含两个参数的目标函数在加入正则化后的结果,如图4-17所示。

图 4-17 正则化投影图形

如图4-17所示,图中黑色虚线为原始目标函数的等高线,黑色实线为施加正则化后目标函数的等高线。可以看出,目标函数的极值点同样也发生了变化,从原始的变成了,而且也更靠近原点(变得更小了)。到此我们似乎可以发现,正则化能够使原始目标函数极值点发生改变,并且同时还有使参数趋于0的作用。事实上也正是因为这个原因才使正则化具有缓解过拟合的作用,但原因在哪里呢?

4.4.3 正则化原理

以目标函数为例,其取得极值的极值点为,且在极值点处的梯度为。当对其施加正则化后,由于的梯度方向是远离原点的(因为为一个二次曲面),所以给目标函数加入正则化,实际上等价于给目标函数施加了一个远离原点的梯度。通俗点讲,正则化给原始目标函数的极值点施加了一个远离原点的梯度(甚至可以想象成施加了一个力的作用),因此,这也就意味着对于施加正则化后的目标函数来讲,的极值点相较于的极值点更加靠近于原点,而这也就是正则化本质之处。

假如有一个模型,它在含有噪声的训练集上表示异常出色,使目标函数的损失值等于(也就是拟合到了每个样本点),即在处取得了极值。现在,我们在的基础上加入正则化项构成新的目标函数,然后来分析一下通过最小化求得的模型到底产生了什么样的变化。

从式(4.8)可知,由于是由加正则化项构成的,同时根据先前的铺垫可知,将在离原点更近的极值点处取得的极值,即通过最小化含正则化项的目标函数,将得到这个最优解,但是需要注意,此时的将不再是的最优解,即,因此通过最小化求得的最优解将使,而这就意味着模型比模型更简单了,也就代表着从一定程度上缓解了的过拟合现象。


继续滑动看下一个

第4.4节 模型的改善与泛化(正则化)

空字符 月来客栈
向上滑动看下一个

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存