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,一经查实,立即删除!

相关文章

大数据概念与术语简介

介绍 大数据是一个总称,用于描述从大型数据集中收集、组织、处理和获取见解所需的非传统策略和技术。虽然处理超出单台计算机的计算能力或存储容量的数据并不是一个新问题,但近年来,这种类型的计算的普及性、规模和价值大大扩展。 在本文中…

K8s之configMap

1. 概述​ 1.1 什么是configMap​ 1.1 什么是configMap configMap是Kubernetes中的一种资源对象,用于存储配置数据。它可以包含键值对,也可以包含来自文件的配置数据。configMap的作用是将配置数据与应用程序的容器分离,使得配置可以在不重…

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

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

C 练习实例55-学习使用按位取反~

复习知识点 原码:最高位为符号位,0代表正数,1代表负数 反码:正数的反码与原码一致,负数的反码保持符号位不变,其余的按位取反 补码:正数的补码与原码一致,负数的补码等于其反码加…

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

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

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

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

18. 四数之和(力扣LeetCode)

文章目录 18. 四数之和题目描述双指针 18. 四数之和 题目描述 给你一个由 n 个整数组成的数组 nums ,和一个目标值 target 。请你找出并返回满足下述全部条件且不重复的四元组 [nums[a], nums[b], nums[c], nums[d]] (若两个四元组元素一一对应&#x…

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

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

【新书推荐】6.1 if语句

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

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

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

使用typescript构建Vue2应用

一、vue项目初始化-引入typescript 使用typescript构建vue应用和使用js一样,都是通过vue-cli去初始化并创建一个vue项目,只不过使用typescript构建的时候要在脚手架问卷操作的时候勾选上typescript选项。 二、typescript Vue项目比较 使用typescript构…

大白话介绍循环神经网络

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

基于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指令&…

292.Nim游戏

桌子上有一堆石头。 轮流进行自己的回合, 你作为先手 。 每一回合,轮到的人拿掉 1 - 3 块石头。 拿掉最后一块石头的人就是获胜者。 假设你们每一步都是最优解。请编写一个函数,来判断你是否可以在给定石头数量为 n 的情况下赢得游戏。如果可…

Matomo 访问图形显示异常

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

在WebGL中创建动画

前言 在搭建WebGL开发环境中介绍了如何开始使用webgl进行绘制。 本篇文章介绍如何在WebGL中创建动画 动画的定义 动画是一种通过快速显示一系列图像(或帧)模拟运动的技术。 动画的分类 网页上的动画基本分为三类: 声明式动画,如CSS动画和SVG动画&a…

我的创作128纪念日

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