利用FasfDFS搭建文件系统(二)

基于Redis实现抽奖功能

  返回  

Task 03误差和梯度下降

2021/8/21 16:41:28 浏览:

文章目录


前言

本文主要介绍了误差的来源,不同情况下误差的来源不同,过拟合、欠拟合的原因、解决方法,交叉验证和梯度下降法中的一些小技巧。


一、误差的来源

误差主要来源于 b i a s bias bias v a r i a n c e variance variance
在这里插入图片描述
如图所示, f ^ \hat f f^表示真实的模型, f ∗ f^* f是我们通过机器学习的步骤得到的最好的模型。这个过程就好像是打靶, f ^ \hat f f^为靶心, f ∗ f^* f是我们投掷的结果。两者之间蓝色部分的差距就是 b i a s bias bias v a r i a n c e variance variance导致的。

二、不同模型的方差( v a r i a n c e variance variance

在这里插入图片描述

一次模型的方差比较小,即比较集中,离散程度较小。而五次模型的方差就比较大,散布比较广,离散程度较大。

所以用比较简单的模型,方差是比较小的(就像射击时,每次射击的范围都集中在一个比较小的区域内)。如果用了复杂的模型,方差就很大,散布就比较开。另外,简单的模型受到不同训练集的影响是比较小的。

三、不同模型的偏差( b i a s bias bias

在这里插入图片描述
f ^ \hat f f^是我们不知道的,假设为上图的黑色曲线,一次模型的偏差比较大,而复杂的五次模型,偏差就比较小。
直观上来讲,一次的模型包含的空间范围小,所以有可能它根本没有包含靶心,而五次的模型包含的空间范围就比较大,有可能包括靶心,虽然不能确定靶心位置,但足够多的射击次数,就有可能射中靶心。

四、欠拟合(Underfitting) and 过拟合(Overfitting)

在这里插入图片描述
如果模型没有很好的训练训练集,就是偏差过大,也就是欠拟合
应对策略:重新设计模型,考虑更多的特征

如果模型很好的训练了训练集,即在训练集上得到很小的误差,但在测试集上得到大的误差,这意味着模型可能是方差比较大,就是过拟合
应对策略:收集更多的数据,具体问题具体分析,比如识别手写数字的时候,偏转角度的数据集不够,那就将正常的数据集左转15度,右转15度来制造新的图片。

五、模型选择

在这里插入图片描述
我们用训练集训练了三个模型(Model 1,Model 2,Model 3),然后在测试集上比较它们的误差,模型3的误差最小,就认为模型3好。但实际上这只是你手上的测试集,真正完整的测试集并没有。比如在已有的测试集上误差是0.5,但有条件收集到更多的测试集后通常得到的误差都是大于0.5的。
那么我们怎样合理的来选择模型呢?

六、交叉验证

在这里插入图片描述
图中public的测试集是已有的,private是未知的。
交叉验证就是将训练集再分为两部分,一部分作为训练集,一部分作为验证集。用训练集训练模型,然后在验证集上比较,确定出最好的模型之后(比如模型3),再用全部的训练集训练模型3,然后再用public的测试集进行测试,此时一般得到的误差都是大一些的。
N N N折交叉验证
N = 3 时,表示将训练集分为三份,两份用来训练,一份用来验证。步骤与上图大同小异。例如在三份中训练结果Average Err是模型1最好,再用全部训练集训练模型1。
在这里插入图片描述

七、梯度下降法的一些小技巧

Tip1:调整学习速率时,要小心地调。
在这里插入图片描述
左边黑色的线代表损失函数,当你调整学习率的时候,如果恰好合适,比如图中的红线,就能顺利找到最低点。而如果学习率调整的较小,比如蓝线,虽然给更多时间它也有可能到达最低点,但实际上是没有那么多时间的。还有的学习率调整的比较大,比如绿线,它就会一直在上方震荡,永远无法到达最低点。如果非常大的话,就会出现类似黄线的情况,效果反而越来越差了。

通常刚开始,初始点会距离最低点比较远,所以使用大一点的学习率;update几次参数之后,比较靠近最低点了,此时可以减少学习率。

Adagrad 算法:每个参数的学习率都把它除上之前微分的均方根。
一般的梯度下降:
在这里插入图片描述
Adagrad 算法:
在这里插入图片描述
Tip2:使用随机梯度下降法
在这里插入图片描述
一般的梯度下降法走一步要处理所有二十个例子,但随机梯度算法此时已经走了二十步(每处理一个例子就更新一次)
Tip3:特征缩放

在这里插入图片描述
上图每一列都是一个例子,里面都有一组特征。

对每一个维度 i i i(绿框)都计算平均数,记做 m i m_i mi;还要计算标准差,记做 σ i \sigma _i σi

然后用第 r r r个例子中的第 i i i个输入,减掉平均数 m i m_i mi,然后除以标准差 σ i \sigma _i σi,得到的结果是所有的维数都是 0 0 0,所有的方差都是 1 1 1

总结

本文主要讲解了机器学习中误差的来源,以及来源产生的不同情况,并简单介绍了过拟合、欠拟合问题出现的原因以及应对策略,最后简要说明了梯度下降的一些小技巧。

联系我们

如果您对我们的服务有兴趣,请及时和我们联系!

服务热线:18288888888
座机:18288888888
传真:
邮箱:888888@qq.com
地址:郑州市文化路红专路93号