何恺明重提十年之争——模型表现好是源于能力提升还是捕获数据集偏见

2011年,知名学者Antonio Torralba和Alyosha Efros提出了“数据集偏差之战”,他们发现机器学习模型很容易“过拟合”到特定的数据集上,导致在其他数据集上表现不佳。过去十年,随着深度学习革命的到来,建立多样化、大规模、全面且尽可能无偏的数据集一直是推动这场革命的引擎。

与此同时,算法的进步,特别是神经网络架构的进步,已经在发现数据中的概念、抽象和模式——包括偏见——方面取得了前所未有的能力。

所以,为了研究此问题,何恺明团队设计了一个虚构的”数据集分类”任务。在本篇论文中,研究者们在十年的战斗之后重新审视了数据集偏差问题。本研究基于一个被称之为数据集分类的虚构任务(例如其中一个研究的典型组合被称为“YCD”,呈现了一个三向数据集分类问题),由构建更少偏见的数据集与开发更强大的模型之间的张力驱动。

令研究者和许多最初读者惊讶的是,现代神经网络在这样的数据集分类任务上可以取得极高的准确率,且这一观察结果非常稳健。进一步的实验表明,通过分类数据集学到的表示携带了一些可转移到图像分类任务的语义信息。

总之,报告显示,现代神经网络惊人地有能力从不同的数据集中发现隐藏的偏见。与十年前Torralba和Efros的论文中的 “命名该数据集”游戏 相比,鉴于今天能力强大的神经网络,这个游戏甚至变得更加容易。从这个意义上说,涉及数据集偏见的问题尚未得到缓解。

图为2024年的“命名该数据集”游戏

论文标题:
A Decade’s Battle on Dataset Bias: Are We There Yet?

论文链接:
https://arxiv.org/pdf/2403.08632.pdf

GPT-3.5研究测试:

https://hujiaoai.cn

GPT-4研究测试:

https://higpt4.cn

数据集偏差问题的历史回顾

1. 数据集的早期发展

在计算机视觉研究的早期,数据集的概念并不明确。在计算机出现之前,科学家们已经认识到了测试样本的必要性,以检验他们关于人类视觉系统的计算模型。这些刺激通常由合成图案组成,如线条、条纹和斑点。随着数字化照片设备的引入,研究人员能够在一张或几张真实世界的图像上验证和证明他们的算法,例如自1978年以来一直作为图像处理研究的标准测试图像的“Cameraman”图像。

2. 数据集在任务定义中的角色

随着机器学习方法引入计算机视觉领域,“数据集”的概念变得更加清晰。除了用于验证目的的数据外,机器学习的应用引入了训练数据的概念,算法可以从中优化其模型参数。因此,训练数据和验证数据共同定义了一个感兴趣的任务。

3. 数据集在表示学习中的重要性

在2012年深度学习革命之后,社区很快发现在大规模数据集(如ImageNet)上学习到的神经网络表示具有可迁移性。这一发现引发了计算机视觉领域的范式转变:在ImageNet上预训练表示并将其迁移到下游任务成为常见做法。

因此,ImageNet数据集不再是一个独立的任务,它成为了我们想要表示的通用视觉世界的一个窥视孔。社区开始追求更通用的视觉表示,并努力构建更大、更多样化、希望更少偏见的数据集。

4. 数据集偏差的社会影响

随着数据集的重要性日益增加,社区开始关注由数据集引入的偏差。数据集偏差也具有重要的社会影响。一些知名数据集被发现存在人口统计学和地理位置的偏差,它们还包含有害的社会刻板印象。解决这些偏差对于公平和伦理考虑至关重要。

数据集分类任务的定义与挑战

选择挑战性数据集的标准

在定义数据集分类任务时,研究者有意选择可以使任务具有挑战性的数据集。基于以下考虑选择数据集:

  • 它们规模较大,涵盖的概念范围较广,且有足够的训练图像用于数据集分类;

  • 它们是通用和多样化的;

  • 它们是为了预训练可泛化表示而收集的,或者已经用于这个目的。

神经网络在数据集分类上的高准确率

在对现代神经网络进行的数据集分类任务中,研究者观察到了一些显著的现象,尤其是在不同的数据集组合、模型架构和模型大小方面,神经网络表现出了高准确率。

1. 不同数据集组合的高准确率

实验中,神经网络在多种数据集组合上均展现出了高准确率。例如,在YFCC、CC和DataComp组成的YCD数据集上,模型在保留的验证数据上达到了超过84%的分类准确率,远高于33.3%的随机猜测水平。这种观察在20种可能的3数据集组合中都得到了验证,其中16种组合的准确率甚至超过了80%。

图为“不同的模型架构都实现了高精度”的表格

▲图为“不同的模型架构都实现了高精度”的表格

2. 不同模型架构的高准确率

不同代表性模型架构在YCD数据集组合上的表现也被研究了。从最早的AlexNet到最新的ConvNeXt,所有模型架构都能够出色地解决数据集分类任务,其中4种架构的准确率超过了80%,即使是现在看来较为经典的AlexNet也达到了77.8%的强大结果。

图为数据集分类精度随着训练图像数量的增加而提高

3. 不同模型大小的高准确率

在模型大小方面,即使是非常小的模型也能达到强大的准确率。例如,一个只有7K参数的ConvNeXt模型在YCD分类任务上达到了72.4%的准确率。这表明神经网络结构在学习数据集特有的偏差方面非常有效。同时,更大的模型能够获得更好的性能,尽管收益逐渐减少。

图为ConvNeXt模型的变体,其“微小”的尺寸有2700万个参数

模型行为分析:发现数据集偏差

通过对模型行为的深入分析,研究者们发现了一些关于数据集偏差的有趣现象。

1. 排除低级特征签名的可能性

研究者通过在训练和验证集上应用图像损坏来排除模型仅依赖低级特征签名(如JPEG压缩伪影和颜色量化伪影)的可能性。即使在这些损坏的数据上,模型仍然能够达到较高的分类准确率,这表明模型在解决数据集分类任务时不仅仅依赖于低级偏差。

图为抑制低级签名的不同破坏

2. 与语义分类任务的对比

研究者通过与伪数据集分类任务的对比,进一步证明了模型在真实数据集分类任务中学到的是共享的、可泛化的模式,而不是简单地记忆训练数据。在伪数据集分类任务中,由于所有伪数据集都是从同一源数据集中抽样得到,模型在验证集上的准确率仅为随机水平,这与真实数据集分类任务的表现形成了鲜明对比。

3. 自监督学习在数据集分类中的表现

即使在自监督学习协议下,模型也能够捕捉到不同数据集之间的某些偏差。通过在不同数据集的联合上预训练一个自监督模型,然后在冻结的特征上训练线性分类器,模型仍然能够达到令人惊讶的高准确率(例如,78%)。

4. 数据集分类学到的特征在语义分类任务中的迁移能力

研究者还研究了数据集分类模型在语义分类任务(如ImageNet-1K分类)上的迁移能力。结果表明,数据集分类模型在ImageNet-1K线性探测任务上能够取得非平凡的准确率。使用更多数据集组合的模型能够获得更高的线性探测准确率,这表明通过发现更多数据集的偏差,模型学到了更好的特征。

图为在ImageNet-1K上报告迁移学习(线性探测)的准确性。

总结来说,研究表明,尽管现代数据集非常大、多样化且较少策划,现代神经网络仍然能够轻易地发现隐藏在不同数据集中的偏差。这些偏差包含了一些可泛化和可迁移的模式,这些模式在语义分类任务中也是有用的。

用户研究:人类如何处理数据集分类任务

在数据集分类任务中,人类的表现与现代神经网络的表现形成鲜明对比。为了更好地理解这一任务,研究人员进行了用户研究,以评估人类在此任务上的表现并了解他们的体验。

1、设置 用户被要求对来自YCD组合(YFCC、CC和DataComp)的单个图像进行分类。由于用户可能不熟悉这些数据集,研究人员提供了一个界面,允许用户在尝试预测每个验证图像时无限制地浏览带有数据集身份真实标签的训练图像。每位用户被要求对100张不与他们提供的训练集重叠的验证图像进行分类,没有限制每张图像或整个测试所花费的时间。

2、用户 共有20名自愿参与者参与了用户研究。所有参与者都具有机器学习背景,其中14人有计算机视觉研究经验。

3、用户研究结果 用户在数据集分类任务上的表现统计显示,20名用户中有11名的准确率在40%-45%之间,7名用户的准确率在45%-50%之间,只有2名用户的准确率超过50%。平均准确率为45.4%,中位数为44%。

图为用户研究结果

人类的表现高于随机猜测的水平(33.3%),这表明存在一些人类可以发现的模式来区分这些数据集。然而,人类的表现远低于神经网络的84.7%。

研究还发现,具有计算机视觉研究经验的14名用户的平均表现并不比其他用户好。在这14名用户中,他们在了解研究者的工作之前预估神经网络在此任务上的表现,预估值为60%(2名用户)、80%(6名用户)和90%(1名用户);有5名用户选择不回答。

参与者中有15名描述任务为“困难”,没有人认为任务“容易”。有2名参与者评论说他们发现任务“有趣”。研究者进一步询问用户他们发现并用于解决此任务的数据集特定模式。用户的回应总结包括YFCC、CC、DataComp三方面

在这些用户反馈中,有一些简单的偏见可以被利用(例如DataComp的“白色背景”),这有助于提高用户预测准确率,超过随机猜测水平。然而,许多偏见类型,如图像中包含的“人”,既不充分也不有意义,因为所有数据集都包含有“人”出现的图像。

结论:现代神经网络对数据集偏差的敏感性

在对现代神经网络和大规模数据集的数据集分类问题的重新审视中,研究者观察到现代神经网络仍然可以轻易地捕捉到数据集偏差。这一现象在模型、数据集组合和许多其他设置中都是稳健的。

值得指出的是,神经网络捕捉到的具体偏差形式仍然不甚清楚。研究者发现这种偏差可能包含一些可泛化和可迁移的模式,并且可能不容易被人类察觉。

讨论与未来工作:数据集偏差问题的深入探讨与解决途径

1. 数据集偏差的本质

数据集偏差的本质可能并非人类容易察觉的低级特征。实验表明,即使在对数据集施加了各种形式的干扰后,神经网络仍能保持较高的分类准确性,这表明网络在解决数据集分类任务时,可能依赖于超越低级特征的某些模式。

2. 数据集偏差与模型泛化能力

研究者们观察到了数据集分类任务中的神经网络表现出与语义分类任务类似的泛化行为。这意味着网络可能在学习某些可泛化到未见数据的语义模式,而非仅仅记忆训练数据。这一点在增加训练数据量和使用数据增强时得到了进一步的证实,因为这些操作提高了模型在验证数据上的准确性。

3. 自监督学习与数据集偏差

即使在没有使用数据集标识作为标签的自监督学习模型中,也观察到了能够捕捉不同数据集之间偏差的能力。这表明,即使在不直接针对数据集分类任务进行训练的情况下,预训练的模型也能学习到一些对数据集分类有用的判别特征。

4. 解决数据集偏差的途径

为了减少数据集偏差对模型性能的影响,社区已经开发了多种方法,如多数据集训练、测试时对数据集偏差的适应性调整,以及针对数据集偏差的自动分析工具。

因此,何恺明和刘壮等为我们提了一个醒,研究表明,即使是最新的数据集和模型,也无法完全避免偏差问题。所以未来的研究需要进一步探索如何更有效地识别和减轻数据集中的偏差,以及如何设计更加公平和道德的数据集。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/473756.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

三级数据库技术考点(详解!!)

1、 答疑:【解析】分布式数据库系统按不同层次提供的分布透明性有:分片透明性;②位置透明性;③局部映像透明性,位置透明性是指数据分片的分配位置对用户是透明的,用户编写程序时只需 要考虑数据分片情况,不需要了解各分片在各个场地的分配情…

GitHub配置SSH Key(详细版本)

GitHub配置SSH Key的目的是为了帮助我们在通过git提交代码是,不需要繁琐的验证过程,简化操作流程。比如新建的仓库可以下载, 但是提交需要账号密码。 步骤 一、设置git的user name和email 如果你是第一次使用,或者还没有配置过的话需要操作…

zookeeper底层细节

zk 临时节点和watch机制实现注册中心自动注册和发现,数据都在内存,nio 多线程模型; cp注重一致性,数据不一致时集群不可用 事务请求处理方式 1.all事务由唯一服务器处理 2.将客户端事务请求转成proposal分发follower 3.等待半…

基于Jenkins + Argo 实现多集群的持续交付

作者:周靖峰,青云科技容器顾问,云原生爱好者,目前专注于 DevOps,云原生领域技术涉及 Kubernetes、KubeSphere、Argo。 前文概述 前面我们已经掌握了如何通过 Jenkins Argo CD 的方式实现单集群的持续交付&#xff0c…

Maven,pom.xml,查找 子jar包

在IDEA打开pom.xml&#xff0c;会看到这里&#xff1a; 然后如果有需要&#xff0c;把相关的 子jar包 去掉 <dependency><groupId>XXX</groupId><artifactId>XXX</artifactId><exclusions><exclusion><artifactId>xxx</a…

Node.js核心命令与工具:提升开发效率的实用指南

&#x1f31f; 前言 欢迎来到我的技术小宇宙&#xff01;&#x1f30c; 这里不仅是我记录技术点滴的后花园&#xff0c;也是我分享学习心得和项目经验的乐园。&#x1f4da; 无论你是技术小白还是资深大牛&#xff0c;这里总有一些内容能触动你的好奇心。&#x1f50d; &#x…

HarmonyOS NEXT应用开发之Web组件预览PDF文件实现案例

介绍 本案例通过Web组件实现预览本地PDF文件和预览网络PDF文件&#xff0c;代码为Tabs容器组件包含了两个独立的TabContent子组件&#xff0c;分别标示为预览本地PDF文件和预览网络PDF文件。每个子组件内部构建一个Web组件。第一个Web组件利用resource协议关联本地PDF文件路径…

Docker系列

目录 练习&#xff1a;去DockerHub搜索并拉取一个Redis镜像 练习&#xff1a;去DockerHub搜索并拉取一个Redis镜像 目标&#xff1a; 1&#xff09;去DockerHub搜索Redis镜像 2&#xff09;查看Redis镜像的名称和版本 3&#xff09;利用docker pull命令拉取镜像 查看是否…

计算机网络简答题:复试+期末

文章目录 1.计算机网络的功能:2.计算机网络的分类:3.主机间的通信方式:4.电报交换、报文交换、分组交换的区别:5.计算机网络的性能指标:6.0SI模型和TCP/IP模型:7.通信信通的方式:8.端到端的通信与点到点通信的区别:9.同步通信和异步通信:10.频分复用、时分复用、波分复用和码分…

【Qt】常用控件

目录 一、控件概述 二、QWidget 三、Buttons类控件 3.1 QPushButton 3.2 QRadioButton 3.3 QCheckBox 3.4 QToolButton 四、Display Widgets&#xff08;显示类控件&#xff09; 4.1 QLabel 4.2 QLCDNumber 4.3 QProgressBar 4.4 QCalendarWidget 五、Input Widge…

深度学习 | 神经网络

一、神经网络原理 1、神经元模型 虽然叫个神经元&#xff0c;但骨子里还是线性模型。 2、神经网络结构 顾名思义就是由很多个神经元结点前后相连组成的一个网络。虽然长相上是个网络&#xff0c;但是本质上是多个线性模型的模块化组合。 在早期也被称为 多层感知机 Multi-Layer…

【java】java环境变量分类

测试代码&#xff1a; public class TestSys {public static void main(String[] args) {/*** 获取所有的系统环境变量*/Map<String, String> map System.getenv();map.forEach((key, value) -> System.out.printf("env&#xff1a;key:%s->value:%s%n"…

AQS源码分析

前言 AbstractQueuedSynchronizer是抽象同步队列&#xff0c;其是实现同步机器的基础组件&#xff0c;并发包中的锁的底层就是使用AQS实现的。AQS中 维护了一个volatile int state&#xff08;代表共享资源&#xff09;和一个FIFO线程等待队列&#xff08;多线程争用资源被阻塞…

监控系统prometheus+grafana+发送告警信息

1、基础环境准备两台或更多的主机 2、关闭selinux vi /etc/selinux/config&#xff0c;修改SELINUX的值为disabled 3、关闭防火墙 systemctl disable firewalld systemctl stop firewalld 4、prometheus官网下载 https://prometheus.io/download/ 5、grafana官网下载 https…

Linux-shell中变量的引用($变量名,${变量名})

1. 背景 最近写脚本时&#xff0c;发现有个变量在某个地方生效&#xff0c;某个地方又不生效&#xff0c;引用方式为 $变量名。 2. 方法 其实 shell 脚本中对变量的引用有两种方式&#xff1a; $变量名${变量名} 用下面的脚步&#xff0c;去测试效果&#xff1a; a100 b2…

专题三 - 二分 - leetcode 704. 二分查找 | 简单难度

leetcode 704. 二分查找 leetcode 704. 二分查找 | 简单难度1. 题目详情1. 原题链接2. 基础框架 2. 解题思路1. 题目分析2. 算法原理3. 时间复杂度 3. 代码实现4. 知识与收获 leetcode 704. 二分查找 | 简单难度 1. 题目详情 给定一个 n 个元素有序的&#xff08;升序&#x…

让扣你代码的人电脑关机-js反爬

文案 让扣你代码的人电脑关机&#xff0c;赶紧学起来。众所周知。浏览器中无法导入模块&#xff0c;会报错。nodejs中可以导入模块。那么我们可以在导入语句后加入整蛊代码。在捕获异常后执行正常的代码。那么代码在浏览器中就会正常执行&#xff0c;而当你在本地环境中执行的…

Pytorch CUDA Reflect Padding 算子实现详解

CUDA 简介 CUDA&#xff08;Compute Unified Device Architecture&#xff09;是由NVIDIA开发的一种并行计算平台和应用编程接口&#xff08;API&#xff09;&#xff0c;允许软件开发者和软件工程师使用NVIDIA的图形处理单元&#xff08;GPU&#xff09;进行通用计算。自2007…

网页无插件视频播放器,支持录像、截图、音视频播放,多路播放等,提供源码下载

前言 本播放器内部采用jessibuca插件接口&#xff0c;支持录像、截图、音视频播放等功能。播放器播放基于ws流&#xff0c;分屏操作支持1分屏、4分屏、6分屏、9分屏方式。 jessibuca工作原理是通过Emscripten将音视频解码库编译成Js&#xff08;WebAssembly&#xff0c;简称was…

STC89C52RC单片机烧录时遇到的问题

(1)我之前安装了虚拟串口&#xff0c;跟物理串口冲突了&#xff0c;导致烧录失败。 把虚拟串口删除即可。 &#xff08;2&#xff09;我使用的是STC89C52RC单片机&#xff0c;而不是STC89C52单片机。 所以红色位置之前填错了。 (3)单片机冷启动是什么&#xff0c;难怪程序烧录…
最新文章