什么是过拟合与欠拟合?如果给临床大夫讲,这个问题还要求用通俗的语言解释。
打个比方吧。我们现在有一堆的动物,里面不是猫就是狗。每一个动物都有一些特征,比如它喜欢吃什么,它一般的体重、它有几只眼睛,它的爪子是什么样的。我们做人工智能,总有一些训练过程,就是计算机像小孩一样学习的过程。就是我们先搞一批动物,同时告诉计算机,这些动物的特征是什么,也告诉计算机这些动物是什么,然后计算机傻了吧唧地开始学习。等学完总要考一考吧?就是再给一些动物和特征给计算机,然后问它,这是什么动物啊?计算机回答的上来就是人工智能的成功。
好,问题来了。假如,我们只告诉一个特征给计算机,就是这个动物会不会抓老鼠,也就是样本数远大于特征数,那无论计算机学多久,它都不可能认出会抓老鼠的狗。因为大多数的狗不会抓老鼠,而大多数的猫会抓老鼠,所以计算机学习后认为,会抓老鼠的就是猫。你告诉它的特征太少了。这就是欠拟合。如果你还同时告诉计算机它喜欢不喜欢吃鱼,因为会抓老鼠、同时又喜欢吃鱼的狗毕竟是少数,计算机也可以根据这两个特征来判断它大概率是狗还是猫。万一碰到既会抓老鼠又喜欢吃鱼的狗怎么办?我们训练计算机的时候还需要继续加特征,比如会不会上树。
假如你告诉无数特征给计算机,特征的数量远大于你用来培训计算机的动物的数量,那会怎么样呢?弄个极端的情况:你告诉计算机动物体重、会不会抓老鼠、会不会上树、喜欢不喜欢吃鱼四个特征,但样本就一个猫的例子(15斤、会抓老鼠、会上树、喜欢吃鱼),一个狗的例子(25斤、不会抓老鼠、不会上树、不喜欢吃鱼)。这时候计算机只能识别你原来用来做教材的那两个例,但你重新拿一些猫和狗来给它认,它识别错的机会很大。那就是过拟合,比如一只动物(20斤、会抓老鼠、会上树、不喜欢吃鱼),计算机就不知道这是个啥了,完全懵圈,全靠瞎猜。解决问题的办法,就是多给猫狗的例子给计算机学习。
我说明白了吗?
实际真正的模型里,包含的不仅有特征和,还有模型参数,实际影响欠拟合和过拟合的还有参数的数量。不过,那样的问题用通俗的话来解释,就不太容易了。
当然,这个问题没有标准答案,或许以后我会想到更好的例子,全看大夫们是不是觉得自己听懂了。