ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

在训练集上做误差分析(训练集误差分析):定位高偏差的根因

在训练集上做误差分析(训练集误差分析):定位高偏差的根因 文档教程【免费下载链接】machine-learning-yearning-cnMachine Learning Yearning 中文版 - 《机器学习训练秘籍》 - Andrew Ng 著项目地址https://gitcode.com/gh_mirrors/ma/machine-learning-yearning-cn点击查看免费下载本文是《机器学习训练秘籍》Machine Learning Yearning中文版 Bias and Variance 章节 的核心内容之一对应 ch26.md。文章聚焦一个常被忽略却极其有效的手段当算法因高偏差而在训练集上表现不佳时如何像在开发集上做误差分析一样对训练数据做同样的“人工检查 错误归类 统计占比”分析从而找出训练误差的主要来源并据此决定下一步该投入的方向。读完本文你将掌握一套可复现的训练集误差分析流程并理解它与 开发集误差分析、可避免偏差 等概念之间的承接关系。为什么要在训练集上做误差分析先回顾偏差与方差这一章节建立的基本框架见 ch20.md偏差bias粗略地说是算法在大型训练集上的错误率方差variance算法在开发/测试集上的表现低于训练集的程度。因此一个朴素的推理是算法必须先在训练集上表现得足够好才有理由期望它在开发集和测试集上也有良好表现。如果你的模型连训练数据都拟合不好典型的高偏差、欠拟合场景参见 ch21.md 中“训练错误率 15% / 开发错误率 16%”的例子那么任何针对泛化能力的改进例如增加训练数据都收效甚微——正如 ch20.md 明确指出的在训练集上错误率 15% 而目标是 5% 的情况下算法在未知样本上不可能达到 95% 的精度因为开发/测试集上的表现通常只会更差。针对高偏差本书此前在 ch25.md 中给出了四类主流手段加大模型规模、根据误差分析结果修改输入特征、减少或去除正则化L2/L1/dropout、修改模型架构使其更契合问题。而**“在训练数据上做误差分析”正是驱动这些手段的关键前置步骤**它帮你回答“偏差高在哪里、为什么高、哪些类别的样本是主要拖累”从而避免盲目加大模型或盲目堆数据。核心方法把 Eyeball 开发集的做法搬到训练集上在开发集上进行误差分析时详见 ch14.md标准做法是收集约 100 个被算法误分类的开发集样本人工逐一查看统计其中各类错误原因的占比用占比估算某项改进带来的“误差上限”据此给想法排序。训练集误差分析完全复用这套流程只是把检查对象从开发集换成训练数据从训练集中挑选算法表现最差处理得很差的样本以100 个左右为一组人工逐一检查这些样本例如逐个听、逐张看、逐条读像开发集误差分析一样把错误样本按类别计数、统计占比得到训练误差的主要构成。这套做法尤其适合高偏差场景——即算法没能很好地拟合训练集的情况。它把“训练集表现差”这个笼统的结论拆解成“哪一类样本、哪一种原因导致失败”的明细为后续的模型/特征/正则化调整提供依据。实战案例语音识别系统的训练集误差分析书中以语音识别系统为例给出了一个可以直接照抄的错误归类表格模板。假设系统在训练集上表现不佳你选取算法处理得很差的音频片段约 100 个人工试听并记录每个片段的失败原因得到如下计数表音频片段背景噪音很大语速太快距离麦克风太远备注1√汽车噪音2√√餐馆噪音3√√在起居室里喊叫4√咖啡厅占全体比例75%25%50%从这个表可以立刻读出结论75% 的训练误差样本都败在“背景噪音很大”这一项上且大量样本存在噪音与距离问题叠加例如“餐馆噪音”“咖啡厅”。此时最合理的下一步是优先关注能让算法更好地适应含背景噪音的训练样本的技术——例如针对噪音场景的数据增强、更鲁棒的音频特征、或专门收集噪音场景的训练数据——而不是平均用力地泛泛改进。需要强调两点使用细节逐行核对备注列每个样本的错误原因可以多选√ 可以同时打多个备注用于记录具体场景汽车、餐馆、咖啡厅、起居室避免把两个不同场景的噪音问题误当成同一类。样本量取 100 左右与 ch14.md 的“100 个误分类样本”建议一致。即使每分钟只检查一个样本100 个也只需两小时左右却可能帮你省下数周甚至一个月的无效投入——这是整本书反复强调的“先量化、再动手”原则。一个容易被忽视的检查正常人能否转录这些音频在完成上述错误归类之后还有一道关键校验仔细检查正常人人类是否能转录这些音频片段——注意这些音频应与学习算法的输入音频完全相同。如果背景噪音过于嘈杂导致任何人都无法理解音频里说了什么那么期望算法正确识别这类话语就不太合理——这部分误差本质上不属于算法可以消除的“可避免偏差”而应归入不可避免的误差即最优错误率/贝叶斯错误率的一部分。反之如果人类可以轻松转录、算法却频繁出错则说明训练误差是可避免偏差值得投入资源去消除。这与 ch22.md 的误差分解一脉相承总开发集误差 最优错误率“不可避免偏差” 可避免偏差 方差。训练集误差分析帮你定位“可避免偏差集中在哪类样本”而“人类能否转录”这一检查帮你把“不可避免偏差”从“可避免偏差”中剥离出来避免在不可能消除的误差上浪费精力。书中也预告了这一点将在 与人类表现水平对比第 3335 章中详细展开人类水平既是数据标注的来源也是最优错误率最实用的估计基准参见 ch33.md 中“使用人类表现水平来估计最优错误率并设置可达到的期望错误率”这一条。与相邻章节的衔接何时该用、下一步怎么做把训练集误差分析放回 Bias and Variance 章节的完整决策链中脉络如下判断偏差/方差类型ch21.md对比训练错误率与开发错误率。高偏差对应“训练差、开发与训练差距小”。对照最优错误率计算可避免偏差ch22.md若训练错误率已逼近最优错误率如 15% vs 14%偏差上几乎没有提升空间问题重点应转向方差。若确认存在高可避免偏差则对训练集执行本文的误差分析找出拖累最大的样本类别如“背景噪音很大”占 75%。据分析结果选择手段加大模型规模、增加/修改输入特征、减少正则化或更换架构ch25.md同时用“人类能否正确转录”校验哪些误差根本不该追ch22.md。另外值得注意 ch24.md 的提醒现代深度学习下偏差与方差的“权衡”不再像教科书那样僵硬——加大模型规模配合精心设计的正则化通常可以在不明显增大方差的前提下降低偏差而增加训练数据可以在不影响偏差的情况下降低方差。这正说明误差分析的价值不在于给出唯一正确答案而在于帮你把有限的算力与人力投到回报最大的那一个方向。小结训练集误差分析是开发集误差分析ch14.md在高偏差场景下的自然延伸核心要点可归纳为算法必须先拟合好训练集才有希望泛化到开发/测试集取约 100 个训练集中表现最差的样本人工检查并按错误类别计数得出训练误差的占比分布用“普通人能否正确处理这些样本”来区分可避免偏差与不可避免偏差用占比结果指导下一步优先解决占比最高的错误类别而非平均用力。这套方法同样适用于图像分类、文本分类等任何可以人工检查样本的任务——只需把“听音频”换成“看图片/读文本”其余流程完全一致。它是整本《机器学习训练秘籍》中“先做误差分析、再决定改进方向”方法论在训练侧的重要一环值得与开发集误差分析配合使用。本文基于本仓库 machine-learning-yearning-cn 中的 ch26.md 撰写内容完整继承原文档并结合同章节的 ch20.md、ch21.md、ch22.md、ch23.md、ch24.md、ch25.md、ch27.md 以及 Basic Error Analysis 中的 ch13.md、ch14.md 进行了关联扩充便于读者按章节索引继续深读。赞分享文档教程【免费下载链接】machine-learning-yearning-cnMachine Learning Yearning 中文版 - 《机器学习训练秘籍》 - Andrew Ng 著项目地址https://gitcode.com/gh_mirrors/ma/machine-learning-yearning-cn点击查看免费下载相关推荐如何给Soup贡献代码AGENTS.md规范、pytest smoke测试与CI矩阵完整指南如何给Soup贡献代码AGENTS.md规范、pytest smoke测试与CI矩阵完整指南 Soup 是一个 CLI 优先的大模型微调工具Python 3人工智能大模型微调LoRACLI《机器学习训练秘籍》学习曲线实战解析用训练误差曲线判定高偏差问题《机器学习训练秘籍》学习曲线实战解析用训练误差曲线判定高偏差问题 导读 本文围绕《机器学习训练秘籍》Machine Learning Yearning 中文档教程机器学习训练秘籍从训练集泛化到开发集——用训练开发集精确定位数据不匹配误差机器学习训练秘籍从训练集泛化到开发集——用训练开发集精确定位数据不匹配误差 导读 当训练集与开发/测试集来自不同分布如互联网图像 移动应用图像时文档教程上一篇Zabbix latest.php / jsrpc.php SQL 注入漏洞CVE-2016-10134复现与原理分析下一篇Ruby 网页抓取与数据处理库全景指南awesome-web-scraping 之 ruby.md 深度解读创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表