什么是过拟合和欠拟合

版权声明:转载请注明出处http://blog.csdn.net/xuaho0907 https://blog.csdn.net/xuaho0907/article/details/88649141

今天突然被以前同学人问到什么是机器学习中的’过拟合‘?

“过拟合就是训练的时候效果很好损失函数值可以降得很低,但是到测试数据集的时候表现就不那么好了,就是过分依赖于现有训练数据集的特征造成的,可以加大数据集来进行训练,比如在图像领域可以通过拉伸旋转变换剪裁等等方式来增加训练数据集然后通过Dropout随机清零参数来避免.......“。巴拉巴拉讲了一堆,虽然我很想解释明白,但是.......总感觉有苦说不出的憋屈,最后:

这让我意识到我可能太过于沉浸于自己的世界了,以前每次问别人的时候也会得到类似这压根的一大堆专业词语的解释,然后显得回答者特专业,完全没有考虑到别人的感受,我回来后寻思着不对,对于没有接触过机器学习这一块的人来说很多名词可能就听不太懂,我不能用太多的专业词,我要用最直白的语言解释,于是产生了这篇博客。

--------------------以下进行正经的解释----------------------

fitting:拟合,就是说这个曲线能不能很好的描述这个样本,有比较好的泛化能力

过拟合(OverFititing):太过贴近于训练数据的特征了,在训练集上表现非常优秀,近乎完美的预测/区分了所有的数据,但是在新的测试集上却表现平平。下面给一个代码中实际的运行结果感受一下:

欠拟合(UnderFitting):样本不够或者算法不精确,测试样本特性没有学到,不具泛化性,拿到新样本后没有办法去准确的判断

直观解释:

解决过拟合的方法:降低数据量,正则化(L1,L2),Dropout(把其中的一些神经元去掉只用部分神经元去构建神经网络)

解决欠拟合的方法:增加训练数据,优化算法

-----------------------------------正经解释完毕,以下是非正经解释----------------------------------

就好比你喜欢一个女生,这个女生有着自己的习性,为了追到这个女生我们经常会去迎合这个女生的习性,比如喝温水有固定的温度、挂电话只能她先挂、出去逛街不能哔哔太累、看书只能用书签不能折页........(别问我怎么知道的),这个就是我们学到的‘经验’,但是万一也许可能这个女生某一天觉得你没有足够关心她每天都忙于自己的事情就和你分手啦.....

然后,当你再找女朋友时,你拿出这些 ‘经验’ 但是好像发现效果并不好,因为每个女生的习性和喜好都不一样,所以你就陷入过拟合

如何解释欠拟合...,那就简单了,就是你第一个女朋友都没追到,她的习性和喜好你还没能完全掌握

完美拟合,当你在追第一个女朋友的时候,并没有完全去迎合她的习性,毕竟存在 ‘个人癖好’ 这个‘错误’习性,你学到的是有泛化性的女生习性特征,当你用这些特征再去追女生的时候,成功率就很高了!

猜你喜欢

转载自blog.csdn.net/xuaho0907/article/details/88649141