谷歌大脑团队:ImageNet错误数据分析

2023-12-06 17:59

本文主要是介绍谷歌大脑团队:ImageNet错误数据分析,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

原文:Vasudevan V, Caine B, Gontijo-Lopes R, et al. When does dough become a bagel? Analyzing the remaining mistakes on ImageNet[J]. arXiv preprint arXiv:2205.04596, 2022.

源码:https://github.com/google-research/imagenet-mistakes

过去十年,ImageNet数据集上的图像分类精度一直是计算机视觉进步的晴雨表。最近的几篇论文质疑了该基准对社区的有用程度,然而算法创新仍然有助于提高模型性能,当今最大的模型达到了90%以上的Top-1精度。为了给当今最先进的模型提供更有意义的评估,我们手动审查和分类了一些顶级模型所犯的每一个错误。我们聚焦ImageNet的多标签子集评估,在这个数据集上,当今最好的模型达到了97%以上的Top-1精度。

我们的分析表明,近一半所谓的“错误”根本不是错误,如果不仔细审查,我们将明显低估这些模型的性能。另一方面,我们还发现,当今最好的模型仍然会犯大量错误(40%),这些错误在人类审查员看来显然是错误的。为了校准未来在ImageNet上的进展,我们提供了一个更新的多标签评估集,并精心制作了ImageNet-Major数据集:当今顶级模型所犯错误中的68个“重大错误”示例,在这个数据集上,模型应该达到近乎完美的水平,但今天远非如此。

面团?百吉饼?傻傻分不清楚。

图1:错误的严重程度。模型对(a)和(b)预测错误。模型对(c)预测正确,但是图中出现了多目标,而标签只有一个,模型预测出了丢失的标签。模型对(d)的预测是正确的,不过(d)的标签“蜜蜂”是错误的,图中的昆虫是bee-fly,它是一种苍蝇。

图2:模型预测错误的4类示例。(b)的标签是“注射器”,图中的动物是毛丝鼠(不属于ImageNet类),但在视觉上类似于仓鼠(属于ImageNet类),因此模型将其预测成了仓鼠。(c)的标签是“鼠标、桌子、显示器、屏幕”,但模型将其预测为“台式计算机”,而图中并没有台式计算机。

表1:ViT-3B模型在重新标记前后的多标签准确率(Multi-label accuracy, MLA)。

表2:ViT-3B和Greedy Soups模型的错误类型与严重程度。

容易混淆的类别对出现的频率,这种分布在本质上是长尾的。最容易混淆的类别对是(美洲变色龙,绿蜥蜴)和(马达加斯加猫,大狐猴)。

表3:ViT-3B、Greedy Soups和最佳人类表现的多标签准确率的比较。

表4:删除泄漏的训练示例对模型性能的影响。

图3:伪相关示例。

图4:我们为审查模型预测而构建的UI截图。对于每张图像,我们会确定模型预测是正确的、错误的还是不清楚的。如果图像的标签不正确,我们会将图像标记为有问题的。

图5:我们构建的类别搜索工具的截图。

图6:重大错误的更多示例。

图7:较小错误的更多示例。

图8:纠正“错误”。模型预测正确,我们将模型预测结果添加到原始的多标签注释中。

图9:有问题的“错误”。图像或其原始标签有问题,不应出现在验证集中。

图10:细粒度错误。

图11:OOV(Out-of-vocabulary)细粒度错误。

图12:伪关联示例。“Over-reliance on context”表明图像中的线索与预测类别相关,尽管预测类别并不存在。“Lack of context”表明模型未能理解图像中的语境,并预测了与图像整体理解不一致的类别。

图13:非典型错误,例如狗品种中的小狗,或该类别中的异常/独特版本。

图14:困难样本。针对第一行图像,人类容易分类错误,但是模型却分类正确。针对第二行图像,人类容易分类正确,但是模型却分类错误。

图15:接近重复的示例。

图16:接近重复的示例。

在本文中,我们分析了ViT-3B和Greedy soup模型在ImageNet多标签验证集上所犯的每一个错误。我们发布了ImageNet-M数据集,这是一个包含68个示例的多标签评估子集,用于衡量模型解决重大、明确错误的能力。

多模态人工智能

为人类文明进步而努力奋斗^_^↑

欢迎关注“多模态人工智能”公众号^_^↑

这篇关于谷歌大脑团队:ImageNet错误数据分析的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/462760

相关文章

深度解析Java @Serial 注解及常见错误案例

《深度解析Java@Serial注解及常见错误案例》Java14引入@Serial注解,用于编译时校验序列化成员,替代传统方式解决运行时错误,适用于Serializable类的方法/字段,需注意签... 目录Java @Serial 注解深度解析1. 注解本质2. 核心作用(1) 主要用途(2) 适用位置3

Debian 13升级后网络转发等功能异常怎么办? 并非错误而是管理机制变更

《Debian13升级后网络转发等功能异常怎么办?并非错误而是管理机制变更》很多朋友反馈,更新到Debian13后网络转发等功能异常,这并非BUG而是Debian13Trixie调整... 日前 Debian 13 Trixie 发布后已经有众多网友升级到新版本,只不过升级后发现某些功能存在异常,例如网络转

SpringBoot3匹配Mybatis3的错误与解决方案

《SpringBoot3匹配Mybatis3的错误与解决方案》文章指出SpringBoot3与MyBatis3兼容性问题,因未更新MyBatis-Plus依赖至SpringBoot3专用坐标,导致类冲... 目录SpringBoot3匹配MyBATis3的错误与解决mybatis在SpringBoot3如果

nginx配置错误日志的实现步骤

《nginx配置错误日志的实现步骤》配置nginx代理过程中,如果出现错误,需要看日志,可以把nginx日志配置出来,以便快速定位日志问题,下面就来介绍一下nginx配置错误日志的实现步骤,感兴趣的可... 目录前言nginx配置错误日志总结前言在配置nginx代理过程中,如果出现错误,需要看日志,可以把

Python错误AttributeError: 'NoneType' object has no attribute问题的彻底解决方法

《Python错误AttributeError:NoneTypeobjecthasnoattribute问题的彻底解决方法》在Python项目开发和调试过程中,经常会碰到这样一个异常信息... 目录问题背景与概述错误解读:AttributeError: 'NoneType' object has no at

SpringBoot+Docker+Graylog 如何让错误自动报警

《SpringBoot+Docker+Graylog如何让错误自动报警》SpringBoot默认使用SLF4J与Logback,支持多日志级别和配置方式,可输出到控制台、文件及远程服务器,集成ELK... 目录01 Spring Boot 默认日志框架解析02 Spring Boot 日志级别详解03 Sp

SpringBoot排查和解决JSON解析错误(400 Bad Request)的方法

《SpringBoot排查和解决JSON解析错误(400BadRequest)的方法》在开发SpringBootRESTfulAPI时,客户端与服务端的数据交互通常使用JSON格式,然而,JSON... 目录问题背景1. 问题描述2. 错误分析解决方案1. 手动重新输入jsON2. 使用工具清理JSON3.

如何解决Druid线程池Cause:java.sql.SQLRecoverableException:IO错误:Socket read timed out的问题

《如何解决Druid线程池Cause:java.sql.SQLRecoverableException:IO错误:Socketreadtimedout的问题》:本文主要介绍解决Druid线程... 目录异常信息触发场景找到版本发布更新的说明从版本更新信息可以看到该默认逻辑已经去除总结异常信息触发场景复

Python数据分析与可视化的全面指南(从数据清洗到图表呈现)

《Python数据分析与可视化的全面指南(从数据清洗到图表呈现)》Python是数据分析与可视化领域中最受欢迎的编程语言之一,凭借其丰富的库和工具,Python能够帮助我们快速处理、分析数据并生成高质... 目录一、数据采集与初步探索二、数据清洗的七种武器1. 缺失值处理策略2. 异常值检测与修正3. 数据

Python struct.unpack() 用法及常见错误详解

《Pythonstruct.unpack()用法及常见错误详解》struct.unpack()是Python中用于将二进制数据(字节序列)解析为Python数据类型的函数,通常与struct.pa... 目录一、函数语法二、格式字符串详解三、使用示例示例 1:解析整数和浮点数示例 2:解析字符串示例 3:解