泛化能力,欠拟合,过拟合,不收敛和奥卡姆剃刀原则
我们在这里介绍几个机器学习中经常可以听到的几个名词,他们就是泛化能力,欠拟合,过拟合,不收敛和奥卡姆剃刀原则。
泛化能力(generalization ability)是指一个机器学习算法对于没有见过的样本的识别能力。我们也叫做举一反三的能力,或者叫做学以致用的能力。
举个例子,通过学习,小学生就可以熟练的掌握加减法,那么他们是怎么做到的呢?第一步学生们先感性的知道了在有一个苹果的基础上再拿来一个苹果的话就是一种加法,第二步知道个数可以用阿拉伯数字抽象的表示,到了0到9这十个数字和他们的抽象含义,第三步学习十以内的加减法,第四步推广到了多位数的加减法。
我们训练一个机器学习算法也是如此,通过感性的告诉机器一个加上一个等于两个,之后算法通过自己的学习,推广计算多位数的加减法,多位数的加减法是无穷多个的,如果机器在不断的测试中都能够算对,那么我们认为机器已经总结出了加法的内部规律并且能够学以致用,如果说机器只会计算你给机器看过的比如3+3=6,而不会计算没有教过的8+9=17,那么我们认为机器只是死记硬背,并没有学以致用的能力,也就是说泛化能力非常的低,同时我们也把这种现象叫做这个算法过拟合(over-fitting)了。(过拟合是一种分类器会发生的现象,而泛化能力可以理解为对分类器的一种性能的评价)
过拟合通常可以理解为,模型的复杂度要高于实际的问题,所以就会导致模型死记硬背的记住,而没有理解背后的规律。就比如说人脑要比唐诗复杂得多,即使不理解内容,我们也能背下来,但是理解了内容和写法对于我们理解记忆其他唐诗有好处,如果死记硬背那么就仅仅记住了而已。
欠拟合(under-fitting)是和过拟合相对的现象,可以说是模型的复杂度较低,没法很好的学习到数据背后的规律。就好像开普勒在总结天体运行规律之前,他的老师第谷记录了很多的运行数据,但是都没法用数据去解释天体运行的规律并预测,这就是在天体运行数据上,人们一直处于欠拟合的状态,只知道记录过的过去是这样运行的,但是不知道道理是什么。
不收敛一般是形容一些基于梯度下降算法的模型,收敛是指这个算法有能力找到局部的或者全局的最小值,(比如找到使得预测的标签和真实的标签最相近的值,也就是二者距离的最小值),从而得到一个问题的最优解。如果说一个机器学习算法的效果和瞎蒙的差不多那么基本就可以说这个算法没有收敛,也就是根本没有去学习。
拟合, 欠拟合, 过拟合与不收敛
我们再通过上面这张图回顾一下刚才介绍的几个概念,我们希望算法学习到处一条线,可以描述我们的数据,我们可以直观的感到几种情况的不同表现。我博客里面的所有图片都是自己用ppt慢慢画出来的,可能会有些表述不准确的地方,如果有的话欢迎大家积极指出我会去改图的。
最后一定有人会问了,我觉得过拟合的那张图也很棒呀,非常完美的学习到了各种情况,但是我要说了,实际情况数据中是会有噪声现象的,一个模型完美的学习出了一些随机的噪声并不是一个好事情,噪声意味着可以正也可以负,那么在测试数据中噪声变成负的了,那么模型的偏差就会非常大了。
所以评价一个模型的好坏就要引入奥卡姆剃刀原则(Occam’s Razor) ,这个原则是说能用简单的方法完成任务的就尽量不要复杂,在这里就是能用简单的模型去拟合就不用复杂的能把噪声都刻画出来的方法。