神经网络-专题教程

【介绍】什么是过拟合与泛化能力

作者 : 老饼 发表日期 : 2022-10-25 15:35:18 更新日期 : 2024-11-12 20:07:20
本站原创文章,转载请说明来自《老饼讲解-BP神经网络》www.bbbdata.com



过拟合是机器学习中最常遇到的问题,过拟合会使得模型在预测时效果不好

本文解释模型过拟合、模型的泛化能力是什么,以及过拟合会造成什么危害



    01. 什么是过拟合   




本节讲解模型过拟合是什么意思,并列举两个经典的过拟合例子




    什么是过拟合    


过拟合是指在由于过度拟合训练数据,导致模型过于复杂,
以致于在实际中的预测效果不好,正因如此,过拟合也称为缺失泛化能力
 常用于解析过拟合的有两个例子,如下:
 
曲线拟合中的过拟合  
 
曲线拟合中的过拟合 
 可以看到,过拟合时,模型虽然在训练数据上拟合得更好,
但过拟合会导致拟合出的曲线已经偏离了原本形态
平面分类中的过拟合
 
分类问题的过拟合 
 可以看到,过拟合时,模型虽然在训练数据上达到更好的效果,
但这种"更好的效果"是通过"勉强而为之"换取而来的,它对模型真实应用时有害无益






  02. 过拟合的具体例子解说  




本节通过展示一个过拟合的实验例子,加深对过拟合的理解





     过拟合-实验例子     


产生过拟合的主要原因是模型为了过于追求训练数据的拟合造成的
 这里我们展示一个曲线拟合中出现过拟合的实验例子
 
现有数据点如下:
 
机器学习-过拟合-例子示图1
 我们用三次多项式  对数据点拟合如下:
 
机器学习-过拟合-例子示图2
 蓝色为数据点,红色为多项式曲线
如果觉得还有些误差,不尽人意
还可以强行用10次多项式把每个点都拟合到位(拉格朗日插值法),如下:

 
 
10次多项式拟合误差 
   可以看到,10次多项式对训练数据已经是0误差拟合
虽然10次多项式对训练数据的拟合误差为0,但它却未必是我们想要的曲线
 我们不妨把该10次多项式的曲线画出,如下: 
 
10次多项式拟合效果 
 
 可以看到整条拟合曲线非常的跌宕!
虽然它精确经过了每一个数据点,但在非历史数据点上,预测效果反而不如3次多项式~!
 这就是过拟合,也称为缺失泛化能力




     过拟合-实验总结      


从上述例子,我们看到了过拟合的两个问题    
 
1.强行拟合历史数据导致整体震荡                              
      由于强行拟合,导致函数在数据点之间剧烈震荡,失去了预测的效果
 
2.强行拟合历史数据会复现不合理的错误                        
 
 观察原始数据点,应该是一个三角函数sin的数据,            
而在  x = -0.6 处,虽然数据点的 y 值是 -1.2,          
但这实际上这更可能是一个采集错误的数据点               
而10次多项式过于追求拟合                               
反而把这个错误数据点的错误也完美无遗的重现了出来       
反观3次多项式,它兼顾了整体的平滑,成功忽略了这个错误点






以上就是《什么是过拟合与泛化能力》的全部内容了~








 End 




联系老饼