20201010_过拟合以及神经网络小工具_观看覃秉丰课程笔记

视频录制于2017年

一、拟合的三种状态

拟合的三种状态

三种不同程度的拟合图

 

欠拟合:拟合的程度还不够,不能达到很好的输出效果,没有很好的实现预期的结果。

过拟合:百分之百通过了所有的数据,但是这条曲线比较歪歪扭扭,为了根据训练数据得到比较好的曲线,但是形状可能会比较奇怪,当我们把新的数据带进来之后效果并不会很好。过拟合就是拟合出了一条非常奇怪,非常复杂的一条曲线,虽然说对样本完成了百分百的拟合,但是并不一定新的数据进来做到比较好的输出。这样的拟合虽然把训练数据分的特别好,但是不一定反映了真实的情况。再来新的样本点的时候不能很好的输出。看起来比较好,用起来比较差。

过拟合时测试的误差比训练的误差大的比较多。

正确拟合:拟合出比较合适的曲线,可以很好的拟合出曲线的形状,曲线的形状不很复杂,再来新的数据之后输出的结果也会比较好。最好的拟合。

二、防止过拟合措施

1.增加数据集

(数据挖掘中有句话:拥有一个好的数据集胜过一个好的模型)

数据集太少,神经网络过于复杂就很容易出现过拟合的情况。 

2.正则化方法

正则化示意图

正则化的意思就是在代价函数后面再添加一个项,这个项有所有权重的平方和,这样在权重越来越小的情况下,使得代价函数下降的比较快,从而达到减小网络的复杂度的目的。

3.Dropout

Dropout的方法防止过拟合图

通过改变神经网络本身来实现的防止过拟合,输入层和输出层不变,在每次迭代的时候只让一部分的隐藏层工作,不参与训练的隐藏层的权值不会发生改变。每次迭代都随机的去掉不同的隐藏层。

4.谷歌的拟合工具网址

http://playground.tensorflow.org/

 

总结:

1.拟合的网络相对于要解决的问题不能过于简单(前拟合),也不能过于复杂(过拟合)。根据实际的问题,设置与问题相匹配的复杂程度的网络。

比较简单的模型不要构建太复杂的网络,复杂的模型则需要复杂的网络去拟合。网络的构建需要根据数据的情况,数据复杂网络较复杂,数据简单网络较简单。