ICCV2023 | PTUnifier+:通过Soft Prompts(软提示)统一医学视觉语言预训练

news2024/12/26 4:38:21

论文标题:Towards Unifying Medical Vision-and-Language Pre-training via Soft Prompts

代码:https://github.com/zhjohnchan/ptunifier

Fusion-encoder type和Dual-encoder type。前者在多模态任务中具有优势,因为模态之间有充分的相互作用; 后者由于具有单模态编码能力,擅长单模态和跨模态任务。该论文PTUnifier统一这两种类型(这里的统一包括模型和输入模态)。

一、IDea

医学数据通常是多模态的,视觉数据(例如,放射照相、磁共振成像和计算机断层扫描)和文本数据(例如,放射学报告和医学文本)。在日常临床实践中成对收集的。医学视觉和语言预训练(MedVLP)旨在从大规模医学图像-文本对中学习通用表示,然后将其迁移到各种医疗任务中,有助于解决医疗领域的数据稀缺问题。

由于缺乏单模态编码,融合编码器不能有效地完成单模态任务和跨模态任务,而双编码器由于模态之间的交互不足,在多模态任务中表现不佳,如图1(a)所示。

二、Model(Bridging the Gap)

模型预训练可以表示为:

1、Unifying Inputs via Prompts

通过soft prompts 统一输入,以执行不同类型的任务。工作机制类似于DETR中的查询向量。

Compatibility using Soft Prompts

Scalability of Soft Prompts

构建了一个视觉/文本提示池,而不是 static prompts。prompt的选择取决于input embedding。定义一个视觉提示池V和一个文本提示池T。给定 visual embedding sequence Xv输入或 its textual embedding sequence Xl输入,进行池化操作(例如,平均/最大池化),得到现有模态的查询向量(记为qv或ql),即qv = pooling(Xv)和ql = pooling(Xl)。为了得到缺失模态的prompt,根据查询向量与缺失模态池中所有prompts的相似度得分来选择prompt:

Intuitive Explaination:将可视提示池视为一个查询库,其中存储了用于在缺少一个模态时提取单模态特征的query。

Unifying Multiple Pre-training Objectives

Masked Language Modeling (MLM)

Image-Text Matching (ITM)

Image-Text Contrast (ITC)

三、The Model Architecture

首先将视觉和文本标记映射到嵌入空间(Xv和Xl),这些带有或不带有prompts的token embedding将由相同的backbone Mθ共同处理。

1、Visual and Textual Embeddings

Visual:

Textual:

2、The Backbone Model

该模型可以是一个有效模型(包括单模态编码器和多模态融合模块),也可以是一个有效模型(即单个Transformer模型),特征提取后:

四、Experimental Settings

1、Pre-training Datasets

ROCO、MedICaT、MIMIC-CXR

2、Results

Main Results

现有的研究仅针对单一任务设计,而论文方法通常针对所有视觉和/或语言相关的任务,也就是说,没有针对特定任务进行任何量身定制的调整。

Ablation Study

融合编码器(即MLM和ITM)的目标模型(即ID 3和5)获得比没有它们的其他模型更强大的多模态表征。

双编码器的图像-文本对比学习有助于模型(即id4和id5)学习单模态图像表征和跨模态表征,并且使用ITC目标预训练的模型优于未使用ITC目标预训练的模型。

ITC目标并没有提高单模态文本分类任务的性能。

同时实现两类目标可以促进模型(即ID 5)在所有任务中获得最佳性能,从而证实了融合编码器和双编码器统一研究方向的可行性。

Effects of Soft Prompt

使用不同池大小(范围从0到2048)进行预训练。

(i)虽然池大小的扩大导致参数数量的增加,但与总参数(350M)相比,引入的参数并不太多(少于0.5%);

(ii)所有有Soft Prompt  Pools的模型都比没有Soft Prompt  Pools(即池大小为0)的模型收敛性更好(收敛损失更小),证明了引入提示池的有效性;

(iii)发现设置合适的池大小很重要,当池大小设置为1024时,模型收敛效果最好。这可能是由于池大小控制了在预训练过程中存储的查询信息的数量,而具有大容量的大池可能会“吸收”预训练语料库中的太多噪声。

论文中有意思的是竟然做ITC预训练任务时,把两个模态拆开,分别在soft prompts pools里面找其对应的模态(visual->textual, textual->visual),这样在缺失一个模态的输入的时候,直接在pools中找即可。但是应该有个问题存在,pools中的向量就能准确代表缺失的模态吗?其实在小领域还好,但是在通用领域会不会受限(当然可以通过调节pools size来缓解)?是不是可以像VQ-VAE中使用向量字典的方式来组成缺失的目标对象,而不是直接计算相似度?

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

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

相关文章

Docker(二)安装指南

作者主页: 正函数的个人主页 文章收录专栏: Docker 欢迎大家点赞 👍 收藏 ⭐ 加关注哦! 安装 Docker Docker 分为 stable test 和 nightly 三个更新频道。 官方网站上有各种环境下的 安装指南,这里主要介绍 Docker 在…

Vue学习笔记9--vuex(专门在Vue中实现集中式状态(数据)管理的一个Vue插件)

一、vuex是什么? 概念:专门在Vue中实现集中式状态(数据)管理的一个Vue插件,对vue应用中多个组件的共享状态进行集中式的管理(读/写),也是一种组件间通信的方式,且适用于…

LeetCode、2462. 雇佣 K 位工人的总代价【中等,最小堆+双指针】

文章目录 前言LeetCode、2462. 雇佣 K 位工人的总代价【中等,最小堆双指针】题目及类型思路及代码实现 资料获取 前言 博主介绍:✌目前全网粉丝2W,csdn博客专家、Java领域优质创作者,博客之星、阿里云平台优质作者、专注于Java后…

rust获取本地外网ip地址的方法

大家好,我是get_local_info作者带剑书生,这里用一篇文章讲解get_local_info的使用。 get_local_info是什么? get_local_info是一个获取linux系统信息的rust三方库,并提供一些常用功能,目前版本0.2.4。详细介绍地址&a…

【踩坑日志】SpringBoot读取nacos配置信息并提取信息中的IP地址(配置属性解析异常+排错记录)

缘起 :项目需读取nacos中动态的TDengine数据库连接信息并提取IP,一个并不复杂的操作,但作为一个nacos知识浅薄的菜鸡,我愣是捯饬了几个小时……惭愧惭愧…… 异常代码 Data Component public class TaosLink { // Value("…

在PyCharm中创建Flask项目

在 PyCharm 中创建 Flask 项目的步骤如下: 打开 PyCharm,并选择 "Create New Project"(新建项目)。在弹出的窗口中,选择左侧的 "Python" 选项,然后选择右侧的 "Flask" 项目…

【JavaEE】_网络通信原理

目录 1. 网络发展史 2. 网络通信基础 1.1 IP地址 1.2 端口号 1.3 协议 1.3.1 概念 1.3.2 五元组 1.4 协议分层 1.4.1 协议分层的优点 1.4.2 协议分层的分类 1.4.3网络设备所在分层 1.4.4 两台主机通过TCP/IP协议通讯过程 1.5 封装与分用 1.5.1 封装 1.5.2 分用…

【EI会议征稿通知】第四届工业制造与结构材料国际学术会议(IMSM 2024)

第四届工业制造与结构材料国际学术会议(IMSM 2024) 2024 4th International Conference on Industrial Manufacturing and Structural Materials(IMSM 2024) 第四届工业制造与结构材料国际学术会议(IMSM 2024&#x…

TypeScript依赖注入框架Typedi的使用、原理、源码解读

简介 typedi是一个基于TS的装饰器和reflect-metadata的依赖注入轻量级框架,使用简单易懂,方便拓展。 使用typedi的前提是安装reflect-metadata,并在项目的入口文件的第一行中声明import ‘reflect-metadata’,这样就会在原生的R…

【图解数据结构】深度解析时间复杂度与空间复杂度的典型问题

🌈个人主页:聆风吟 🔥系列专栏:图解数据结构、算法模板 🔖少年有梦不应止于心动,更要付诸行动。 文章目录 一. ⛳️上期回顾二. ⛳️常见时间复杂度计算举例1️⃣实例一2️⃣实例二3️⃣实例三4️⃣实例四5…

Stability AI发布全新代码模型Stable Code 3B

Stable Code 3B: Coding on the Edge 要点: Stable Code 3B 是一个包含 30 亿个参数的大型语言模型 (LLM),可实现准确且响应灵敏的代码补全,其水平与大 2.5 倍的 CodeLLaMA 7b 等模型相当。即使在 MacBook Air 等普通笔记本电脑上没有 GPU&…

4D毫米波雷达——RADIal数据集、格式、可视化 CVPR2022

前言 本文介绍RADIal数据集,来着CVPR2022的。 它是一个收集了 2 小时车辆行驶数据的数据集,采集场景包括:城市街道、高速公路和乡村道路。采集设备包括:摄像头、激光雷达和高清雷达等,并且还包括了车辆的 GPS 位置和…

【Docker】contos7安装 Nacos容器部署单个部署集群

🎉🎉欢迎来到我的CSDN主页!🎉🎉 🏅我是平顶山大师,一个在CSDN分享笔记的博主。📚📚 🌟推荐给大家我的博客专栏《Docker】contos7安装 Nacos容器部署单个&…

基于springboot+vue的社区团购系统(前后端分离)

博主主页:猫头鹰源码 博主简介:Java领域优质创作者、CSDN博客专家、公司架构师、全网粉丝5万、专注Java技术领域和毕业设计项目实战 主要内容:毕业设计(Javaweb项目|小程序等)、简历模板、学习资料、面试题库、技术咨询 文末联系获取 项目背景…

安卓Android studio读写EM4305卡源码

本示例使用的发卡器&#xff1a; https://item.taobao.com/item.htm?id718720660087&spma1z10.5-c.w4002-21818769070.15.57dc6f89txUhXE <?xml version"1.0" encoding"utf-8"?> <androidx.constraintlayout.widget.ConstraintLayout xml…

蓝桥杯备赛 day 2 —— 二分算法(C/C++,零基础,配图)

目录 &#x1f308;前言&#xff1a; &#x1f4c1; 二分的概念 &#x1f4c1; 整数二分 &#x1f4c1; 二分的模板 &#x1f4c1; 习题 &#x1f4c1; 总结 &#x1f308;前言&#xff1a; 这篇文章主要是准备蓝桥杯竞赛同学所写&#xff0c;为你更好准备蓝桥杯比赛涉及…

【音视频原理】图像相关概念 ② ( 帧率 | 常见帧率标准 | 码率 | 码率单位 )

文章目录 一、帧率1、帧率简介2、常见帧率标准3、帧率 刷新率 二、码率1、码率简介2、码率单位 一、帧率 1、帧率简介 帧率 Frame Rate , 帧 指的是 是 画面帧 , 帧率 是 画面帧 的 速率 ; 帧率 的 单位是 FPS , Frames Per Second , 是 每秒钟 的 画面帧 个数 ; 帧率 是 动画…

弗洛伊德循环查找算法-原理

本文灵感来自哔哩哔哩视频 视频链接: 弗洛伊德循环查找算法 算法代码(java) package rain;class ListNode {int value;ListNode next;public ListNode(int value) {this.value value;this.next null;}Overridepublic String toString() {return "ListNode{" &q…

Kotlin 移动端多平台

支持多平台编程是 Kotlin 的主要优势之一。它减少了为不同平台编写和维护相同代码所花费的时间&#xff0c;同时保留了本机编程的灵活性和优势。 1. 基本概念 KMM&#xff1a;Kotlin Multiplatform for mobile&#xff08;移动设备的 Kotlin 多平台&#xff09; KMM 多平台的主…

使用的uview 微信高版本 头像昵称填写能力

<template><view><button class"cu-btn block bg-blue margin-tb-sm lg" tap"wxGetUserInfo">一键登录</button><view><!-- 提示窗示例 --><u-popup :show"show" background-color"#fff">&…