Google 机器学习编程笔记六——正则化

首先引入一些基础概念:
1、L2正则化
在这里插入图片描述
图中显示的是某个模型的训练损失逐渐减少,但验证损失最终增加。换言之,该泛化曲线显示该模型与训练集中的数据过拟合。根据奥卡姆剃刀定律,或许我们可以通过降低复杂模型的复杂度来防止过拟合,这种原则称为正则化
也就是说,并非只是以最小化损失(经验风险最小化)为目标,而是以最小化损失和复杂度为目标,这称为结构风险最小化
在这里插入图片描述
现在,我们的训练优化算法是一个由两项内容组成的函数:一个是损失项,用于衡量模型与数据的拟合度,另一个是正则化项,用于衡量模型复杂度。

正则化项是对损失项的惩罚项,以防其模型化由于损失项减小而过拟合。

如果模型复杂度是权重的函数,则特征权重的绝对值越高,对模型复杂度的贡献就越大。

我们可以使用 L2 正则化公式来量化复杂度,该公式将正则化项定义为所有特征权重的平方和:在这里插入图片描述
在这个公式中,接近于 0 的权重对模型复杂度几乎没有影响,而离群值权重则可能会产生巨大的影响。
在这里插入图片描述
2、lambda

模型开发者通过以下方式来调整正则化项的整体影响:用正则化项的值乘以名为 lambda(又称为正则化率)的标量。 也就是说,模型开发者会执行以下运算:
在这里插入图片描述
执行 L2 正则化对模型具有以下影响

  • 使权重值接近于 0(但并非正好为 0)
  • 使权重的平均值接近于 0,且呈正态(钟形曲线或高斯曲线)分布。

增加 lambda 值将增强正则化效果。 例如,lambda 值较高的权重直方图可能会如图所示。
在这里插入图片描述
降低 lambda 的值往往会得出比较平缓的直方图,如图所示。
在这里插入图片描述
在选择 lambda 值时,目标是在简单化和训练数据拟合之间达到适当的平衡:

如果您的 lambda 值过高,则模型会非常简单,但是您将面临数据欠拟合的风险。您的模型将无法从训练数据中获得足够的信息来做出有用的预测。

如果您的 lambda 值过低,则模型会比较复杂,并且您将面临数据过拟合的风险。您的模型将因获得过多训练数据特点方面的信息而无法泛化到新数据。

注意: 将 lambda 设为 0 可彻底取消正则化。 在这种情况下,训练的唯一目的将是最小化损失,而这样做会使过拟合的风险达到最高。

理想的 lambda 值生成的模型可以很好地泛化到以前未见过的新数据。 遗憾的是,理想的 lambda 值取决于数据,因此您需要手动或自动进行一些调整。

3、lambda与学习速率

学习速率和 lambda 之间存在密切关联。强 L2 正则化值往往会使特征权重更接近于 0。较低的学习速率(使用早停法)通常会产生相同的效果,因为与 0 的距离并不是很远。 因此,同时调整学习速率和 lambda 可能会产生令人混淆的效果。

早停法指的是在模块完全收敛之前就结束训练。在实际操作中,我们经常在以在线(连续)方式进行训练时采取一些隐式早停法。也就是说,一些新趋势的数据尚不足以收敛。

如上所述,更改正则化参数产生的效果可能会与更改学习速率或迭代次数产生的效果相混淆。一种有用的做法(在训练一批固定的数据时)是执行足够多次迭代,这样早停法便不会起作用。

发布了36 篇原创文章 · 获赞 11 · 访问量 2891

猜你喜欢

转载自blog.csdn.net/yeweij226/article/details/104077230
今日推荐