多模态自监督学习 + 下游任务介绍

news2025/1/18 10:50:36

自监督学习

意义

经过海量无标签数据的学习后可以习得一个强大的特征提取器,在面对新的任务,尤其是医疗影像等小样本任务时,也能提取到较好的特征。

常见用途

相对位置预测:预测一张图像中随机选择的两个图像块之间的相对位置

图像修复:预测一张图像中被遮挡的部分拼图游戏:将图像中打乱的9个图像块复原

旋转角度预测:预测图像中物体的旋转角度

图像着色: Lab图像中利用L亮度通道,预测ab色彩通道

跨通道预测: L通道和ab通道相互预测
计数:预测鼻子、眼睛、爪子、头的数量

实例区分:分类,一张图像和其增强的图像为一类,和其他图像为不同类

对比预测编码: 根据“过去的”信息,预测“未来的”信息

基于对比学习的视觉自监督算法

概念

对比学习的概念很早就有了,它是无监督学习的一种方法。没有监督信息,又不需要重构数据,那如何学习呢? -- 数据增强+互信息

其核心是通过计算样本表示间的距离,拉近正样本,拉远负样本。也就是说,当我们能够区分该样本的正负例时,得到的表示就够用了

 公式

1. 采样N个图片,用不同的数据增强方法为每个图片生成两个view

2. 分别将他们输入网络,获得编码表示y和y'
3. 对上下两批表示两两计算cosine,得到NxN的矩阵,每一行的对角线位置代表y和y’ 的相似度, 其余代表y和N-1个负例的相似度。对每一行做softmax分类,采用交叉熵损失作为loss,就得到对比学习的损失了

其中 t \ tau t 是可调节的系数,点乘后的结果的量级不适合 softmax运算,通过一个 t \tau t 系数控制

 实现方式

end-to-end 

使用当前batch中的样本作为dictionary

缺点:受限于GPU,batch不可能太大dictionary也就大不了 

memory bank 存储队列

设立memory bank,把之前编码好的样本存储起来

 

存储好的编码都是之前的编码器计算的,而 左侧编码器一直在更新.会有两侧不一致的情况,影响目标优化

MoCo

Moco解决了上述方法的劣势

 

损失函数

假设其中有一个 positive样本 k+ ,其余均是 negative 样本,则根据 nfoNCE 的损失,损失表示为:

其中 q 和 k+ 可以有多种构造方式。本文用了一种较为简单的方式:

  (1) 一种图片进行 random resize;

(2)进行两次224*224的随机Crop得到两个图像分别作为 q 和 k+ ;

(3)进行增强操作,包括 random color jttering, random horizontal fliprandom grayscale conversion 等

用途

因为对比学习是看是否相似,所以可以用于检索,图搜图

基于mask的视觉自监督算法

随着 Vision Transformer (ViT) 在 2021 年霸榜各大数据集,如何基于 ViT 构建更加合适的自监督学习范式成为了该领域的一大问题。最初,DINO 和 MoCo v3 尝试将对比学习和 ViT相结合,取得了不错的效果。不过长期以来,由于 CV 和 NLP 领域数据和基础模型之间的差异NLP 的 Masked Language Modeling (MLM) 码模式机制没能成功应用于 CV 领域,但最近 ViT的逢勃发展,为掩码学习机制应用于视觉自监督打开了一扇大门。

实现方式

BEIT

受BERT的启发,作者提出了一个预训练任务,即 masked image modeling (MIM)MIM对每个图像使用两个视图,即图像patch和视觉token。作者将图像分割成一个网格的patches,这些patch是主于Transformer的输入表示。此外,作者将图像“tokenize”为离散视觉token,这是通过离散VAE的潜在代码获得的。在预训练期间作者随机mask部分图像patch,并将损坏的输入到Transformer。该模型学习恢复原始图像的视觉token,而不是mask patch的原始像素。

 图像有两个表示视图,即图像patch 和视觉token 。这两种类型分别作为预训练的输入和输出表示。

Visual Token

目的:得到监督信号

通过离散变分自编码器 (DVAE)学习image tokenizer。在视觉token学习过程中,有两个模块,即tokenizer 和解码器 。tokenizer据视觉码本(即词汇表)将图像像素x映射为离散的tokens z。解码器学习基于token z重建输入图像x。重建目标可以写成。由于潜在的视觉token是离散的,模型训练是不可微的。因此,作者采用Gumbel-softmax用来训练模型。此外,在dVAE训练过程中,在tokenizer上加入一个统一的先验。
作者将每个图像标记为14X14的视觉token grid。词汇表大小设置为8192。

Image Patch

2D图像被分割成一系列patch,以便标准Transformer可以直接接受图像数据。形式上,作者reshape图片H*W*C为个(H*W)/(P*P)个patch,其中C是通道数,(H,W) 是输入图像分辨率, (P,P) 是每个patch的分辨率。图像patch被展平成向量并线性投影,这类似于BERT中的单词嵌入。图像块保留原始像素,并在BEIT中用作输入特征。
在本文的实验中,作者将每幅224X 224的图像分割成一个14X14的图像网格,其中每个图像网格的大小为16X16。

下游任务

跨模态检索

任务: 给定文本或者图像任一模态的query,在其他模态的gallery中检索最相似的匹配结果

应用:电商商品检索 (以文搜图)

实现

Matching Function Learning,对应单塔结构中的ITM。

Representation Learning,对应双塔中的对比学习+余弦相似度

左侧跨模态相似性度量方法的主要思路是将图文特征进行融合,再经过隐层,目标是让隐层学习出可以度量跨模态相似度的函数。
右侧为公共空间特征学习方法,一般称为双塔结构是将图像和文本隐射到一个公共空间中得到分别得到多模态表示即最后一层的表示,从而可以直接使用cosine计算相似度,图像和文本相互独立没有交互,希冀于学习到一个优秀的表示就可以进行相似度度量。

研究热点和思路

其实主要做项目,研究做的少

1.针对某个特定领域提出一个新的跨模态检索数据集,如电商领域,遥感领域等,提供benchmark;
2. 跨模态信息对齐,如何引入合适的监督信号;
3. 跨模态信息如何更好的交互,如何把单塔和双塔结合 :
4. 跨模态检索难样本挖掘:

zeroshot分类

将类别标签通过一种prompt处理转换成一个text描述,然后计算图片与每个类别标签映射成的text之间的相似度,取相似度最高的作为分类标签

应用:类别属于开集(openset) 的分类任务

实现

将类别标签通过一种prompt处理转换成一个text描述

然后计算图片与每个类别标签映射成的text之间的相似度,取相似度最高的作为分类标签
dog  -> A photo of a dog

**提词器的设计也需要花费大量时间来调整,因为微小的措辞变化可能会对性能产生巨大影响(例如下图a,在“a photo of [CLASS]”中的[CLASS]前加个“a”直接涨了将近6个点?! !)

 如何设计合适的prompt;
https://arxiv.org/abs/2109.01134

Image Captaining

任务: Encoder: 图片输入到Encoder中,得到视觉Features,Encoder可以采用CNN或Transformer; 视觉特征经过Decoder,解码成一个words序列,Decoder可以采用LSTM或者Transformer

Encoder: 图片输入到Encoder中,得到视觉Features,Encoder可以采用CNN或Transformer。
Decoder:视觉特征经过Decoder,解码成一个words序列,Decoder可以采用LSTM或者Transformer。

实现

 我们将所有输入作为序列传递给LSTM,序列如下所示:

1.首先从图像中提取特征向量

2.然后是一个单词,下一个单词等。

1)经过CNN进行卷积提取图片特征信息最终形成图片的特征图信息
2)attention对提取的特征图进行加强与抑制作为后续进入LSTM模型的输入数据,不同时刻的attention数据会受到上一时刻LSTM模型输出数据而有所调整
3)LSTM模型最终输出文本信息

 **encoder阶段,文中使用的是CNN(卷积神经网络),用于提取特征图向量

 为了得到特征向量与图片具体位置的对应,作者从浅层的卷积核中提取了特征而非全连接层,通过输入a aa的子集,这使得decoder能够选择性地专注于图片的某个部分

Decoder阶段:使用LSTM作为decoder,每一步生成一个词

缺点:

效率低

对于长时间的建模能力比较弱

研究热点和思路

1) 针对某个特定领域提出一个新的ImageCaptioning数据集,如电商领域(商品描述自动生成),遥感领域等,提供benchmark;
2) 设计更鲁棒的模型结构,主要是基于Transformer;
3) 语义对齐;

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

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

相关文章

项目管理的最佳选择:最简单的项目管理系统

作为一名项目经理,你是否曾经或正面临过这些麻烦:你一上班就开始了解项目计划的完成情况和工作进展情况。在检查和填补工作空白的同时,你必须面对各种报告和清单。仅仅找到各种材料和文件就需要很多时间。不仅如此,我们还需要出身…

git拉取项目报错:fatal: remote error: Service not enabled

一般是git地址错误,如果是原本就有的项目,看看是不是代码库移动到其他地方了,这个库已经被删除了

辐射定标高精度积分球均匀光源

近一二十年,在环境科学、太阳物理、大气物理、气候学及气象学等研究的推动下,高精度太阳/大气定量光谱遥感技术发展十分迅速。空间定量光谱遥感数据的获取精度很大程度上取决于遥感仪器的定标精度。所谓遥感仪器定标,即指建立仪器输出电信号与…

ADS仿真低噪声放大器学习笔记

ADS仿真低噪声放大器 设计要求&#xff1a; 工作频率&#xff1a;2.4~2.5GHz ISM频段 噪声系数&#xff1a;NF < 0.7 增益&#xff1a;Gain > 15 输入驻波输出驻波&#xff1a;&#xff1c;1.5 这里重点是ADS操作流程 1. 安装晶体管的库文件 1、 下载ATF54143晶体管的…

mybatisPlus基础篇

文章目录 通用Mapper接口简单插入数据-insert简单删除数据-deleteById简单修改数据-updateById简单查询数据-selectById 通用service接口Service接口-插入数据Service接口-删除数据Service接口-修改数据Service接口-查询数据自定义接口方法自定义Mapper接口方法 通用Mapper接口…

milvus: 专为向量查询与检索设计的向量数据库

1. 什么是milvus&#xff1f; milvus docs milvus release Milvus的目标是&#xff1a;store, index, and manage massive embedding vectors generated by deep neural networks and other machine learning (ML) models. Milvus 向量数据库专为向量查询与检索设计&#xf…

vue项目开发环境和生产环境代理的配置问题

1.跨域 跨域解决方案&#xff1a; 1.JSONP 通过动态 script标签跨域 2.document.domain iframe跨域 3.location.hash iframe 4.window.name iframe跨域 5.postMessage 跨 window 通信 6.跨域资源共享&#xff08;CORS&#xff09; 7.nginx代理跨域 8.nodejs中间件代理跨域 9…

基于光子实验的指数级加速的量子同态加密理论

前言 量子计算机不仅有望在某些重要任务上超越经典计算机&#xff0c;而且还能保护计算的隐私。例如&#xff0c;盲量子计算协议支持安全委托量子计算&#xff0c;其中客户端可以保护其数据和算法的隐私&#xff0c;不受分配来运行计算的量子服务器的影响。然而&#xff0c;这…

NOI Linux 2.0 CSP奥赛复赛环境安装使用指南

新人旧人区别 以下是可能导致你在老版 NOI Linux 系统下形成的习惯在新版下翻车的改动。 移除了 GUIDE从 32bit 变为了 64bit 系统&#xff0c;需要注意指针现在占 8 字节而不是 4 字节更新了编译器版本默认情况下右键没了【新建文件】的选项桌面目录改为中文&#xff0c;可能…

【3519AV200】AI算法承载硬件平台_双目IMX334视频通道接入硬件方案开发

Hi3519AV200内置四核A55&#xff0c;提供高效且丰富和灵活的CPU资源&#xff0c;以满足客户计算和控制需求。集成单核MCU&#xff0c;以满足某些低延时要求较高场景。 Hi3519AV200集成了高效的神经网络推理单元&#xff0c;支持2.5Tops INT8 &#xff0c;并支持业界主流的神经网…

【监控系统】可视化工具Grafana简介及容器化部署实战

1.什么是Grafana 官网地址&#xff1a;https://grafana.com/ Grafana用Go语言开发的开源数据可视化工具&#xff0c;可以做数据监控和数据统计&#xff0c;带有告警功能。支持快速灵活的客户端图表&#xff0c;面板插件有许多不同方式的可视化指标和日志&#xff0c;官方库中…

【MySQL】索引与B+树

【MySQL】索引与B树 索引概念前导硬件软件方面 索引的理解单个page多个page引入B树B树的特征为什么B树做索引优于其他数据结构&#xff1f;聚簇索引与非聚簇索引辅助索引 索引的创建主键索引的创建和查看唯一键索引的创建和查看普通索引的创建和查看复合索引全文索引索引的其他…

2.java语法

文章目录 2.1. 字符型常量和字符串常量的区别?2.2. 关于注释&#xff1f;2.3. 标识符和关键字的区别是什么&#xff1f;2.4. Java 中有哪些常见的关键字&#xff1f; 2.5. 自增自减运算符2.6. continue、break、和 return 的区别是什么&#xff1f; 2.1. 字符型常量和字符串常…

Java编译器中的优化技术

一、JIT技术 Java中的热点代码主要有两类&#xff0c;包括&#xff1a;1、被多次调用的方法。 2、被多次执行的循环体。 前者很好理解&#xff0c;一个方法被调用得多了&#xff0c;方法体内代码执行的次数自然就多&#xff0c;它成为 “ 热点代 码 ” 是理所当然的。而后者则…

《零基础入门学习Python》第068讲:GUI的终极选择:Tkinter5

这节课的主要内容为 Listbox 组件、Scrollbar 组件 和 Scale 组件 在之前的学习中&#xff0c;我们已经知道了&#xff0c;如果说提供选项给客户选择&#xff0c;那么有两种情况&#xff0c;单选的话&#xff0c;我们用 Radiobutton&#xff0c;多选的话&#xff0c;用Checkb…

笔记本电源适配器使用时发烫会有安全隐患吗?

笔记本电源适配器&#xff08;充电器&#xff09; 笔记本充电器内部是一个很大的电感结构&#xff0c;因其工作原理会产生一部分热能&#xff0c;所以部分发热是正常的&#xff0c;即使发热也会一直保持一定的温度。同时&#xff0c;充电器外壳都是耐高温的不会烧坏&#xff…

【MySQL】索引是什么东东?

书中的目录&#xff0c;就是充当索引的角色&#xff0c;方便我们快速查找书中的内容&#xff0c;所以索引是以空间换时间的设计思想。 索引和数据位于存储引擎中&#xff0c;MySQL默认的存储引擎是InnoDB。 1 为什么MySQL采用B树作为索引&#xff1f; 1.1 其他数据结构为什么…

C语言每日一题:6.移除元素+合并两个有序数组。

第一题&#xff1a;移除元素 思路一&#xff1a; 一&#xff1a;暴力查找的方法&#xff1a; 1.找到对应val值的下标&#xff0c;返回数组的下标。 2.删除对应的下标&#xff0c;从前向后用后面覆盖前面。当后一个是数组最后一个数值是就赋值结束了&#xff08;注意数组越界的问…

【C++】开源:grpc远程过程调用(RPC)配置与使用

&#x1f60f;★,:.☆(&#xffe3;▽&#xffe3;)/$:.★ &#x1f60f; 这篇文章主要介绍grpc远程过程调用&#xff08;RPC&#xff09;配置与使用。 无专精则不能成&#xff0c;无涉猎则不能通。。——梁启超 欢迎来到我的博客&#xff0c;一起学习&#xff0c;共同进步。 喜…

TikTok广告数据不好?收下这份常见问题自查手册!

你是一位跨境卖家吗&#xff1f;你是否在TikTok上投放过广告&#xff1f; 如果你的答案是肯定的&#xff0c;那么你可能遇到过一些困扰。比如&#xff0c;你的广告为什么不起量&#xff1f;为什么突然掉量了&#xff1f;为什么成本上升了&#xff1f;到底是哪里出了问题&#…