在这部分我们检验多项式层数d和过拟合和欠拟合之间的关系。

1.我们区分是否是偏差或方差导致我们预测错误。

2.大偏差是欠拟合,大方差是过拟合。理想情况下,我们需要在这两者之间找到中庸之道。

 

当我们增加多项式的D时,训练误差会减小。

同时,交叉验证误差会随着d增加到一个点而减小,然后随着d的增加而增大,形成一个凸曲线。

 

这是总结在下面的图:

 

正则化和偏差/方差

 

 

在上图中,我们看到,作为λ的增加,我们的配合变得平滑。另一方面,当λ接近0,我们倾向于过度拟合数据。那么我们如何选择我们的参数λ得到它“恰到好处”?为了选择模型和正则化项λ,我们需要:

1.创建一个列表的Lambda表达式(i.e. λ∈{0,0.01,0.02,0.04,0.08,0.16,0.32,0.64,1.28,2.56,5.12,10.24});

2.创建一组具有不同次方或任何其他变形的模型。

3.遍历λ和每个λ穿过所有的模型来学习一些Θ。

4.运用所得到的Θ计算交叉验证误差(计算λ)用JCV(Θ)(没有正规化或λ= 0)。

5.选择在交叉验证集上产生最低错误的最佳组合。

6.用最佳的组合Θ和λ,它适用于JTEST(Θ)是否对问题有很好的泛化。

 

学习曲线

在非常少的数据点上训练一个算法(如1, 2或3)将很容易有0个错误,因为我们总能找到一个二次曲线恰好触及这些点。因此:

1.作为训练集规模越来越大,对一个二次函数的误差增大。

2.误差的值在到达一个确定的m或一个训练集大小后会处于平稳状态

 

高偏差:

训练集数量太少:造成训练集的成本函数低,交叉验证集的高

训练集数量大:造成训练集和交叉验证集的成本函数都高

 

如果一个学习算法遭受高偏差,获得更多的训练数据本身就不会有多大帮助。

 

高方差:

训练集少:训练集误差小,验证集误差大

训练集大:训练集误差随训练数量增加而增加。验证集持续不平整的减少。

训练误差小于验证集,但是两者区别还是很大

 

如果一个学习算法是患有高方差,得到更多的训练数据可能帮助。

 

 

决定下一步做什么

我们的决策过程可以分解如下:

1.得到跟多训练样本:高方差

2.减少变量:高方差

3.增加变量:高偏差

4.增加多次项:高偏差

5.调低λ:高偏差

6.调高λ:高方差

 

诊断神经网络

1.一个参数较少的神经网络容易欠拟合

2.一个参数较多的神经网络容易过拟合。在这种情况下,你可以使用正则化(增加λ)来解决过度拟合。

 

采用单隐层是一个好的开始,默认。你可以训练你的神经网络上的一些隐藏的图层使用交叉验证集。然后你可以选择表现最好的一个。

 

模型复杂度效应:

1.低阶多项式(低模型复杂度)高偏差和低方差。在这种情况下,模型拟合不一致。

2.高阶多项式(高模型的复杂性)拟合训练数据非常好,测试数据非常糟糕。这些具有低偏差在训练数据,但非常高的方差。

3.事实上,我们希望在两者之间选择一个模型,它可以很好地概括,而且也能很好地拟合数据。

posted on 2017-08-19 19:08  郑哲  阅读(525)  评论(0编辑  收藏  举报