首页 > 其他分享 >基础模型自监督预训练的数据之谜:大量数据究竟是福还是祸?

基础模型自监督预训练的数据之谜:大量数据究竟是福还是祸?

时间:2023-07-24 19:34:16浏览次数:68  
标签:训练 模型 MoCE MAE 图像 数据 之谜

前言 在自监督预训练中,是否数据越多越好?数据增广是否始终有效?

本文转载自PaperWeekly

作者 | 诺亚方舟实验室

仅用于学术分享,若侵权请联系删除

欢迎关注公众号CV技术指南,专注于计算机视觉的技术总结、最新技术跟踪、经典论文解读、CV招聘信息。

CV各大方向专栏与各个部署框架最全教程整理

【CV技术指南】CV全栈指导班、基础入门班、论文指导班 全面上线!!

大型语言模型如 ChatGPT 的成功彰显了海量数据在捕捉语言模式和知识方面的巨大潜力,这也推动了基于大量数据的视觉模型研究。在计算视觉领域,标注数据通常难以获取,自监督学习成为预训练的主流方法。然而,在自监督预训练中,是否数据越多越好?数据增广是否始终有效?华为诺亚方舟实验室与香港科技大学的研究团队近期发现:主流自监督预训练方法如 Masked Autoencoder (MAE) 存在负迁移现象,即在预训练过程中包含无关数据可能导致下游任务性能下降。面向 MAE 的有效数据增强策略仍有待探讨。区别于对比学习高度依赖数据增强策略,在 MAE 中采用数据增强策略,如简单的图像混合,可能会导致互信息 (MI) 的增加而降低模型性能。为解开这些数据之谜,研究团队提出了一种新颖的预训练范式——Mixture of Cluster-conditional Experts (MoCE)。借鉴 Mixture-of-Experts (MoE) 的概念,MoCE 可以通过一次预训练,为不同下游任务提供定制化模型。在多个下游任务中,包括图像分类、目标检测和分割等,MoCE 超越了传统的 MAE 预训练方法。该研究成果已被 ICLR 2023 会议接收为 Spotlight 论文。

论文标题: Task-customized Masked Autoencoder via Mixture of Cluster-conditional Experts

论文链接:

https://openreview.net/forum?id=j8IiQUM33s

此外,团队还提出了一种名为混合自编码器 (MixedAE) 的简单而有效的方法,将图像混合应用于 MAE 数据增强。MixedAE 在各种下游任务(包括图像分类、语义分割和目标检测)上实现了最先进的迁移性能,同时保持了显著的效率。这是第一个从任务设计的角度将图像混合作为有效数据增强策略应用于基于纯自编码器结构的 Masked Image Modeling (MIM) 的研究。该工作已被 CVPR 2023 会议接收。

论文标题: Mixed Autoencoder for Self-supervised Visual Representation Learning

论文链接:

https://arxiv.org/abs/2303.17152

研究背景

在机器学习领域,预训练模型已经成为一种流行的方法,可以提高各种下游任务的性能。然而,研究发现,自监督预训练存在的负迁移现象。诺亚 AI 基础理论团队的前期工作 SDR (AAAI 2022) [1] 首次指出自监督预训练的负迁移问题,并提供初步解决方案。具体来说,负迁移是指在预训练过程中使用的数据与下游任务的数据分布不同,导致预训练模型在下游任务上的性能下降。在自监督学习中,模型在无标签数据上进行预训练,学习数据的潜在特征和表示。然而,当预训练数据与下游任务的数据分布存在显著差异时,模型可能学到与下游任务无关或甚至有害的特征。

相关工作1. 自监督预训练的负迁移现象

▲ 图一:我们用ImageNet的两个子集,Split-A和Split-B,训练两个MAE模型,和全量数据集训练的模型相比较,后者仅在2个数据集上达到了最优。这说明,增大数据量并不总是带来更强的迁移效果。

以目前较为流行的自监督学习算法 MAE 为例,我们评估了使用不同语义数据进行预训练的 MAE 模型在迁移性能上的表现。我们将 ImageNet 数据集分为两个不相交的子集 Split-A 和 Split-B,根据 WordNet 树中标签的语义差异进行划分。Split-A 主要包含无生命物体(如汽车和飞机),而 Split-B 则主要涉及有机体(如植物和动物)。接着,我们在 Split-A、Split-B 和完整的 ImageNet 数据集上分别进行了 MAE 预训练,并在 11 个下游任务上评估了这三个模型的性能。如图一所示,在仅含 2 个语义丰富数据集(Caltech,VOC)的情况下,基于完整 ImageNet 训练的 MAE 获得了最佳的迁移效果;在非生物下游数据集 (Aircraft,Cars,SUN,DTD) 上,Split-A 的表现更佳;而在包含 Flowers,Food,Pets,CIFAR10,CIFAR100 等数据集上,Split-B 的表现更优。这表明,当下游任务与预训练数据分布不同时,与任务无关的预训练信息可能导致负迁移,从而限制了 MAE 模型的可扩展性。换言之,若一个 MAE 模型的预训练数据去除了与下游任务数据集相似度较低的部分,则其性能可能优于包含这些无关数据的预训练模型。这突显了开发针对特定下游任务的定制化预训练方法以避免负迁移现象的重要性。2. 自监督数据增强难题在自监督预训练中,与依赖数据增强的对比学习不同,我们发现传统数据增强手段可能会削弱 MAE 的模型性能。以图像混合增强(Image Mixing)为例,设随机变量 X1 和 X2 表示两个输入图像,M 表示随机生成的掩码,我们可以证明混合输入 σmix({X1,X2},M) 与重构目标 X1 之间的互信息 (MI) 不小于 MAE 输入 σmae(X1,M) 与 X1 之间的互信息(详见论文附录)。

因此,简单的图像混合增强会提升模型输入与重构目标之间的互信息。尽管这对监督学习和对比学习有益,但它却简化了 MAE 的图像重构任务,因为掩码操作 (masking) 的根本目的恰恰是降低模型输入和重构目标之间的互信息,以减少图像信号的冗余。这表明以 MAE 为代表的掩码图像建模对数据增强具有与传统判别式训练范式不同的偏好,进而带来了 MAE 自监督学习中的数据增强难题。

 

方法1. MoCEMixture of Cluster-conditional Expert (MoCE) 通过数据聚类和显式地使用具有相似语义的图像来训练每个专家,以实现针对特定任务的定制自监督预训练。MoCE 的过程分为三个阶段,具体如下:1. 首先,我们使用预先训练好的 MAE 模型对整个数据集进行聚类。每张图片被分到不同的聚类中,并记录每个聚类的中心点,形成矩阵 C。2. 然后,受 Mixture-of-Experts (MoE) 多专家模型的启发,我们构建了基于聚类先验的 MoCE 模型。与目前常用的视觉多专家模型将每个图像的 token 路由到某个专家不同,MoCE 让每个专家负责训练一组相似的聚类图片,使得每个专家在不同语义数据上得到显式训练。具体来说,现有的视觉多专家模型基于 ViT 构建,将原先某些 Transformer Block 中的单个 MLP 层扩展为多个 MLP 层,每个 MLP 被称作一个专家 (expert)。同时引入一个门控网络 (gate network),该门控网络决定每个 token 应该去往哪个专家。MoCE 多专家层的核心改变是门控网络的输入:

这里,C[x] 表示 token x 所属图片所在的聚类中心(我们在第一步已经完成了聚类),而不是原先的 token 嵌入。这样,属于同一个聚类的图片的 tokens 都会被路由到同一个专家,从而显式地区分每个专家在语义上的差异。为了稳定训练并增强门控网络的置信度,我们提出了两个额外的正则化损失,并在实验中发现了它们的有效性。3. 当下游任务到达时,我们引入了一个搜索模块来选择最适合用于迁移学习的专家。具体而言,我们重复利用第一步提到的聚类模块,找到与下游数据集最相似的聚类,然后找到该聚类所训练的专家,将其单独提取出来,舍弃其他专家进行迁移。这样,在下游任务中,我们始终使用一个正常大小的 ViT 模型。2. MixedAEMixed Autoencoder (MixedAE) 提出辅助代理任务——同源识别 (Homologous recognition),旨在显示要求每个图像块识别混合图像中的同源图像块以缓解图像混合所导致的互信息上升,从而实现物体感知的自监督预训练。MixedAE 的过程分为三个阶段,具体如下:1. 混合阶段:在给定混合系数 r 的情况下,将输入图像随机划分为不同的图像组,并根据 r 对每个图像组进行随机混合,生成混合图像。2. 识别阶段:鉴于 Vision Transformer 中全局自注意力的使用,在重构过程中,各个图像块不可避免地与来自其他图像的异源图像块发生交互,从而导致互信息的上升。因此我们提出同源自注意力机制 (Homologous attention),通过部署一个简单的 TopK 采样操作,要求每个图像块显示识别并仅与同源图像块做自注意力计算,以抑制互信息的上升。

3. 验证阶段:为了验证同源自注意力的准确性,我们提出同源对比损失 (Homologous contrasitve)。对于任意查询图像块 (query patch),我们将其同源图像块视为正样本,异源图像块作为负样本,以促进同源图像块特征的相似度,从而显示要求图像块识别并仅和同源图像块做自注意力计算。最后,同源对比损失将和原始图像重构损失一起以多任务形式优化网络参数进行自监督预训练。

 

实验分析

1. MoCE

我们在之前提到的 11 个下游分类数据集和检测分割任务上做了实验。实验结果表明,MoCE 在多个下游任务中的性能超过了传统的 MAE 预训练方法。具体而言,在图像分类任务中,MoCE 相较于 MAE 实现了更高的准确率。在目标检测和分割任务中,MoCE 也取得了更好的表现,包括更高的 mIoU 和 AP 指标。这些实验结果表明,MoCE 通过利用相似语义图像进行聚类并为每个专家进行任务定制的自监督预训练,能够在各种下游任务中提高迁移性能。

▲ 表一:MoCE在细粒度数据集上有较大提升,在类别比较宽泛的任务上也有少量提升。2. MixedAE

在 14 个下游视觉任务(包括图像分类、语义分割和物体检测)的评估中,MixedAE 展现了最优的迁移性能和卓越的计算效率。相较于 iBOT,MixedAE 实现了约 2 倍预训练加速。得益于图像混合所带来的物体感知预训练,MixedAE 在下游密集预测任务上取得更显著的性能提升。注意力图可视化结果表明,MixedAE 能比 MAE 更准确完整地识别图像前景物体,从而实现优异的密集预测迁移性能。

▲ 表二:MixedAE在不同训练代价下均获得当前最优结果,展现了卓越的计算效率。 ▲ 图二:注意力图可视化。得益于ImageNet的单实例假设[2]以及物体感知的自监督预训练,MixedAE可以更准确完整地发现图像前景物体,从而实现更好的密集预测迁移性能。

 

作者介绍结合 MoCE 和 MixedAE 的研究发现,我们揭示了自监督预训练中数据之谜:数据量不再是唯一关键因素,而是如何利用数据和进行定制化预训练和数据增广更为关键。MoCE 通过数据聚类和专家定制训练,显著提高了针对特定下游任务的迁移性能。MixedAE 则通过一种简单有效的图像混合方法,实现了在各种下游任务中的最先进迁移性能。这些研究发现不仅为自监督预训练领域提供了新的视角,还为开发更为高效、可扩展和定制化的预训练方法提供了指导和启示。我们希望这些探索是一个有效利用更多数据量的途径,并为研究者们提供新的思路。

* 本文由 GPT-4 撰写初稿并润色。

 

参考文献

[1] Task-customized Self-supervised Pre-training with Scalable Dynamic Routing, AAAI 2022.

[2] MultiSiam: Self-supervised Multi-instance Siamese Representation Learning for Autonomous Driving, ICCV 2021.

 

欢迎关注公众号CV技术指南,专注于计算机视觉的技术总结、最新技术跟踪、经典论文解读、CV招聘信息。

计算机视觉入门1v3辅导班

【技术文档】《从零搭建pytorch模型教程》122页PDF下载

QQ交流群:470899183。群内有大佬负责解答大家的日常学习、科研、代码问题。

其它文章

CV的未来发展方向?平时最喜欢逛的几个地方

训练网络loss出现Nan解决办法

比Meta「分割一切AI」更全能!港科大版图像分割AI来了:实现更强粒度和语义功能

Segment Anything项目整理汇总

Meta Segment Anything会让CV没前途吗?

CVPR'2023年AQTC挑战赛第一名解决方案:以功能-交互为中心的时空视觉语言对齐方法

6万字!30个方向130篇 | CVPR 2023 最全 AIGC 论文汇总

知识蒸馏最新进展

ICCV2023 | 当尺度感知调制遇上Transformer,会碰撞出怎样的火花?

CVPR 2023 | 完全无监督的视频物体分割 RCF

新加坡国立大学提出最新优化器:CAME,大模型训练成本降低近一半!

SegNetr来啦 | 超越UNeXit/U-Net/U-Net++/SegNet,精度更高模型更小的UNet家族

ReID专栏(二)多尺度设计与应用

ReID专栏(一) 任务与数据集概述

libtorch教程(三)简单模型搭建

libtorch教程(二)张量的常规操作

libtorch教程(一)开发环境搭建:VS+libtorch和Qt+libtorch

NeRF与三维重建专栏(三)nerf_pl源码部分解读与colmap、cuda算子使用

NeRF与三维重建专栏(二)NeRF原文解读与体渲染物理模型

NeRF与三维重建专栏(一)领域背景、难点与数据集介绍

异常检测专栏(三)传统的异常检测算法——上

异常检测专栏(二):评价指标及常用数据集

异常检测专栏(一)异常检测概述

BEV专栏(二)从BEVFormer看BEV流程(下篇)

BEV专栏(一)从BEVFormer深入探究BEV流程(上篇)

可见光遥感图像目标检测(三)文字场景检测之Arbitrary

可见光遥感目标检测(二)主要难点与研究方法概述

可见光遥感目标检测(一)任务概要介绍

TensorRT教程(三)TensorRT的安装教程

TensorRT教程(二)TensorRT进阶介绍

TensorRT教程(一)初次介绍TensorRT

AI最全资料汇总 | 基础入门、技术前沿、工业应用、部署框架、实战教程学习

计算机视觉入门1v3辅导班

计算机视觉交流群

聊聊计算机视觉入门

标签:训练,模型,MoCE,MAE,图像,数据,之谜
From: https://www.cnblogs.com/wxkang/p/17578112.html

相关文章

  • OLAP系列之分析型数据库clickhouse备份方式(五)
    一、常见备份方式1.1备份方式备份方式特点物理文件备份对物理文件进行拷贝,备份期间禁止数据写入dump数据导入导出备份方式灵活,但备份速度慢快照表备份制作_bak表进行备份FREEZE备份表(分区表、非分区表)分区备份,可通过attach进行装载恢复FETCH备份......
  • (数据科学学习手札153)基于martin的高性能矢量切片地图服务构建
    本文示例代码已上传至我的Github仓库https://github.com/CNFeffery/DataScienceStudyNotes1简介大家好我是费老师,在日常研发地图类应用的场景中,为了在地图上快速加载大量的矢量要素,且方便快捷的在前端处理矢量的样式,且矢量数据可以携带对应的若干属性字段,目前主流的做法......
  • ImageNet-1K压缩20倍,Top-1精度首超60%:大规模数据集蒸馏转折点
    前言 该工作是目前唯一实现了大规模高分辨率数据集蒸馏的框架。本文转载自机器之心仅用于学术分享,若侵权请联系删除欢迎关注公众号CV技术指南,专注于计算机视觉的技术总结、最新技术跟踪、经典论文解读、CV招聘信息。CV各大方向专栏与各个部署框架最全教程整理【CV技术指南】......
  • OLAP系列之分析型数据库clickhouse主从副本模式(三)
    一、测试单分片,单副本或多副本模式#1.停止集群systemctlstopclickhouse-server#修改配置文件vim/etc/clickhouse-server/config.d/metrika.xml<remote_servers><clickhouse_cluster_3shards_1replicas><!--1个分片,1个副本--><sh......
  • hive表数据导出
      第二种,是放到了本地的不是放在HFDS里的......
  • openpyxl-数据排序,过滤器
    过滤器,数据排序fromopenpyxlimportWorkbookwb=Workbook()sheet=wb.activedata=[['Item','Colour'],['pen','brown'],['book','black'],['plate','white'],[�......
  • JavaScript数据结构和算法简述——数组
    为什么先讲数组数据结构可以简单的被分为线性结构和非线性结构。线性结构大致包括:数组(连续存储);链表(离散存储);栈(线性结构常见应用,由链表或数组增删和改进功能实现);队列(线性结构常见应用,由链表或数组增删和改进功能实现);非线性结构大致包括:树;图;其中,数组是应用最广泛的数据存储结构。它被......
  • javascript基本数据类型与值类型引用类型说明
    DEMO:http://sources.ikeepstudying.com/jsdata/ 摘要:本文主要讲了javascript中的基本数据类型,以及值类型和引用类型的区别与使用一、基本数据类型在javascript中申明变量使用的关键字都是var,这点与其他的编程语言不尽相同,但是javascript亦含有五种基本的数据类型(也可以说是简......
  • session 数据库引擎
     如果将setting中的session引擎配置为dbsessionapp的migtaions文件夹中已经包含makemigration数据只需要执行pythonmanage.pymigrate命令这时便会自动创建django_session1的表......
  • Blazor学习之旅(5)数据绑定
    大家好,我是Edison。本篇,我们来了解下在Blazor中数据是如何绑定的。关于数据绑定如果希望HTML元素显示值,可以编写代码来更改显示内容。如果值发生更改,则需要编写额外的代码以更新显示内容。在Blazor中,可以使用数据绑定将HTML元素连接到字段、属性或表达式。这样,当值发生......