找回密码
 立即注册
  • QQ空间
  • 回复
  • 收藏

机器学习如何进行误差分析

记忆中的恐龙| 2018-12-23 01:00 阅读 1122 评论 0

前言

在之前的文章如何快速提高机器学习模型的性能中我们介绍了只要当你的模型性能比人类水平要低的时候,就可以通过人工误差分析来提高模型的性能,误差分析是指通过人工来检查模型预测错误的数据,来帮助你判断下一步应该怎么优化算法,来提升模型的性能。本篇文章主要介绍,究竟应该如何来进行分析误差,文章主要内容来自于deeplearning.ai视频教程。

误差分析

我们设计了一个猫的分类器,将我们设计的算法在开发集(验证集)上进行测试发现只有90%的准确率,也就是还存在10%的错误率。通过观察算法在开发集上的表现发现,算法将上面两张狗的图片预测成了猫,也许你的同伴会给你提下面这些建议
  • 针对狗,收集更多狗的照片
  • 设计只处理狗的算法,以此来提升分类器的准确率

那么我们到底要不要这样做呢?

如果上面的想法来优化分类器的性能,可能要花不少时间来收集照片和设计算法,最终还可能对于模型性能的提升不大。所以这时候我们就会思考,这个优化的方向究竟是不是正确的,那么我们究竟应该如何来判断优化方向到底是不是正确的呢?我们可以通过一个标准的误差分析流程,来确定我们优化算法的方向。

误差分析流程

  • 统计开发集中分类错误的例子

我们统计了100个分类错误的开发集的例子,发现其中只有5张狗的图片,也就表示分类器只是将5张狗的照片错误的判断为了猫。此时,如果我们针对狗的照片进行优化,最多也只能将开发集中100个错误分类的例子降为95个,降低5%的错误率,也就是将模型的误差由原来的10%降为了9.5%,可以发现提升效果并不是特别明显。如果狗的照片不是5张,而是50张。此时,我们针对于狗的照片进行优化,就能带来模型性能的巨大提升,模型的错误率可以由原来的10%降为5%。

  • 同时评估多个想法

在进行误差分析的时候,我们可以同时评估多个改善想法,通过统计误差来分析来判断我们的想法是不是正确的,以此来选择对模型性能提升最优的方向。

上表展示的是针对模型在开发集上分类错误例子的统计。为了更好的选择我们的优化方向,我们可以设计一张表格来统计模型分类错误的情况,表格的列名代表着我们的改善模型的想法,用勾来勾选模型分类错误的原因,最后一行用来统计每个改善想法的占比。如果在进行误差分析的过程中发现,有新的改善想法,可以在表格中新增列进行统计。通过最后的统计结果发现,模型分类错误有55%是因为图片模糊导致的,有30%是将猎豹预测为了猫。所以,这时我们应该将模型的改善方向放在图片模糊的影响和将猎豹预测为了猫两个方向上。