A Decade’s Battle on Dataset BiasAre We There Yet?

在这里插入图片描述

一些废话:好久没有做论文阅读系列的博客了,之前放弃是因为逐渐繁忙的学业以及论文那边实验非常的揪心,自己其实也看了很多论文,但是记的笔记不足以帮助到大家;

论文下载地址

https://arxiv.org/pdf/2403.08632.pdf

代码下载地址:

https://github.com/liuzhuang13/bias

趁着周末,那就好好读一篇最近凯明大神和刘壮大神的文章吧(凯明不用介绍了,刘壮大神是DenseNet的第一作者,贾杨清的同门师弟,和谢赛宁合作写了ConvNeXt凯明大神和谢赛宁合作写了ResNeXt,果然优秀的人都是相互吸引的,产生的学术价值太出众了)


摘要概述:

重新审视了Torralba和Efros十年前提出的“数据集分类”实验,一些通用的神经网络可以准确的分类图像来自哪一个数据集,例如,由YFCC, CC和DataComp数据集组合的分类,准确率为84.7%;进一步的实验表明,作者设计的数据集分类器可以学习到可泛化和可转移的语义特征,而不是简单地用记忆来解释,作者以此来促使人们对数据集偏差以及模型能力的思考。

个人理解是,其实大家在提高模型性能或者在不同任务的时候都默认采用的预训练模型进行迁移学习,就会涉及到一些特殊领域数据不能很好的泛化,比如自然图像预训练权重在医学图像上表现是稍差一点,正是存在这种问题,才诞生出诸如凯明大神的反思预训练那篇论文和从零开始的训练策略;如今的数据集虽然庞大、多样,帮助模型表现出色的可能是模型的独特设计,也可能是因为它能够分辨数据集,这就不利于模型泛化,对于未知的数据也不能表现的更好。


引言部分:

介绍了Alyosha Efros和Antonio Torralba在机器学习中对数据集偏差的努力,这两个大佬一个是sora两个一作的博导,一个是本科指导过他们(学术真成一个圈了);使用模型在三个数据集混合的数据上训练,用于区分测试图片的准确率非常惊人,通过数据增强以及更多的数据上训练,让模型更加泛化,表明神经网络会用偏差的形式去解决数据集分类任务,并且进一步实验表明:通过分类数据集学习到的表示带有一些可转移到图像分类任务的语义信息。

自监督训练在联合数据集上预训练后,再训练一个分类器用来分类图像来自哪个数据集,依然可以达到78%的准确率;在如今很厉害的神经网络以及庞大的数据集任务中,数据集偏差问题并没有得到缓解;


数据集历史的简单介绍

数据集在计算机出现之前成为“刺激”;1978以来,逐渐形成用Cameraman图像作为测试图像去评估计算机视觉算法的概念;机器学习方法的引入,也清晰了数据集的定义;

ImageNet数据集如果用1000个SVM分类器进一步研究问题是不太可能的,所以有了更多样的任务,也就发展后续的深度学习,转变成另一种模式:在ImageNet上预训练表征并将其转移到下游任务中;后续则越来越多数据集为了预训练而构建,并不是单一的一个任务方向;

后续数据集通过不同的领域划分;之后的内容都是在介绍数据集的偏见有多么的不好;


数据集分类任务

顾名思义,每个数据集为一个类,类似于图像分类,作者介绍了实验的数据集:1、规模大,2、具备普遍性和多样性,3、非特定场景(城市、道路、天空、汽车等),4、以预训练数据集的标准构建或已经用于预训练;

虽然这些数据集图像看起来没有偏见,但是神经网络还是能捕捉到潜在的,尽管使用模型单独测试一张图像来避免利用到底层统计信息。
在这里插入图片描述

作者使用六种数据集,选取三种组合起来训练,进行分类,依旧是很高的准确率,就算包括全部六种,准确率也达69.2%

使用AlexNet,VGG,ResNet,ViT,ConvNeXt来测试YCD(YFCC、CC和DataComp)分类数据集任务,准确率都很高,每张图像1MB大小;说明无论神经网络架构怎么变化,都擅长去寻找数据集的偏差,捕获数据集偏差的能力可能是深度神经网络固有的,而不是由特定组件赋予的
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

使用ConvNeXt不同变体不同参数大小进行测试,准确率都非常高,最小的体积仅为7K时,精度都达到72.4%。

数据集分类可以在没有大量参数的情况下完成,参数大这个性质通常被认为是深度学习在传统视觉识别任务中取得成功的原因;
在这里插入图片描述

这种任务还没有发现过拟合,训练数据数量越多准确率越大,所以作者认为存在一种模式帮助模型来分类数据集,并且也说明模型学习某些语义模式去推广未见过的数据,而不是记忆和过度拟合训练数据。
在这里插入图片描述

数据增强有利于数据集分类的准确性,是另一个角度的增加数据量,也就回到了之前讨论的数据越多分类越好的特点;数据增强的复杂性会提高模型记忆训练图像的难度,但是对于数据集分类任务则更加容易,说明模型并不通过记忆实现分类,而是学习模式;
在这里插入图片描述

总结,神经网络总是能准确完成数据集分类任务,不管什么条件下。


分析

1、低级特征偏差

作者将一些图像进行损坏,如加噪声、模糊、高亮等,用于抑制低级的特征,模型虽然下降了分类准确率,但是还是试图解决数据集分类任务,而不是使用低级偏差(emm这点本人没有看明白,望其他大佬评论区讨论一下)
在这里插入图片描述

2、记忆或概括

作者做了一些伪数据集,这些伪数据集是从相同的数据集采样,任务逐渐难是模型无法收敛,表现为不稳定的、非递减的损失曲线。伪数据集分类任务训练的模型并没有推广到验证数据(从每个伪数据集中取出并采样)

3、自我监督学习

预训练了一个MAE,在ImageNet和YCD上准确率都很高,可以学习到更具判别性的特征

4、通过分类数据集学习特征

通过数据集分类学习到的特征明显不如通过专门的自监督学习方法学习到的特征;实验表明,神经网络模型发现的数据集偏差与对图像分类有用的语义特征相关。


用户研究

作者还让真人进行任务测试,用于与模型效果进行比对(都是行业内的专业人士,可能是人情+马内?),要求每个用户对100张与提供给他们的训练集不重叠的验证图像进行分类,不限制每个图像或整个测试所允许花费的时间;

20个用户中有11个用户的准确率在40%-45%之间,有7个用户的准确率在45%-50%之间,只有2个用户的准确率超过50%。平均值为45.4%,中位数为44%。人类的表现高于机会水平的猜测(33.3%),这表明存在人类可以发现的模式来区分这些数据集,然而人类的表现远低于神经网络的84.7%。

大部分测试人员都觉得这个任务很难,作者还通过他们自己对于不同数据集特点的描述进行概括,做了一些简单的分析(只懂了作者是想通过人来猜测神经网络所挖掘的潜在模式,其他更深层次的没看懂)


总结

总结很简洁,表述了作者对于数据集偏差的猜想:神经网络善于捕捉这种偏差,并且这种偏差还无法具体分析到,人类也很难自身注意;并呼吁更多的人在这方面研究下去,相当于开了个新坑了,就看大佬们对这个感不感兴趣了,个人认为这种是更为宏观,有助于构建AI学习世界的方向,换句话来说,需要资源更多天赋更牛逼的大佬进行深挖,其他大佬可能不太感兴趣。


最后说几句话:这篇论文阅读花了很多时间,笔记也十分的冗长,太久没做笔记了,有点生疏,后续会改变阅读和记录方法。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

组合000

题目链接 组合 题目描述 注意点 1 < n < 201 < k < n可以按 任何顺序 返回答案 解答思路 使用深度优先遍历根据传入的深度depth寻找相应的组合。因为组合中的元素不能重复&#xff0c;从小到大选择元素&#xff0c;在深度优先遍历时&#xff0c;根据上一次进入…

堆(数据结构)

堆的概念及结构 如果有一个关键码的集合K { &#xff0c; &#xff0c; &#xff0c;…&#xff0c; }&#xff0c;把它的所有元素按完全二叉树的顺序存储方式存储在一个一维数组中&#xff0c;并满足&#xff1a; < 且 < ( > 且 > ) i 0&#xff0c;1&#xff…

深入解析分布式限流

一、概述 1.1 主要解决的问题 访问请求流量远远大于服务器的负载&#xff0c;致使服务器宕机&#xff0c;导致整个服务的不可用&#xff1b;- 限流当前服务调用其他服务&#xff0c;其他服务不可用&#xff0c;导致当前服务的调用一直超时&#xff0c;进而当前服务的线程资源耗…

3D产品配置器有哪些实际的商业应用场景?

3D产品配置器在商业领域有着广泛的应用场景&#xff0c;它们不仅能够提升客户体验&#xff0c;还能帮助企业优化内部流程和加速产品开发。以下是一些具体的商业应用实例&#xff1a; 1、在线定制和销售&#xff1a;3D产品配置器允许客户在购买前根据自己的喜好定制产品&#x…

Vue.js+SpringBoot开发企业项目合同信息系统

目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块2.1 数据中心模块2.2 合同审批模块2.3 合同签订模块2.4 合同预警模块2.5 数据可视化模块 三、系统设计3.1 用例设计3.2 数据库设计3.2.1 合同审批表3.2.2 合同签订表3.2.3 合同预警表 四、系统展示五、核心代码5.1 查询合同…

【JAVA快速编写UI】 Java 编写一个编码转换和加解密工具,可以创建一个简单的 GUI 应用程序(例子)

EncodingDecodingTool/ ├── src/ │ ├── main/ │ │ ├── java/ │ │ │ └── com/ │ │ │ └── rockmelodies/ │ │ │ └── encodingdecodingtool/ │ │ │ ├── MainApp.java │ │ │ …

Linux安装Mysql5.7数据库

一、前置条件 系统版本&#xff1a;Linux CentOS 7.5 MySQL版本&#xff1a;mysql5.7.31 二、操作步骤 2.1、关闭mysql服务 service mysqld stop 提示使用命令&#xff1a;systemctl stop mysqld.service 2.2、grep查找已安装的mysql服务 rpm -qa | grep -i mysql 2.3、卸载…

51单片机LED8*8点阵显示坤坤跳舞打篮球画面

我们作为一名合格的 ikun&#xff0c;专业的小黑子&#xff0c;这个重要的知识必须学会。 先看效果&#xff1a; 51LED点阵_鸡你太美 这里我们首先要用到延时函数Delay&#xff1a; void Delay(unsigned int xms) {unsigned char i, j;while(xms--){ i 2;j 239;do{while (-…

国内用户如何注册WhatsApp商业账号?

国内用户如何注册WhatsApp商业账号&#xff1f; 国内的用户&#xff0c;如果想注册WhatsApp商业账号&#xff0c;一种是直接通过Meta官方进行申请注册&#xff0c;然后进行企业认证。另外一种是通过 WhatsApp 官方授权的商业解决方案提供商来申请、注册账号&#xff0c;比如牛…

Java数组的概念及使用

在讲数组之前&#xff0c;先看一个案例。假设下图为学生考试成绩图&#xff0c;如果想要存储该学生的考试成绩&#xff0c;是不是可以定义一个变量进行存储&#xff1f;变量的定义及使用的&#xff0c;可参考链接进行学习。java变量是什么&#xff1f;怎么定义的&#xff1f;有…

MateBook 14s 2023款 集显 触屏(HKFG-16)原厂Win11系统

HUAWEI华为MateBook14s笔记本电脑2023款原装Windows11&#xff0c;恢复出厂开箱状态系统下载 适用型号&#xff1a;HKFG-XX、HKFG-16、HKFG-32 链接&#xff1a;https://pan.baidu.com/s/1GBPLwucRiIup539Ms2ue0w?pwdfm41 提取码&#xff1a;fm41 原厂系统自带所有驱动、…

Nodejs 第五十八章(大文件上传)

在现代网站中&#xff0c;越来越多的个性化图片&#xff0c;视频&#xff0c;去展示&#xff0c;因此我们的网站一般都会支持文件上传。 文件上传的方案 大文件上传&#xff1a;将大文件切分成较小的片段&#xff08;通常称为分片或块&#xff09;&#xff0c;然后逐个上传这…

C语言技能数(知识点汇总)

C语言技能数&#xff08;知识点汇总&#xff09; C 语言概述特点不足之处 标准编程机制 数据类型变量数据类型字符类型整数类型符号位二进制的原码、反码和补码 浮点类型布尔类型 常量字面常量const 修饰的常变量#define定义的标识符常量枚举常量 sizeofsizeof(结构体)不要对 v…

React——开发者工具

浏览器插件&#xff1a;谷歌浏览器插件react-devtools 方式1&#xff1a;chrome应用商店添加 方式2&#xff1a;下载安装包放在浏览器上

打靶记录(个人学习笔记)

一、信息收集 1、主机发现 通过nmap对此网段进行扫描&#xff0c;可以确定靶机ip为192.168.189.144 2、端口扫描 确定了靶机ip之后&#xff0c;我们来扫描端口 发现80端口开放&#xff0c;先访问80端口 用插件识别出一些信息 Wappalyzer插件获得信息&#xff1a;Web服务&am…

ThingsBoard Edge 设备控制

文章目录 一、RPC 功能1.服务端 RPC2.客户端 RPC3.MQTT RPC API3.1.服务端RPC3.2.客户端RPC 二、设备控制1.环境准备2.创建设备3.服务端PRC3.1.RPC消息主题3.2.程序源码3.3.创建仪表板3.4.边缘分配仪表板3.5.测试 4.客户端RPC4.1.RPC消息主题4.2.程序源码4.3.规则链4.4.测试 Th…

【Git】error: bad signature 0xb86f1e1 和 bfatal: index file corrupt

一、问题 之前都好好的&#xff0c;今天执行 git add .的时候突然报错 报错原因翻译成中文&#xff1a;索引文件损坏 二、解决方法 方法1&#xff1a; 删除.git隐藏文件夹中的index文件 然后执行 git reset 重新生成index文件 git reset 方法2&#xff1a; 重新从远程克隆…

xinference - 大模型分布式推理框架

文章目录 关于 xinference使用1、启动 xinference设置其他参数 2、加载模型3、模型交互 其它报错处理 - transformer.wte.weight 关于 xinference Xorbits Inference&#xff08;Xinference&#xff09;是一个性能强大且功能全面的分布式推理框架。 可用于大语言模型&#xff…

TIMESNET: TEMPORAL 2D-VARIATION MODELINGFOR GENERAL TIME SERIES ANALYSIS

本文整理至https://zhuanlan.zhihu.com/p/606575441这里是清华大学软件学院机器学习组官方公众号(THUML-LAB)&#xff0c;欢迎关注我们&#xff0c;获取最新资讯&#xff01; 本文介绍本组ICLR2023时间序列分析方向的最新工作&#xff1a;TimesNet: Temporal 2D-Variation Mode…

Linux/Ubuntu/Debian从控制台启动程序隐藏终端窗口

如果你想从终端运行应用程序但隐藏终端窗口. 你可以这样做&#xff1a; 在后台运行&#xff1a; 你只需在命令末尾添加一个与号 (&) 即可在后台运行它。 例如&#xff1a; your_command &将 your_command 替换为你要运行的命令。 这将在后台启动该命令&#xff0c…