如何有效降低机器学习模型过拟合?

发布于 2025-6-4 07:02
浏览
0收藏

为什么会过拟合?

如何有效降低机器学习模型过拟合?-AI.x社区

首先需要有一个基本概念,机器学习目前还是处于统计学习范畴,即在一堆数据集(训练集)中寻找规律,然后在新的数据(测试集)预测结果,如果在新数据那预测的效果不佳但训练集效果极好,这时候我们就大概率确认是过拟合的情况。

机器学习过拟合情况.png|550

如何缓解过拟合?

增加训练集

这是一个很直接但有效的解决方案,可以想象一下,我们假定模型的灵活性很高,它很好地拟合了我们的训练集,但我们的训练集(已有的数据)无法很好把数据的真实分布(全域数据)给展示出现来,所以我们在训练集的效果很好,但跑到测试集时,效果就会差。

那这时候,我们拿更多的数据,将实际的真实分布(全域数据)展现出来,这时候模型去拟合,就可以提升整体效果。

如何有效降低机器学习模型过拟合?-AI.x社区

那如何做数据增强?我建议最好还是根据对业务问题的理解创造出新的数据。

例如,你要做的是图像识别,这时候数据增强有可能考虑随机裁剪、颜色变换、随机遮挡等,比较少会出现上下翻转或者镜像翻转这种,除非真实场景有这个需求,所以做数据增强的时候,都是根据你的真实场景去构造新的数据,来将你的训练集越变越大,尽量符合全域数据的情况(或者说你构造数据的时候,已经考虑了测试集出现的情况)。

对模型做限制

我们知道全连接网络是可以拟合无数分布的一种网络结构,正是因为模型太灵活了,所以在做梯度下降的时候,其实拟合的曲线只匹配了训练集那部分,还不能很好覆盖到测试集的情况。所以我们可以通过限制模型的可以拟合的分布情况,来快速提高模型泛化性能。

例如,假设我们知道这个数据集其实就是一个二元函数的数据集,那我们提供一个2次曲线,是不是就很容易拟合成功并且预测得很好?答案肯定是的。同理,我们在针对CV相关数据集,会一开始就考虑CNN(卷积神经网络),也是因为这个数据的先验分布我们清楚,所以用CNN这种针对图像特性处理的模型,初始效果就能比较不错。

当然也有其他方法,例如正则化、early stopping、dropout等,都可以一定程度缓解模型过拟合问题。

参考引用: [李宏毅-《机器学习》](https://speech.ee.ntu.edu.tw/~hylee/ml/2021-spring.php)

本文转载自​​​​沐白AI笔记​​​​,作者:杨沐白

收藏
回复
举报
回复
相关推荐