文档教程【免费下载链接】machine-learning-yearning-cnMachine Learning Yearning 中文版 - 《机器学习训练秘籍》 - Andrew Ng 著项目地址https://gitcode.com/gh_mirrors/ma/machine-learning-yearning-cn点击查看免费下载误差分析Error Analysis是 Andrew Ng 在《机器学习训练秘籍》中反复强调的核心调试手段它不是靠直觉猜测而是通过人工检查开发集上被算法误分类的样本量化各类误差的真实占比从而为哪个改进方向值得投入提供可计算的依据。本文以本仓库 Basic Error Analysis 章节 为骨架完整讲解误差分析的操作步骤、收益上限计算、与并行评估ch15、误标注清洗ch16、Eyeball/Blackbox 开发集划分ch17、ch18的配合方法读完即可在自己的分类任务上落地执行这套两小时节省一个月的优先级决策流程。为什么需要误差分析一个典型的狗被误分类为猫案例假设你在运营一个猫咪识别 app团队观察到算法会把一些狗误分类为猫——因为部分犬种的外形确实与猫相似。此时团队有人提议引入第三方软件专门处理狗样本但这需要一个月的研发时间。在批准这个方案之前你应该先回答一个问题这个任务到底能提升多少系统精度如果能提前算清楚改进上限你就能理性判断花一个月做这件事是否值得还是应该把时间投到别的方向上。原文档给出的做法非常朴素且可操作收集 100 个开发集中被误分类即造成系统误差的样本人工逐个查看这些样本计算其中狗所占的比例。这一查看误分类样本的过程就是本书定义的误差分析Error Analysis检查被算法误分类的开发集样本以便找到造成这些误差的原因从而确定各个项目的优先级并为探索新方向提供灵感后续章节会给出误差分析的最佳实践。误差分析的量化逻辑5% 还是 50%决定投入是否值得误差分析的价值在于把感觉变成数字。假设分类器当前精度为 90%对应整体误差 10%如果误分类样本中只有 5% 是狗那么无论你在狗的问题上做多少算法改进最多也只能消除原有 10% 误差中的 5%。也就是说5% 是这个改进方向的上限最大可能值——精度最多从 90% 提升到 90.5%误差从 10% 降到 9.5%。为一个最多提升 0.5 个百分点的方向投入一个月显然性价比存疑。如果误分类样本中有 50% 是狗你可以自信地预期这个方向可以把精度从 90% 提升到 95%相对误差减少 50%整体误差从 10% 降到 5%。这才是值得投入的方向。这套简单的计算过程为是否整合第三方软件给出了一个量化基准。原文档特别指出一个普遍误区很多工程师不愿意做误差分析倾向于想到一个想法就直接实现而不考虑该想法是否值得投入时间——后果往往是团队耗费一个月后才发现收益甚少。而从成本角度看人工检查 100 个样本的时间代价极低即使每分钟只检查一张图片两小时内即可完成而这两个小时可能帮你节省一个月的工作量。这正是误差分析以小博大的性价比所在。误差分析的完整操作流程从 ch13 到 ch19 的方法链误差分析并非孤立技巧它在本书中的完整方法链如下先快速构建系统雏形ch13新项目尤其在你不擅长的领域很难预判最有前景的方向。不要一开始就设计完美系统而是花几天时间构建并训练一个最基础的系统快速找到线索再决定在哪个方向投入时间。人工检查约 100 个误分类样本本章 ch14这是误差分析的主体操作计算主要错误类别的占比。并行评估多个想法ch15用一个电子表格同时跟踪狗 / 大猫 / 模糊等多个错误类别按占比排序确定优先级。清洗误标注样本ch16在误差分析中顺带跟踪误标注占比判断是否值得修正标签。划分 Eyeball / Blackbox 开发集ch17、ch18避免人工查看样本后过拟合开发集同时控制人工检查的工作量。并行评估多个错误类别电子表格法ch15 核心原文档建议用电子表格并行评估多个想法。下面是一个仅含 4 个样本的示意表一行对应一个误分类样本一列对应一个候选错误类别逐行打勾并记录备注图像狗大猫模糊备注1√不常见的美国比特犬2√3√√狮子雨天在动物园拍摄的图片4√树木后的美洲豹占全体比例25%50%50%使用这张表时需要注意两点一个样本可以同时属于多个类别如图片 3 同时勾选大猫和模糊因此各列百分比相加可能超过 100%这属于正常现象。浏览过程中可能涌现新类别比如你发现 Instagram 滤镜处理过的图片严重干扰识别就新增一列Instagram。手动查看误分类样本、思考人类能否正确分类这些样本会帮助你发现新的类别和解决方案。以撤销 Instagram 滤镜恢复原图为例这种能对应到具体改进途径的类别更有价值这个练习的目的不是限定你的改进方向而是培养对潜在改进方向的敏感度。当检查完 100 个误分类样本后你得到类似这样的统计结果图像狗大猫模糊备注1√不常见的美国比特犬2√3√√狮子雨天在动物园拍摄的图片4√树木后的美洲豹............占全体比例8%43%61%此时判断就很直接解决狗的误分类最多改进 8% 的误差而大猫43%和模糊61%能改进更多应优先处理后两者。若团队人力充足可让一部分成员处理大猫另一部分处理模糊。需要清醒认识的是误差分析并不会给出一个明确的数学公式来决定任务优先级。你还需要综合考虑在每个类别上的预期进展以及解决每个类别所需的工作量再作出最终取舍。顺带处理误标注样本何时值得修正标签ch16 核心在人工检查时你可能会发现部分开发集样本本身就被标注错误如非猫图片被标注为猫。是否值得花时间修正这些标签取决于误标注误差在整体误差中的占比是否显著可对比两组情景情景一分类器精度 90%整体误差 10%时误标注样本造成的误差0.6%占开发集误差 6%其他原因造成的误差9.4%占开发集误差 94%此时相对于正在改进的 9.4% 误差0.6% 的误标注误差无足轻重。修正它们虽无坏处但并非必要——因为整体误差究竟是 10% 还是 9.4%对当前决策几乎没有影响。情景二分类器精度提升到 98%整体误差 2%后误标注样本造成的误差0.6%占开发集误差 30%其他原因造成的误差1.4%占开发集误差 70%此时 30% 的开发集误差由误标注造成对精度估计产生显著影响修正标签变得必要处理这些误标注样本你才能判断分类器真实误差是接近 1.4% 还是 2.0%——差异显著。两个关键执行细节修正方式必须同时应用于测试集以保持开发集与测试集服从相同的分布ch05 曾讨论过团队成员花费大量时间优化开发集后来才发现他们按不同标准对待不同的测试集。要同时检查误分类样本与正确分类样本的标签某个样本的原始标注和算法预测可能都是错的。若只修复系统误分类样本的标签评估会引入偏差——假设有 1000 个开发集样本、分类准确率 98%检查 20 个误分类样本远比检查 980 个正确分类样本容易这种挑容易的做会天然让开发集产生偏差。如果只关心产品开发这种程度的偏差可以接受但若要在学术论文中引用测试集精度就需要完全无偏的度量。另外值得注意的是项目初期允许部分误标注样本是常态随着系统不断改进误标注误差在整体误差中的占比会逐渐增大届时再回头处理即可。拆分 Eyeball / Blackbox 开发集防止人工查看导致过拟合ch17/ch18 核心当开发集较大如 5000 个样本、误差 20%即约 1000 个误分类样本时人工检查全部误分类样本耗时过长。原文档建议把开发集明确拆分为两个子集Eyeball 开发集人工用眼睛检查的子集语音识别场景可叫 Ear 开发集。以上例而言随机取 10% 的开发集即 500 个样本其中预计约 100 个误分类样本正好满足误差分析需求。Blackbox 开发集黑箱剩余 4500 个样本只通过测量错误率自动评估分类器、选择算法或调整超参数不人工查看。拆分的原因是一旦你在 Eyeball 开发集上建立了对样本的直观认识就会让该子集更快地过拟合。如果发现 Eyeball 开发集性能比 Blackbox 开发集提升更快说明已经过拟合 Eyeball 开发集——此时应丢弃并更换 Eyeball 开发集例如从 Blackbox 中划拨更多样本进来或获取新的标注数据。明确的拆分让你能及时察觉人工误差分析过程何时开始过拟合。Eyeball 开发集该多大对人类表现良好的任务如识别图像中的猫粗略指导如下Eyeball 开发集上的误判数误差来源判断的把握约 10 次偏小难以准确估计不同错误类别的影响数据极少时聊胜于无仍有助于确立优先级约 20 次开始大致了解主要误差来源约 50 次能较好地了解主要误差来源约 100 次非常清楚主要误差来源也有人分析到 500 个数据充足时无害由于需要约 100 个误分类样本分类器错误率为 5% 时Eyeball 开发集约需 2000 个样本0.05 × 2000 100。分类器错误率越低需要越大的 Eyeball 开发集才能凑够错误样本。若任务是人类本身也做不好的任务人工检查的价值有限可能无需建立 Eyeball 开发集。Blackbox 开发集该多大1000–10000 个样本通常足够调超参与选模型再多也无妨100 个样本虽小但依然有用。如果开发集整体太小不足以拆成两个足够的子集就把整个开发集当作 Eyeball 开发集使用——即人工检查全部数据代价是过拟合开发集的风险更大。在有充足数据的前提下Eyeball 开发集的大小主要取决于你愿意投入多少人工分析时间——实际上很少有人会手动分析超过 1000 个错误样本。误差分析在开发集体系中的位置本书对开发集、测试集的根本定位是开发集和测试集的使命就是引导你的团队对机器学习系统做出最重要的改变ch05。开发集用于调整参数、选择特征、作出其它决定有时也称留出交叉验证集测试集只用于最终评估性能不据此改变算法或参数。误差分析正是引导改变的关键一环——它决定了你的团队把宝贵的迭代周期投在哪个方向上。同时开发集 度量指标决定了迭代速度ch10想法 → 代码 → 实验 → 新想法的循环迭代越快进展越快。拥有开发集和度量指标你才能快速检测出哪些想法带来了哪怕 0.1% 的微小提升从而快速确定下一步研究或放弃的方向。误差分析则在这一循环中进一步回答了应该研究哪个方向。小结基础误差分析的行动清单综合本仓库 Basic Error Analysis 全部七章ch13–ch19核心行动清单如下新项目尤其在不擅长领域很难预判最有前景的方向不要一开始就设计完美系统应尽快几天内构建并训练系统雏形再用误差分析识别最有前景的方向并迭代改进。手动检查约 100 个被算法误分类的开发集样本计算主要错误类别占比据此确定优先修正哪类错误。将开发集分为人工检查的Eyeball 开发集和非人工检查的Blackbox 开发集若 Eyeball 上性能明显优于 Blackbox说明已过拟合 Eyeball应考虑为其获取更多数据。Eyeball 开发集应足够大以便凑够可分析的误分类样本对大多数应用而言含 1000–10000 个样本的 Blackbox 开发集已足够。若开发集太小无法拆分就用 Eyeball 开发集执行人工误差分析、模型选择和调超参。误差分析的核心思想可以用一句话概括在两小时内人工查看 100 个误分类样本用可量化的改进上限为你的团队节省一个月甚至更长的无效投入。相关章节导航误差分析根据开发集样本评估想法本文核心文档在误差分析时并行评估多个想法清洗误标注的开发集和测试集样本将大型开发集拆分为两个子集专注其一Eyeball 和 Blackbox 开发集该设置多大小结基础误差分析赞分享文档教程【免费下载链接】machine-learning-yearning-cnMachine Learning Yearning 中文版 - 《机器学习训练秘籍》 - Andrew Ng 著项目地址https://gitcode.com/gh_mirrors/ma/machine-learning-yearning-cn点击查看免费下载相关推荐《机器学习训练秘籍》解决数据不匹配问题识别信号、误差分析与补齐训练分布machine-learning-yearning-cn《机器学习训练秘籍》解决数据不匹配问题识别信号、误差分析与补齐训练分布machine learning yearning cn 本篇技术指南聚焦《机器学习文档教程如何给Soup贡献代码AGENTS.md规范、pytest smoke测试与CI矩阵完整指南如何给Soup贡献代码AGENTS.md规范、pytest smoke测试与CI矩阵完整指南 Soup 是一个 CLI 优先的大模型微调工具Python 3人工智能大模型微调LoRACLInwg-panel Executor模块高级教程自定义脚本实现自动化任务nwg panel Executor模块高级教程自定义脚本实现自动化任务 nwg panel Executor模块 是这款GTK3面板最强大的功能之一它允许创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考