前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >秘籍0x02基础误差分析

秘籍0x02基础误差分析

作者头像
上善若水.夏
发布2018-09-28 11:36:25
3600
发布2018-09-28 11:36:25
举报
文章被收录于专栏:上善若水上善若水
13-19章
  1. 快速构建并迭代你的第一个系统 试图在一开始就设计和构建出完美的系统会有些困难,不妨先花几天的时间构建并训练一个最基础的系统。 或许这个最基础的系统离我们所能构建的“最佳”系统相去甚远,但研究里面的基础功能也很有价值:你会很快地找到一些线索来帮助决定在什么方向投入时间
  2. 误差分析:根据开发集样本评估想法。 误差分析(Error Analysis) 指的是检查算法误分类的开发集样本的过程,以便你找到造成这些误差的原因。这将帮助你确定项目优先级(就像上面的例子提到的)并且获得关于新方向的灵感 。 一个想法对误差是否有改进,可以考虑极限的方式。 把精力放在改进空间最大的区域。
  3. 清洗误标注的开发集和测试集样本。 基于统计数据进行决策。
  4. 将大型开发集拆分为两个子集,专注其一。 将开发集明确地分为 Eyeball 和 Blackbox 开发两个子集将很有帮助,它使你了解在人为的误差分析过程中 Eyeball 开发集何时开始发生过拟合。 发生过拟合的时候,可以把更多的Blackbox 中的元素放到Eyeball中。
  5. Eyeball 开发集应该大到能够让你对算法主要的错误类别有所察觉。如果你正在处理一项人类表现良好的任务(比如识别图像中的猫),下面是一些粗略的指导方案 :
    • 如果分类器在 Eyeball 开发集上只犯错 10 次,这个开发集就有点小了。只有 10 个错误样本的话,很难准确估计不同错误类别的影响。但如果数据非常少且不能提供更多的 Eyeball 开发集样本时,聊胜于无,这将有助于确立项目的优先级。
    • 如果分类器在 Eyeball 开发集上样本上犯了约 20 次错误,你将会开始大致了解主要的误差来源。
    • 如果有约 50 个错误样本,你将会比较好地了解主要的误差来源。
    • 如果有约 100 个错误样本,你将会很清楚主要的误差来源。我见过有人手动分析更多的错误样本——有时候多达500个。只要你有足够多的数据,这将是无害的。

    Eyeball 开发集的大小将主要取决于你能够手动分析样本的时间,以及你所拥有的访问数据的权限;

  6. 小结:基础误差分析
    • 当你开始一个新项目,尤其是在一个你不擅长领域时,很难正确猜测出最有前景的方向。
    • 所以,不要在一开始就试图设计和构建一个完美的系统。相反,应尽可能快(可能在短短几天内)地构建和训练一个基本系统。然后使用误差分析去帮助你识别出最有前景的方向,并据此不断迭代改进你的算法。
    • 通过手动检查约 100 个算法错误分类的开发集样本来执行误差分析,并计算主要的错误类别。用这些信息来确定优先修正哪种类型的错误。
    • 考虑将开发集分为人为检查的 Eyeball 开发集和非人为检查的 Blackbox 开发集。如果在 Eyeball 开发集上的性能比在 Blackbox 开发集上好很多,那么你已经过拟合 Eyeball 开发集,并且应该考虑为其获得更多的数据。
    • Eyeball 开发集应该足够大,以便于算法有足够多的错误分类样本供你分析。对很多应用来说,含有1000-10000个样本的 Blackbox 开发集已足够。
    • 如果你的开发集不够大到可以按照这种方式进行拆分,那么就使用 Eyeball 开发集来用于人工误差分析、模型选择和调超参。
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2018.05.23 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档