BridgeTower:融合视觉和文本信息的多层语义信息,主打复杂视觉-语言任务

BridgeTower

    • 核心思想
      • 子问题1:双塔架构的局限性
      • 子问题2:不同层次的语义信息未被充分利用
      • 子问题3:模型扩展性和泛化能力

 


核心思想

论文:https://arxiv.org/pdf/2206.08657.pdf

代码:https://github.com/microsoft/BridgeTower

 
问题陈述:假设你有一张照片和一个相关的问题,你想通过这张照片来回答这个问题。

传统方法就像是有两个专家,一个懂得看图片,另一个懂得读懂问题,但他们只能在完成各自分析后,通过一个简单的对讲机进行沟通。

这种方式可能导致一些细节和深层次的含义丢失,因为他们没有办法在分析过程中共享和讨论信息。

BridgeTower 提出的解决方案:BridgeTower就像是给这两个专家提供了一座有多层桥梁的大桥,每层桥梁都允许他们在分析的任何阶段共享观点和发现。

这意味着,如果看图片的专家在图片的某个角落发现了一个重要的线索,他可以立即通知读问题的专家,反之亦然。

这样,他们就能更深入、更全面地理解整个情况,共同给出更准确的答案。

 

子问题1:双塔架构的局限性

  • 子解法1:引入桥接层(Bridge Layers)
    • 之所以用桥接层,是因为在传统的双塔架构中,视觉和文本信息的整合通常仅发生在最后一层,这限制了模型利用预训练单模态编码器中各层丰富语义的能力。
    • 桥接层能够在每一层跨模态编码器中建立起视觉和文本编码器顶层之间的直接联系,从而实现自下而上的有效对齐和融合。
    • 例子:如果视觉编码器在图片中识别出一个“狗”的图像特征,而文本编码器分析的句子是“小狗正在跑”,桥接层可以帮助跨模态编码器更有效地将这两种信息结合起来,以更好地回答关于图片的问题。

两塔架构的分类与BridgeTower架构:
在这里插入图片描述

当前两塔VL模型的四种类别,以及BridgeTower架构的概念设计:

  • (a) VE = TE >> CE: 表示视觉编码器(VE)和文本编码器(TE)具有相同或相似的参数或计算成本,远大于跨模态编码器(CE)。
  • (b) VE > CE > TE: 表示视觉编码器的计算成本大于跨模态编码器,后者又大于文本编码器。
  • © CE > VE = TE: 表示跨模态编码器的计算成本最高,视觉和文本编码器相同且低于CE。
  • (d) VE = TE > CE: 表示视觉和文本编码器的计算成本相同且高于跨模态编码器。
  • (e) BRIDGETOWER: 这是BridgeTower的架构,其中包含了视觉编码器、文本编码器和跨模态编码器。
  • 与之前的模型不同,BridgeTower在每一层跨模态编码器中都引入了桥接层,将视觉和文本编码器的顶层与跨模态编码器的每一层相连接。

BridgeTower由一个12层的文本编码器、一个12层的视觉编码器以及6层的跨模态编码器组成,其中每一层的跨模态编码器都通过桥接层与文本和视觉编码器的顶层相连,以促进不同层次的语义信息融合。

 

子问题2:不同层次的语义信息未被充分利用

  • 子解法2:多层特征利用(Multi-Layer Feature Utilization)
    • 之所以采用多层特征利用,是因为不同的编码器层次编码了不同类型和层次的信息。
    • 低层次可能更关注细节特征,如边缘和纹理,而高层次则包含更抽象的语义信息。
    • 通过在桥接层中整合这些多层次的信息,可以让模型在理解复杂视觉-语言交互时有更全面的信息基础。
    • 例子:考虑到一个复杂的图文匹配任务,如果仅仅使用高层的抽象信息可能难以捕捉到图片中的细节,如图片背景中的特定物体,而这些细节可能对匹配任务至关重要。
    • 利用多层特征可以使模型在高层的语义理解和低层的细节观察之间找到平衡。

在这里插入图片描述

上图 BridgeTower模型的内部结构,展示了如何通过桥接层连接不同编码器的层。

  • 文本编码器(Textual Encoder): 由6个自注意力和前馈网络组成的层堆叠而成,处理文本信息。
  • 视觉编码器(Visual Encoder): 结构与文本编码器相似,但处理视觉信息。
  • 跨模态编码器(Cross-Modal Encoder): 包含6层,每层都使用自注意力、交叉注意力和前馈网络。每层都通过一个桥接层与视觉和文本编码器的相应层相连接。
  • 桥接层(BridgeLayer): 这是BridgeTower的核心创新,允许从视觉和文本编码器流向跨模态编码器的信息在不同层间流动,使得不同层的信息能够在跨模态编码器中进行融合。

总的来说,这两幅图展示了BridgeTower如何通过在传统的两塔VL模型中引入桥接层来提高模型性能,特别是如何促进视觉和文本信息在多个层次上的对齐和融合。

这种结构设计旨在解决先前模型中存在的信息利用不足的问题,并允许模型更全面地学习和理解跨模态内容。
 

子问题3:模型扩展性和泛化能力

  • 子解法3:模型扩展和细化训练(Model Scaling and Fine-tuning)
    • 之所以进行模型扩展和细化训练,是因为虽然BRIDGETOWER在初始的4M图像预训练集上表现出色,但要在更广泛的应用场景中保持高性能,需要模型具有良好的扩展性和泛化能力。
    • 通过扩大模型规模和在特定下游任务上进行细化训练,可以进一步提升模型的准确性和适应性。
    • 例子:当BRIDGETOWER模型从基础版扩展到大型版时,其在视觉问题回答任务上的准确率从78.73%提高到了81.15%,显示了通过增加模型复杂度和针对性训练可以有效提升性能。

通过这种方式,BRIDGETOWER项目不仅解决了双塔架构的核心问题,还通过具体的子解法充分利用了不同层次的语义信息,并确保了模型在不同规模和任务上的高性能和适应性。

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

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

相关文章

基于Java SSM框架实现网上租车系统项目【项目源码+论文说明】计算机毕业设计

基于java的SSM框架实现网上租车系统演示 摘要 随着现在网络的快速发展,网上管理系统也逐渐快速发展起来,网上管理模式很快融入到了许多商家的之中,随之就产生了“网上租车系统”,这样就让网上租车系统更加方便简单。 对于本网上…

JAVA Web 学习(五)Nginx、RPC、JWT

十二、反向代理服务器——Nginx 支持热部署,几乎可以做到 7 * 24 小时不间断运行,即使运行几个月也不需要重新启动,还能在不间断服务的情况下对软件版本进行热更新。性能是 Nginx 最重要的考量,其占用内存少、并发能力强、能支持…

arcpy高德爬取路况信息数据json转shp

最近工作上遇到爬取的高德路况信息数据需要在地图上展示出来,由于json数据不具备直接可视化的能力,又联想到前两个月学习了一点点arcpy的知识,就花了一些时间去写了个代码,毕竟手动处理要了老命了。 1、json文件解读 json文件显…

Log360,引入全新安全与风险管理功能,助力企业积极抵御网络威胁

ManageEngine在其SIEM解决方案中推出了安全与风险管理新功能,企业现在能够更主动地减轻内部攻击和防范入侵。 SIEM 这项新功能为Log360引入了安全与风险管理仪表板,Log360是ManageEngine的统一安全信息与事件管理(SIEM)解决方案…

【新书推荐】6.1 if语句

第六章 分支结构 计算机语言和人类语言类似,人类语言是为了解决人与人之间交流的问题,而计算机语言是为了解决程序员与计算机之间交流的问题。程序员编写的程序就是计算机的控制指令,控制计算机的运行。借助于编译工具,可以将各种…

Java代码实现基数排序算法(附带源码)

基数排序是一种非比较型整数排序算法,其原理是将整数按位数切割成不同的数字,然后按每个位数分别比较。由于整数也可以表达字符串(比如名字或日期)和特定格式的浮点数,所以基数排序也不是只能使用于整数。 1. 基数排序…

大白话介绍循环神经网络

循环神经网络实质为递归式的网络,它在处理时序任务表现出优良的效果,毕竟递归本来就是一步套一步的向下进行,而自然语言处理任务中涉及的文本天然满足这种时序性,比如我们写字就是从左到右一步步来的鸭,刚接触深度学习…

基于hadoop+spark的大规模日志的一种处理方案

概述: CDN服务平台上有为客户提供访问日志下载的功能,主要是为了满足在给CDN客户提供服务的过程中,要对所有的记录访问日志,按照客户定制的格式化需求以小时为粒度(或者其他任意时间粒度)进行排序、压缩、打包,供客户进行下载,以便进行后续的核对和分析的诉求。而且CDN…

xlsx xlsx-style 使用和坑记录

1 安装之后报错 npm install xlsx --savenpm install xlsx-style --save Umi运行会报错 自己代码 import XLSX from "xlsx"; import XLSXStyle from "xlsx-style";const data [["demo1","demo2","demo3","demo4&quo…

好烦,怎么输入拼音的过程也会触发input事件!!!

说在前面 🎈input输入框大家应该都很熟悉了吧,不知道大家有没有遇到过这样的一种情况:如上图,在中文输入过程中,输入的拼音也会触发input框的input事件,有些时候我们并不希望在中文输入的过程中拼音触发inp…

基于OpenCV灰度图像转GCode的双向扫描实现

基于OpenCV灰度图像转GCode的双向扫描实现 引言激光雕刻简介OpenCV简介实现步骤 1.导入必要的库2. 读取灰度图像3. 图像预处理4. 生成GCode 1. 简化版的双向扫描2. 优化版的双向扫描 5. 保存生成的GCode6. 灰度图像双向扫描代码示例 总结 系列文章 ⭐深入理解G0和G1指令&…

Matomo 访问图形显示异常

近期我们的把 PHP 系统完全升级后,访问 Matomo 的站点有关访问的曲线无法显示。 出现的情况如下图: 我们可以看到图片中有关的访问曲线无法显示。 如果具体直接访问链接的话,会有下面的错误信息。 问题和解决 出现上面问题的原因是缺少 ph…

我的创作128纪念日

机缘 起初我写博客是为了记录自己的学习过程,现在也是如此 实战项目中的经验分享日常学习过程中的记录通过文章进行技术交流通过文章加深学习和复习 收获 在创作过程中 获得了400多位粉丝的关注感谢大家的支持阅读数量也达到了3w在博客上认识仲秋大佬,感谢大佬对我的指导,我…

成都软件产业优势明显

是的,成都非常适合软件产业的发展。以下是一些原因: 人才储备丰富:成都拥有众多高等院校和科研机构,为软件产业提供了丰富的人才储备。这些机构培养了大量的软件人才,为成都软件产业的发展提供了有力支持。政策支持&a…

Java实现康复中心管理系统 JAVA+Vue+SpringBoot+MySQL

目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块2.1 普通用户模块2.2 护工模块2.3 管理员模块 三、系统展示四、核心代码4.1 查询康复护理4.2 新增康复训练4.3 查询房间4.4 查询来访4.5 新增用药 五、免责说明 一、摘要 1.1 项目介绍 基于JAVAVueSpringBootMySQL的康复中…

Intellij IDEA各种调试+开发中常见bug

Intellij IDEA中使用好Debug,主要包括如下内容: 一、Debug开篇 ①、以Debug模式启动服务,左边的一个按钮则是以Run模式启动。在开发中,我一般会直接启动Debug模式,方便随时调试代码。 ②、断点:在左边行…

如何在 Microsoft Azure 上部署和管理 Elastic Stack

作者:来自 Elastic Osman Ishaq Elastic 用户可以从 Azure 门户中查找、部署和管理 Elasticsearch。 此集成提供了简化的入门体验,所有这些都使用你已知的 Azure 门户和工具,因此你可以轻松部署 Elastic,而无需注册外部服务或配置…

NuxtJs安装Sass后出现ERROR:Cannot find module ‘webpack/lib/RuleSet‘

最近了解NuxtJs时,发现问题比较多,对于初学者来说是件比较头痛的事。这次是安装sass预处理器,通过命令安装后,出现了ERROR:Cannot find module webpack/lib/RuleSet 错误,于是根据之前经验,对版…

Python统计分析——参数估计

参考资料:用python动手学统计学 所谓参数就是总体分布的参数。 1、导入库 # 导入用于数值计算的库 import numpy as np import pandas as pd import scipy as sp from scipy import stats # 导入用于绘图的库 from matplotlib import pyplot as plt import seabor…

vue前端+nodejs后端通信-简单demo

本文记录vue前端nodejs后端通讯最简单的方法,供广大网友最快速进入全栈开发。 技术架构 前端 vue axios 后端 nodejs express 一、前端部分-搭建VUE 项目 vue create Vnodenpm run serve 启动; 具体操作步骤,请自行百度,这里没…