谷歌机器学习速成课程笔记 10(Regularization for Simplicity-简化正则化)

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_30354455/article/details/80417269

之前已经讨论了如何让训练损失降到最低(也就是获取正确的样本),今天,我们来讨论且薄优质机器学习效果的第二个关键因素——正则化(概括而言,就是不要过于依赖样本)。
从以下拟合曲线我们可以看出:随着迭代次数越来越多,训练损失会越来越少,不出所料,蓝色曲线会不断下降,最终会在某种程度上收敛于底端,但另一方面,红线却在上升,而红线正是我们要关注的(因为是通过测试集出来的结果嘛)。
这里写图片描述
我们在训练集方面做的很好,这导致开始在某种程度上拟合蓝色样本的独特扰动和特殊性——举例说明:你要学习英语,而唯一能教你是一名青少年,开始时,他真的对学习英语很有帮助,你也学的很好,但如果长期以来你只是跟他一个人进行英语听说读写练习,那么你很快就会学到他常用的俚语、说英语独有的方式、口音,这会导致你更加难以与一般人用英语交流——这就是过拟合。
如何避免过拟合现象?——正则化

  1. 早停法——在训练集效果实际收敛前就停止训练,尽量抵达红色曲线的底端。这是一种常用策略,但实际操作难度大;
  2. 在训练期间添加模型复杂度惩罚项

下面主要讲2。
这里写图片描述
目前,训练仅专注于一个重要方面,也就是获取正确的训练样本,最大程度地减少经验风险(经验风险最小化)。接下来引入第二项对模型复杂度进行惩罚——结构风险最小化。我们要平衡这两个关键因素,以确保获取正确的训练数据但又不过度信赖训练数据以免是的模型过于复杂。
这里写图片描述
那么我们如何定义模型复杂度?
1、尽量选择较小的权重:也就是使参数小到几乎可以让我们忽略,同时我们仍能获取正确的训练样本。
2、通过L2正则化(岭正则化)以数学方式进行编码——对权重的平方和进行惩罚。如果你熟悉贝叶斯先验概率,就会知道这是一种先验概率。在我们查看训练样本之前便猜出:权重应该以0为中心呈正态分布,而且数值不会太大。在使用L2正则化时,模型的确会关注训练数据,但会尽量确保最后的权重不会超过所需的大小。


这里写图片描述
我们再在数学方面总结一下,目前,我们在训练优化方面添加了两项:1、训练损失(我们希望获取正确的样本,可以看出L项(即损失项)取决于训练数据)2、结构风险最小化。
我们会注意到,第二项与数据无关,它只是简化模型而已。这两项通过lambda实现了平衡,这是一个系数,代表我们对获取正确样本与对简化模型的关注程度之比;lambda的选择其实取决于你的具体情况——
1、如果你有大量的训练集,且训练集与测试集看起来一致,并且统计情况呈现独立同分布,那么不需要进行多少正则化,可能一个系数需要设为-6,也可能不需要正则化;
2、如果训练集不大,或者训练集和测试集有所不同,那么需要大量的正则化,并需要利用交叉验证,或者使用单独的测试集进行调整。

猜你喜欢

转载自blog.csdn.net/qq_30354455/article/details/80417269