# 2.1 进行误差分析（Carrying out error analysis）

如果希望让学习算法能够胜任人类能做的任务，但学习算法还没有达到人类的表现，那么人工检查一下算法犯的错误可以了解接下来应该做什么，这个过程称为**错误分析**

假设正在调试猫分类器，取得了90%准确率，相当于10%错误，注意到算法将一些狗分类为猫，需要对模型的一些部分做相应调整，才能更好地提升分类的精度

![](https://2314428465-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-Le0cHhI0S0DK8pwlrmD%2F-Le0cKOp1vaxoORIi4ak%2F-Le0ce3IonhDHaQddQeC%2F392import.png?generation=1556953090676709\&alt=media)

**收集错误样例**：

在开发集（测试集）中，获取大约100个错误标记的例子，然后手动检查，一次只看一个，看看开发集里有多少错误标记的样本是狗

* 100个数据中有5个样例是狗，如果对数据集的错误标记做努力去改进模型的精度，可以提升的上限是5%，仅可以达到9.5%的错误率，称为性能上限（ceiling on performance）。&#x20;

  这种情况下，这样耗时的努力方向不是很值得的事
* 100个数据中，有50多个样例是狗，改进数据集的错误标记是一个值得的改进方向，可以将模型的精确度提升至95

**并行分析**：

* 修改那些被分类成猫的狗狗图片标签
* 修改那些被错误分类的大型猫科动物，如：狮子，豹子等
* 提升模糊图片的质量

![](https://2314428465-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-Le0cHhI0S0DK8pwlrmD%2F-Le0cKOp1vaxoORIi4ak%2F-Le0ce3KTpGU0-0TvgJS%2F393import.png?generation=1556953090104692\&alt=media)

为了并行的分析，可以建立表格来进行。在最左边，人工过一遍想分析的图像集，电子表格的每一列对应要评估的想法，如狗的问题，猫科动物的问题，模糊图像的问题，最后一列写评论

## ![](https://2314428465-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-Le0cHhI0S0DK8pwlrmD%2F-Le0cKOp1vaxoORIi4ak%2F-Le0ce3Ms3tIXlYQHq9L%2F394import.png?generation=1556953091162524\&alt=media)

在这个步骤做到一半时，可能会发现其他错误类型，比如可能发现有Instagram滤镜，那些花哨的图像滤镜，干扰了分类器。在这种情况下可以在错误分析途中，增加一列多色滤镜 Instagram滤镜和Snapchat滤镜，再过一遍，并确定新的错误类型百分比，这个分析步骤的结果可以给出一个估计，是否值得去处理每个不同的错误类型

![](https://2314428465-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-Le0cHhI0S0DK8pwlrmD%2F-Le0cKOp1vaxoORIi4ak%2F-Le0ce3OWTNK_w608dsV%2F395import.png?generation=1556953091035619\&alt=media)

可以把团队可以分成两个团队，其中一个改善大猫的识别，另一个改善模糊图片的识别

**总结：**

进行错误分析，应该找一组错误样本，可能在开发集或者测试集，观察错误标记的样本，看看**假阳性（false positives）**&#x548C;**假阴性（false negatives）**，统计属于不同错误类型的错误数量。在这个过程中，可能会得到启发，归纳出新的错误类型，通过统计不同错误标记类型的百分比，可以发现哪些问题需要优先解决
