【多模态】ALBEF-融合前对齐

 

目录

 🍁🍁背景

🌷🌷网络结构

🎅🎅损失函数

🌼🌼动量蒸馏

🌺🌺下游任务结果

📒📒Grad-CAM 特征可视化

🚦🚦代码

🎨1.预训练customdata

🎨2.图文检索

🎨3.VQA

🎨4.VE

🎨5.vg

🎨6.NLVR2

整理不易,欢迎一键三连!!!


出处:跟BLIP一样salesforce,同一个单位,准确来讲,先有ALBEF(2021),再有BLIP(2022)。

代码地址:code

论文地址:paper

官方博客:blog

 🍁🍁背景

        限制1:以  CLIP  和 code 为代表的方法学习单峰图像编码器和文本编码器,并在表示学习任务上取得了令人印象深刻的性能。然而,它们缺乏对图像和文本之间复杂交互进行建模的能力,因此它们不擅长需要细粒度图像文本理解的任务。

限制2:UNITER[4]代表的方法采用多模态编码器对图像和文本进行联合建模。然而,多模态转换器的输入包含未对齐的基于区域的图像特征和单词标记嵌入。由于视觉特征和文本特征驻留在各自的空间中,因此多模态编码器学习对它们的交互进行建模具有挑战性。此外,大多数方法使用预先训练的目标检测器进行图像特征提取,这既昂贵又计算昂贵。

        限制 3:用于预训练的数据集主要由从网络收集的噪声图像文本对组成。广泛使用的预训练目标,例如掩码语言模型(MLM),很容易过度拟合噪声文本,从而损害表示学习。

        为了解决这些限制,我们提出了 ALign BEfore Fuse ( ALBEF )

🌷🌷网络结构

        ALBEF 包含图像编码器(ViT-B/16)文本编码器(BERT 的前 6 层)多模态编码器(BERT 的后 6 层,带有额外的交叉注意力层)。我们通过联合优化以下三个目标来预训练 ALBEF:

        目标 1:图像-文本对比学习应用于单流图像编码器和文本编码器。它将图像特征和文本特征对齐,并训练单模态编码器以更好地理解图像和文本的语义。

        目标2:应用于多模态编码器的图像文本匹配,预测一对图像和文本是正(匹配)还是负(不匹配)。我们提出了对比硬负例挖掘,它选择具有更高对比相似性的信息负例。

        目标 3:应用于多模态编码器的掩码语言建模。我们随机屏蔽文本标记,并训练模型使用图像和屏蔽文本来预测它们。

🎅​​​​​​​🎅损失函数

        损失函数也就由3部分组成:

  • ITC(image-text contrastive loss):图像-文本对比损失
  • ITM(image-text matching):图像-文本匹配损失
  • MLM(masked language modeling):掩码语言模型损失

  

   

🌼🌼动量蒸馏

        本文的另外一个 创新点就是动量蒸馏,从网络收集的图像文本对通常是弱相关的:文本可能包含与图像无关的单词,或者图像可能包含文本中未描述的实体。为了从噪声数据中学习,我们提出了动量蒸馏,其中我们使用动量模型来生成图像文本对比学习和掩蔽语言建模的伪目标。下图显示了图像的伪正文本示例,它产生了“年轻女子”和“树”等新概念。我们还从互信息最大化的角度提供了理论解释,表明动量蒸馏可以解释为为每个图像-文本对生成视图。

        简单理解动量蒸馏就是通过动量更新得到伪label的过程,因为在图文对比的时候,可能会有一些负样本的pair对也存在一定的相关性,而掩码建模的任务中,可能也会存在更好的描述来代替mask掉的文本。这里动量蒸馏的意思是用动量模型的结果来在一定程度上修正gt,而动量模型的概念来自于Moco。

🌺🌺下游任务结果

零样本图文检索结果

视觉问答 (VQA)、自然语言视觉理解 (NLVR) 和视觉蕴含 (SNLI-VE) 的结果 

 

📒📒Grad-CAM 特征可视化

        我们发现 ALBEF 隐式地学习了对象、属性和关系的准确基础,尽管没有接受任何边界框注释的训练。我们使用 Grad-CAM 来探测多模态编码器的交叉注意力图,并在弱监督视觉基础任务上取得了最先进的结果。下图显示了一些可视化示例。

  

  

 

🚦🚦代码

🎨1.预训练customdata

python -m torch.distributed.launch --nproc_per_node=8 --use_env Pretrain.py --config ./configs/Pretrain.yaml --output_dir output/Pretrain 

🎨2.图文检索

#Image-Text Retrieval:
#Download MSCOCO or Flickr30k datasets from the original websites.
#Download and extract the provided dataset json files.
#In configs/Retrieval_coco.yaml or configs/Retrieval_flickr.yaml, set the paths for the #json files and the image path.
#Finetune the pre-trained checkpoint using 8 A100 GPUs:
python -m torch.distributed.launch --nproc_per_node=8 --use_env Retrieval.py \
--config ./configs/Retrieval_flickr.yaml \
--output_dir output/Retrieval_flickr \
--checkpoint [Pretrained checkpoint]

🎨3.VQA

#VQA:
#Download VQA v2 dataset and Visual Genome dataset from the original websites.
#Download and extract the provided dataset json files.
#In configs/VQA.yaml, set the paths for the json files and the image paths.
#Finetune the pre-trained checkpoint using 8 A100 GPUs:
python -m torch.distributed.launch --nproc_per_node=8 --use_env VQA.py \
--config ./configs/VQA.yaml \
--output_dir output/vqa \
--checkpoint [Pretrained checkpoint]

🎨4.VE

#Visual Entailment:
#Download SNLI-VE dataset from the original website.
#Download and extract the provided dataset json files.
#In configs/VE.yaml, set the paths for the json files and the image path.
#Finetune the pre-trained checkpoint using 8 A100 GPUs:
python -m torch.distributed.launch --nproc_per_node=8 --use_env VE.py \
--config ./configs/VE.yaml \
--output_dir output/VE \
--checkpoint [Pretrained checkpoint]

🎨5.vg

#Visual Grounding on RefCOCO+:
#Download MSCOCO dataset from the original website.
#Download and extract the provided dataset json files.
#In configs/Grounding.yaml, set the paths for the json files and the image path.
#Finetune the pre-trained checkpoint using 8 A100 GPUs:
python -m torch.distributed.launch --nproc_per_node=8 --use_env Grounding.py \
--config ./configs/Grounding.yaml \
--output_dir output/RefCOCO \
--gradcam_mode itm \ 
--block_num 8 \
--checkpoint [Pretrained checkpoint]

🎨6.NLVR2

#预训练python -m torch.distributed.launch --nproc_per_node=8 --use_env Pretrain_nlvr.py \
--config ./configs/NLVR_pretrain.yaml \
--output_dir output/NLVR_pretrain \
--checkpoint [Pretrained checkpoint]#训练python -m torch.distributed.launch --nproc_per_node=8 --use_env NLVR.py \
--config ./configs/NLVR.yaml \
--output_dir output/NLVR \
--checkpoint [TA pretrained checkpoint]

整理不易,欢迎一键三连!!!

送你们一条美丽的--分割线--


🌷🌷🍀🍀🌾🌾🍓🍓🍂🍂🙋🙋🐸🐸🙋🙋💖💖🍌🍌🔔🔔🍉🍉🍭🍭🍋🍋🍇🍇🏆🏆📸📸⛵⛵⭐⭐🍎🍎👍👍🌷🌷

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

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

相关文章

欧拉函数与筛法求欧拉函数

目录 欧拉函数欧拉函数的定义欧拉函数的公式欧拉函数的公式推导欧拉定理典型例题代码实现 筛法求欧拉函数思路分析经典例题代码实现 欧拉函数 欧拉函数的定义 对于任意正整数 n n n,欧拉函数 φ ( n ) φ(n) φ(n) 表示小于或等于 n n n 的正整数中,与 n n n …

【视觉SLAM入门】5.1. 特征提取和匹配--FAST,ORB(关键点描述子),2D-2D对极几何,本质矩阵,单应矩阵,三角测量,三角化矛盾

"不言而善应" 0. 基础知识1. 特征提取和匹配1.1 FAST关键点1.2 ORB的关键点--改进FAST1.3 ORB的描述子--BRIEF1.4 总结 2. 对极几何,对极约束2.1 本质矩阵(对极约束)2.1.1 求解本质矩阵2.1.2 恢复相机运动 R , t R,t R,…

修改状态栏The application could not be installed: INSTALL_FAILED_ABORTEDList

打开theme修改状态栏为可见。 <resources xmlns:tools"http://schemas.android.com/tools"><!-- Base application theme. --><style name"Base.Theme.MyApplication" parent"Theme.AppCompat.DayNight"><!-- Customize yo…

[JavaScript游戏开发] 绘制冰宫宝藏地图、人物鼠标点击移动、障碍检测

系列文章目录 第一章 2D二维地图绘制、人物移动、障碍检测 第二章 跟随人物二维动态地图绘制、自动寻径、小地图显示(人物红点显示) 第三章 绘制冰宫宝藏地图、人物鼠标点击移动、障碍检测 第四章 绘制Q版地图、键盘上下左右地图场景切换 文章目录 系列文章目录前言一、本章节…

呼吸灯——FPGA

文章目录 前言一、呼吸灯是什么&#xff1f;1、介绍2、占空比调节示意图 二、系统设计1、系统框图2、RTL视图 三、源码四、效果五、总结六、参考资料 前言 环境&#xff1a; 1、Quartus18.0 2、vscode 3、板子型号&#xff1a;EP4CE6F17C8 要求&#xff1a; 将四个LED灯实现循环…

电缆故障综合测试仪

一、电缆故障查找仪产品简介 本产品用于地埋电缆故障点的快速、企业产品免费信息发布平台定位、电缆埋设路径及埋设深度的电子商务测&#xff08;在故障点处获取深度&#xff09;。 主要特点 1、用特殊结构的声波振动传感器及低噪声专用器件作前置放大&#xff0c;提高了仪器定…

VLT:Vision-Language Transformer用于引用的视觉语言转换和查询生成分割

摘要 在这项工作中&#xff0c;我们解决了引用分割的挑战性任务。引用分割中的查询表达式通常通过描述目标对象与其他对象的关系来表示目标对象。因此&#xff0c;为了在图像中的所有实例中找到目标实例&#xff0c;模型必须对整个图像有一个整体的理解。为了实现这一点&#…

鸿蒙4.0发布会说了啥?关注个性与效率,小艺智能程度令人惊艳

鸿蒙4.0系统的发布会已经结束&#xff0c;整个发布会看下来&#xff0c;给我最深刻的印象就是——鸿蒙4.0是一个让手机更接近个人终端的系统。但选择系统难免掺杂个人喜好和偏见&#xff0c;因此本文我只会从鸿蒙4.0那些让我感到惊喜的功能入手介绍&#xff0c;不对系统进行评价…

【Golang 接口自动化01】使用标准库net/http发送Get请求

目录 发送Get请求 响应信息 拓展 资料获取方法 发送Get请求 使用Golang发送get请求很容易&#xff0c;我们还是使用http://httpbin.org作为服务端来进行演示。 package mainimport ("bytes""fmt""log""net/http""net/url&qu…

Vue 自定义事件绑定与解绑

绑定自定义事件 说到 Vue 自定义事件&#xff0c;那就需要搞清楚一个问题&#xff0c;为啥有这个玩意。 说到自定义事件之前&#xff0c;需要理解 组件基础的概念。理解了基础概念之后&#xff0c;我们就知道 Vue 的父子之间的通信&#xff0c; 一是 父组件通过 Prop 向子组件…

8.3day04git+数据结构

文章目录 git版本控制学习高性能的单机管理主机的心跳服务算法题 git版本控制学习 一个免费开源&#xff0c;分布式的代码版本控制系统&#xff0c;帮助开发团队维护代码 作用&#xff1a;记录代码内容&#xff0c;切换代码版本&#xff0c;多人开发时高效合并代码内容 安装g…

抽象工厂模式(Abstract Factory)

抽象工厂模式提供一个创建一组相关或相互依赖的对象的接口&#xff0c;而无须指定它们具体的类&#xff0c;每个子类可以生产一系列相关的产品。 The Abstract Factory Pattern is to provide an interface for creating families of related or dependent objects without s…

谷歌: 安卓补丁漏洞让 N-days 与 0-days 同样危险

近日&#xff0c;谷歌发布了年度零日漏洞报告&#xff0c;展示了 2022 年的野外漏洞统计数据&#xff0c;并强调了 Android 平台中长期存在的问题&#xff0c;该问题在很长一段时间内提高了已披露漏洞的价值和使用。 更具体地说&#xff0c;谷歌的报告强调了安卓系统中的 &quo…

Matlab对TMS320F28335编程--SVPWM配置互补PWM输出

前言 F28335中断 目的&#xff1a;FOC的核心算法及SVPWM输出&#xff0c;SVPWM的载波频率10kHz&#xff0c;SVPWM的每个周期都会触发ADC中断采集相电流&#xff0c;SVPWM为芯片ePWM4、5、6通道&#xff0c;配置死区 1、配置中断SVPWM进ADC中断&#xff0c;查上表知CPU1,PIE1 …

回归分析书籍推荐

回归分析在线免费书籍&#xff1a;I 1-ntroduction to Regression Methods for Public Health using R Introduction to Regression Methods for Public Health Using R 2-An Introduction to Statistical Learning https://hastie.su.domains/ISLR2/ISLRv2_website.pdf 可以…

【Jmeter】压测mysql数据库中间件mycat

目录 背景 环境准备 1、下载Jmeter 2、下载mysql数据库的驱动包 3、要进行测试的数据库 Jmeter配置 1、启动Jmeter图形界面 2、加载mysql驱动包 3、新建一个线程组&#xff0c;然后如下图所示添加 JDBC Connection Configuration 4、配置JDBC Connection Configurati…

vue运行在IE浏览器空白报错SCRIPT1006: 缺少‘)‘ -【vue兼容IE篇】

其他浏览器均正常&#xff0c;但是切换ie模式&#xff0c;打开空白&#xff0c;F12打开报错缺少‘)‘ &#xff0c;如下图 在搜狗浏览器下点开报错&#xff1a;定格在crypto-js处 解决&#xff1a; 步骤一&#xff1a;使用npm安装babel-polyfill 依赖&#xff08;已安装了可忽…

AI赋能转型升级 助力打造“数智辽宁”——首次大模型研讨沙龙在沈成功举行

当前&#xff0c;以“ChatGPT”为代表的大模型正在引领新一轮全球人工智能技术发展浪潮&#xff0c;推动人工智能从以专用小模型定制训练为主的“手工作坊时代”&#xff0c;迈入以通用大模型预训练为主的“工业化时代”&#xff0c;正不断加速实体经济智能化升级&#xff0c;深…

主流CRM有哪些特点和优势?

现如今&#xff0c;CRM系统是企业实现数字化转型&#xff0c;提高销售收入的首选工具。但市场上有众多CRM品牌&#xff0c;每家都有自己的特点和优势&#xff0c;企业该如何进行选择&#xff1f;下面我们就来进行主流CRM系统比较&#xff0c;并说说什么CRM产品比较好? 主流CR…

学习笔记|C251|STC32G单片机视频开发教程(冲哥)|第三集:开发环境搭建和程序下载

文章目录 1.STC-ISP软件的下载2.STC32手册下载3.PDF阅读器下载4.学会PDF阅读器查阅手册5.跟着手册搭建C251开发环境Tips:如何同时安装Keil的C51、C251和MDK 6.程序包的下载7.第一个工程的编译和下载 原作者/主讲人&#xff1a;冲哥 原始视频地址 1.STC-ISP软件的下载 STC-ISP …