此前,ImageNet 因为存在标签错误的问题而成为热门话题,这个数字说出来你可能会大吃一惊,至少有十万个标签是存在问题的。那些基于错误标签做的研究,很可能要推翻重来一遍。
由此看来管理数据集质量还是很重要的。
很多人会使用 ImageNet 数据集作为 benchmark,不过基于 ImageNet 预训练的模型,最终结果可能会因为数据质量而变化。
本文中,来自 Adansons 公司的工程师 Kenichi Higuchi 对《 Are we done with ImageNet? 》一文中的 ImageNet 数据集进行重新研究,在去除错误标签数据后,重新评估 torchvision 上发布的模型。
本文将 ImageNet 中的标签错误分为三类,如下所示。
(1) 标注错误的数据
(2) 对应多个标签的数据
(3) 不属于任何标签的数据
总结来看,错误数据大约有 14000 多个,考虑评估数据的数量为 50000,可以看出错误数据占比极高。下图是一些有代表性的错误数据。
方法
在不重新训练模型的情况下,该研究通过只排除标注错误的数据,也就是上述(1)类错误数据,以及从评估数据中排除所有错误数据,也就是 (1)-(3) 错误数据,来重新检查模型的准确率。
为了删除错误数据,需要使用一个描述标签错误信息的元数据文件。在这个元数据文件中,如果包含 (1)-(3) 类错误,信息将在「correction」属性中描述。
该研究使用一款名为 Adansons Base 的工具,Adansons Base 通过将数据集链接到元数据来过滤数据。这里测试了 10 个模型,如下所示。
10 个用于测试的图像分类模型
结果如下表所示(数值是以 % 为单位的精度,括号中的数字是排名)
10 个分类模型的结果
以 All Eval 数据为基线,排除错误数据类型(1),准确率平均提高 3.122 分;排除所有错误数据 (1)~(3) ,准确率平均提高 11.743 分。
和预想的一样,排除错误数据,准确率全面提高,这一点毫无疑问,因为与干净数据相比,存在错误数据很容易出错。
当在不排除错误数据的情况下进行评估,以及错误数据(1)~(3) 都被排除时,模型的准确率排名发生了变化。
本文中,错误数据 (1) 有 3670 个,占全部 50000 条数据的 7.34%,移除后准确率平均提高了 3.22 点左右。当移除错误数据后,数据规模发生了变化,单纯的比较准确率可能存在偏差。
尽管并未特别强调,但是在做评估训练时,使用准确标记的数据很重要。
在比较模型之间的准确率时,以前的研究可能得出错误的结论。所以应该先对数据进行评估,但这真的可以用来评估模型的性能吗?
许多使用深度学习的模型往往不屑于对数据进行反思,而是渴望通过模型的表现性能来提高准确性和其他评估指标,即使是评价数据中包含错误数据,也没进行准确的处理。
当创建自有的数据集时,比如在业务中应用 AI 时,创建高质量的数据集直接关系到提高 AI 的准确率和可靠性。本文的实验结果表明,仅仅提高数据质量就可以将准确率提高约 10 个百分点,这表明在开发 AI 系统时不仅要改进模型,还要改善数据集。
然而,保证数据集的质量并不容易。虽然增加元数据的数量以正确评估 AI 模型和数据的质量很重要,但管理起来可能很麻烦,尤其是对于非结构化数据。
以上是移除ImageNet标签错误,模型排名发生大变化的详细内容。更多信息请关注PHP中文网其他相关文章!