
维克托儿
2022/12/30阅读:14主题:自定义主题1
5分钟足矣——拟合的好不好
上回说了拟合的意义,那么,如何评价拟合的好不好呢?
先介绍一个新词:泛化。
泛化
泛化一词的意思是:由具体的、个别的扩大为一般的。
我们知道,机器学习的过程,是通过在训练数据上的学习,在测试数据上的完成测试。终极目标是在生产数据中进行预测,提高生产力。
那么训练数据、测试数据和生产数据并不相同,在训练数据上训练的模型,能否扩大到一般,是否代表真正学会了知识,能否通过测试,能否在生产上准确预测,这些都是不一定的,这就是泛化能力。
拟合的好不好
回到今天的话题,怎么评价拟合的好不好呢?
根据模型在训练数据和测试数据的表现,分4种情况:
训练数据表现 | 测试数据表现 | 结论 |
---|---|---|
不好 | 不好 | 欠拟合 |
好 | 不好 | 过拟合 |
好 | 好 | 刚刚好 |
不好 | 好 | 不太可能,见鬼了 |
如果在训练数据和测试数据都表现很好,那是完美的。
如果训练的不好,测试的好,那就见鬼了。现实中,平时不好好学习,考试考的好,那只有一种可能:作弊了。
看下图,很直观。

下面分别说下欠拟合和过拟合。
欠拟合Underfitting和过拟合Overfitting
欠拟合很容易理解,就是没学好。
平时不好好学习,指望考试的时候超常发挥,不太可能。造成这个问题,有可能是训练数据不够,平时做题太少,肯定学不会。也有可能是模型选择的有问题,那就是学习方法不对,再学也学不会。
过拟合就是学多了,学过了。
为啥学多了还不行呢?刚才说过,机器学习的最终目的是在生产中准确预测,也就是泛化能力很重要。正常情况下,训练数据中会有很多误差点,甚至异常点,但机器不知道如何分辨哪个是异常点,如果把异常点也当作正常情况,学到了很多不对的知识,等拿到生产中预测的时候,就有可能造成错误的判断。学了不该学的,不就是学多了。
比如在一堆图片中识别猫的任务,假如训练数据中混进几只小老虎的错误照片,结果机器太努力的,认为老虎也是猫,抓取了老虎的特征,当成是猫,那么在实际预测的时候,也有可能错误的把老虎当成猫,甚至把不是猫的当成猫。
另外,还有一种可能,训练数据不够丰富也可能造成过拟合。比如还是猫的例子,训练数据只有花猫,结果机器把花猫这个特征也学习到了,认为花猫才是猫,那么在实际预测的时候,给它一个白猫的照片, 它不认为是只猫。
从这个角度看,机器还是很傻的,永远达不到人的智力,人工智能有时候是人工智障。
总结
拟合这件事说到底就是个“度”的把控问题,少一分不行,多一分也不行,有的事情难就难在这个“度”上。
欠拟合多数是数据问题导致的,数据不好,模型再牛逼也没用;过拟合多数是模型或参数导致的,模型过于复杂,学到了很多无用的特征,反而越策错误。
欠拟合比较容易解决,数据不够就想办法增加数据。
过拟合有时候不太好解决,实际工程中,特别是深度学习中,过拟合是非常常见的,其实也是“调参侠”们的主要对手。
不过别担心,针对过拟合有很多解决方案,留在以后再说。
作者介绍
