神经网络中过拟合的原因和解决方法

为了便于学习进行整理和记录,侵权删除

什么是过拟合?

模型对训练集样本学的“太好”,没有尽可能学出适用于所有潜在样本的"普遍规律",从而导致在出现新样本的时候不能够做出正确的判断。

 

过拟合的表现:模型在训练集上的误差很小,在测试集上误差很大

过拟合的危害?

 

过拟合的模型是一种完全记忆性的模型,不能被一般化,没有应用价值。

也可看作是一个过度复杂的模型,这种模型往往会利用看似正确实则无用的关系,导致误判断。

“危害”: 男朋友没有及时回我消息à他一定是不喜欢我了

 

产生原因:

  1. 训练样本小
  2. 模型过于复杂
  3. 训练集和测试集特征分布不一致
  4. 样本里的噪声数据干扰过大,大道模型记住了噪声特征,忽略了真实的输入输出
  5. 迭代次数过多,对训练中的数据进行了过度拟合

 

如何解决?

整体而言有五种方法:Early Stopping,Regularization, Dropout, Network Structure,data  augmentation,集成学习。

data  augmentation:训练集越多,过拟合的概率越小。可以通过数据增强的方法得数据量更大的训练集。

Early Stopping:针对过拟合定义提出来的方法,在模型对数据集迭代收敛之前停止迭代防止过拟合。

正则化(Regularization):正则化使模型保持简单。最常用的是L1、L2正则化。在lost Function再添加一项。

Dropout:在训练过程中,随机失活部分函数,增强网络结构多样性,在改善过拟合的同时增加训练速度。

Network Structure:改变网路结构,出现过拟合的原因是因为网络模型与数据量不匹配。也就是数据量过少,或网络结构过于复杂。可以通过减少网络的深度,减少节点数量等调整,进行改善。

集成学习:训练多个模型,以每个模型的平均输出作为结果。

 

 

参考文献:

https://blog.csdn.net/baidu_38634017/article/details/104668413

http://www.360doc.com/content/18/0805/10/11935121_775819522.shtml

https://blog.csdn.net/baidu_38634017/article/details/104668413

https://blog.csdn.net/dreamer_kitty/article/details/78086776

https://www.jianshu.com/p/e776baf97ca0


版权声明:本文为qq_39059714原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。