下篇:欠拟合——那个还没开始就放弃的“躺平族”
一、欠拟合有什么作用——它是个“最低标准报警器”先说直白点欠拟合本身不是好事但“发现欠拟合”这件事非常有用。作用1它是模型复杂度的“下限检测器”你训练一个模型发现训练集准确率只有55%而瞎猜是50%验证集也差不多。这时候欠拟合告诉你你的模型太弱了连训练数据都搞不定。这就像你请了一个家教结果孩子考试从40分变成了41分——家教确实有点用但用处微乎其微。这时候你就知道要么换家教换模型要么改变教学方法加特征、调参数。没有欠拟合这个概念你可能会误以为“模型还有救再多训练一会儿就行”——但实际上如果模型容量本身不够你训练一万年也没用。作用2主动欠拟合是一种“正则化”策略你没看错有时候你故意让模型欠拟合反而能提高泛化能力。场景一防止过拟合的极端手段。如果你的数据噪声很大模型太强反而会把噪声全学进去。这时候你会故意用一个弱模型比如线性模型而不是深度网络让它“欠拟合”那些噪声——这叫用欠拟合对抗过拟合。场景二早期停止的另一种解释。我们在过拟合那篇里说过“早停”可以防止过拟合。早停的那个“停止点”其实就是模型刚好处在既不欠拟合也不过拟合的位置。如果你停得太早那就是主动制造了欠拟合——但如果你故意停得特别早可以用作一种粗糙的特征提取。场景三解释性要求极高的场景。比如医疗诊断、金融风控你需要模型非常简单比如只有两三个特征的线性模型。这时候你宁可接受一定程度的欠拟合也要换来可解释性。总结一下欠拟合是一个“红灯”——它告诉你模型太弱了但你可以利用这个红灯来校准你的模型选择。主动欠拟合则是一种“以退为进”的策略。二、怎么解决欠拟合——5大方法从简单到暴力如果你的模型真的欠拟合了训练集准确率低验证集也低别慌。欠拟合比过拟合好治多了——因为它本质上就是“学不够”你往反方向使劲就行。方法1增加模型复杂度给模型“增肌”欠拟合最常见的原因就是模型太弱。那就让它变强。增加层数或神经元神经网络里从1层加到3层或者每层从10个神经元加到100个。使用更强的算法从线性回归换成多项式回归加平方项、立方项或者从决策树换成随机森林、GBDT。减少正则化强度如果你加了L1或L2正则化把惩罚系数调小甚至设为0让模型敢于把参数变大。生活中类比你让一个小学生去解微积分他解不出来——这不是他懒是他能力不够。换一个大学生来就能解了。欠拟合就是“人不对”换更强的模型就行。方法2增加更多特征给模型更多“线索”模型学不会可能是因为你给的信息太少。添加领域相关的特征预测房价时除了面积再加楼层、房龄、地铁距离、学区等。构造交叉特征比如“面积 × 楼层”这个组合特征可能比单独的面积和楼层更有用。使用特征工程对连续变量做多项式扩展、分箱、傅里叶变换等让线性模型也能拟合非线性关系。生活中类比你想猜一个人是不是程序员。只给“戴不戴眼镜”这个特征准确率可能只有55%。再加“穿不穿格子衬衫”、“发际线高低”、“用不用MacBook”这三个特征准确率能到80%。特征越多模型越能学到位。方法3降低欠拟合导向的正则化反过来正则化本来是防止过拟合的但如果你已经欠拟合了正则化就是“帮倒忙”。减小L1/L2惩罚系数如果之前设了λ0.1试试λ0.01甚至0。关闭Dropout在神经网络里Dropout会随机丢弃一些神经元这会让模型变弱。欠拟合时把Dropout关掉或降低丢弃率。放宽早停条件如果之前用了早停可能停得太早了。让模型多训练几轮看看损失还能不能下降。生活中类比你给孩子戴了很重的沙袋让他跑步他跑得慢。你以为是能力问题其实只是沙袋的问题。欠拟合时先检查是不是“人为限制了模型的能力”。方法4增加训练时间别急着下结论有时候欠拟合只是因为你没训练够。增加迭代次数把epoch从10加到100观察训练损失是否还在下降。调整学习率如果学习率太小模型收敛太慢如果太大可能震荡不收敛。用学习率衰减或自适应优化器Adam可以缓解。更好的初始化有些模型对初始值敏感换一种初始化方法比如He初始化或Xavier能加速收敛。生活中类比你学一门新语言只学了一周就考试成绩很差。这不是你学不会是时间不够。再多学一个月成绩就上去了。方法5清洗数据排除干扰项这条比较少见但如果你训练数据里有大量错误标签或异常值模型会被“带偏”表现为欠拟合。检查标签质量有没有把猫标成狗有没有标注不一致去除明显的异常值比如身高2.6米、月收入负数的样本。增加数据量有时候欠拟合是因为数据太少模型无法从中总结出稳定规律。加数据往往能同时缓解欠拟合和过拟合——神奇吧总结一下欠拟合 vs 过拟合对比项 欠拟合 过拟合 训练集表现 差 极好 测试集表现 也差 也差但比训练集差很多 本质 没学会主要规律 连噪音都背下来了 原因 模型太弱、特征太少、训练不够 模型太强、数据太少、训练过度 怎么治 增加复杂度、加特征、多训练 降低复杂度、加数据、正则化、早停欠拟合了就“加码”——加模型复杂度、加特征、加训练时间。过拟合了就“减负”——减模型复杂度、减特征、加正则化。记住这两条你就能在欠拟合和过拟合之间找到那个“刚刚好”的点。那个点就是真正的机器学习高手所在的区间。
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2514498.html
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!