PneumoLLM:少样本大模型诊断尘肺病新方法

PneumoLLM:少样本大模型诊断尘肺病新方法

    • 提出背景
    • PneumoLLM 框架
    • 效果

 


提出背景

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

代码:https://github.com/CodeMonsterPHD/PneumoLLM/tree/main

 

历史问题及其背景:

  1. 数据稀缺性问题:尘肺病的诊断数据不足,特别是在缺乏经济发展、医疗资源和专业医疗人员的地区。

    • 背景:尘肺病多发生于长期暴露于含尘环境的个体,如建筑工地或煤矿,而这些地区往往医疗资源匮乏,数据收集困难。
  2. 传统预训练和微调策略的局限性:在数据稀缺的条件下,传统的预训练和微调方法效果不佳。

    • 背景:预训练模型需要大量标记数据来优化权重分布,但尘肺病的有效诊断数据不足,限制了这种方法的应用。

在这里插入图片描述
这张图展示了三种不同的方法来结合视觉(图像)和语言(文本)信息进行医学诊断。

这张图说明了从传统的视觉-语言对比学习到利用LLM进行直接图像诊断的进化路径。

最新的方法(c)简化了流程,省略了文本输入的步骤,直接利用图像数据,通过LLM进行医学诊断,形成了一个简单有效的诊断管道。

(a) 视觉-语言对比学习(Vision-Language Contrastive Learning):

  • 这个方法使用图像编码器将图像转换为视觉表示,同时使用文本编码器将文本转换为语言表示。
  • 然后,这些表示用于进行对比学习,目的是使模型学会将视觉信息和语言信息对齐,从而改善多模态表示。

比如诊断尘肺病,用一个图像编码器来分析X射线图像,并用文本编码器来理解医生的诊断报告。

然后,模型通过对比这两种信息来学习它们之间的关联。

 

(b) 视觉-语言对齐(Vision-Language Alignment):

  • 在这种方法中,图像首先通过图像编码器处理,文本则通过文本分词器处理。
  • 处理后的视觉和语言标记输入到大型语言模型(LLM)中,该模型根据输入的图像和文本生成诊断文本描述。

比如诊断尘肺病,使用一个文本分词器和图像编码器来处理数据,然后让LLM根据视觉标记和文本信息一起工作,生成更准确的诊断描述。

更准确的诊断描述,主要是因为它不仅仅看图像,还听文字。

想象一下,如果医生只看X光片,而不考虑患者的症状描述,那么有时候他可能会错过重要的线索。

但如果医生在看X光片的同时,还听了患者的症状讲述,那么他对患者的状况就会有更全面的了解,从而做出更准确的诊断。
 

© 利用LLM诊断图像(Harnessing LLM to Diagnose Images):

  • 此方法直接使用图像编码器处理图像,不涉及文本输入。
  • 编码后的图像被转换为视觉标记,并直接输入到LLM中。
  • LLM基于视觉标记进行处理,最终直接输出诊断结果,比如判断图像是显示尘肺病(Pneumo.)还是健康(Health)。

比如诊断尘肺病,只使用图像编码器来处理X射线图像,并将编码后的视觉标记直接输入到LLM中。

LLM能够独立分析这些视觉标记,并直接给出一个二元诊断结果——表示图像是健康的还是表明有尘肺病。

这个方法不仅加快了诊断过程(因为它不再需要详细的文本报告),而且还允许团队快速筛选大量的X射线图像,识别出可能的尘肺病症状,这在资源有限的医疗环境中尤其有价值。

在方法©中,LLM通过大量的学习已经变得非常擅长识别图像中的病理特征,它不再需要依赖文本描述来辅助诊断。

它可以直接从图像中识别出健康和尘肺病的标志,然后给出诊断。

这就像是一个经验丰富的医生能够凭借专业的直觉快速诊断,而不需要每次都进行详尽的病史调查。

这种方法旨在减少对大量标记数据的依赖,同时提高诊断的准确性。
 

之所以用这个解法,是因为问题的那个特征:

  1. 直接利用LLMs处理图像的方法:避免传统的文本处理分支,直接通过LLMs处理图像来诊断尘肺病。
    • 特征:LLMs在处理大量语料时学到的知识能够帮助筛选出图像中的关键视觉标记,提高医学图像诊断的准确性。

我们直接将X射线图像输入到经过大规模语料库训练的LLM中。模型已经学习了大量的视觉和文本数据,使其能够理解和处理图像内容。

LLM识别出图像中的关键视觉标记,比如肺部的纤维化斑点,这些是尘肺病的典型迹象。通过分析这些视觉标记,模型直接提供了一个初步的尘肺病诊断结果,大大提高了诊断的准确性。

 

  1. 上下文多标记引擎:生成与图像标记条件相关的诊断标记,确保源图像标记保留所有相关的图像细节。
    • 特征:这种方法能够在保留图像表示的同时,利用LLMs的诊断智能,达到保留图像细节与诊断智能之间的平衡。

尽管LLM已经提供了初步诊断,但为了进一步提高精度,需要确保模型能够充分理解和利用图像中的所有细节信息。

引入上下文多标记引擎,该引擎生成与图像标记条件相关的诊断标记。

这意味着模型不仅分析了肺部的纤维化斑点,还考虑了图像中的其他相关特征,如肺部阴影的分布和形状,以及与尘肺病相关的其他可视迹象。

通过这种方法,确保了从图像中提取的信息是全面而细致的,提高了模型对尘肺病的诊断能力,同时保持了对图像细节的高度敏感性。

 

  1. 信息发射模块:从源标记到诊断标记单向发射信息,引导学习过程朝向准确的诊断。
    • 特征:通过精确控制信息的流动,这个模块帮助模型集中于对尘肺病的诊断,优化了学习轨迹。

有了全面的图像理解,下一步是确保这些信息能够有效地指导诊断过程。

信息发射模块被设计来从源标记(即图像的各个部分)向诊断标记单向发射信息。

这个过程涉及到从图像细节中抽象出诊断所需的关键信息,并将这些信息集中起来,形成一个明确的诊断结果。

这个模块的作用确保了诊断过程是有针对性的,能够忽略不相关的信息,专注于对尘肺病诊断有决定性意义的视觉标记。

最终,模型提供了一个准确和可靠的尘肺病诊断结果,优化了学习轨迹,提高了整体的诊断效率和准确性。

 
通过结合LLMs的强大图像处理能力和为尘肺病诊断专门设计的新型模块(上下文多标记引擎和信息发射模块),PneumoLLM框架能够有效地克服数据稀缺性问题和传统策略的局限性,为尘肺病等职业病的诊断提供了一个简化而高效的新途径。

 
总结:

  1. 逻辑起点是面对的主要挑战——数据稀缺性问题

    这个问题是由于尘肺病多发生在资源匮乏的地区,导致有效诊断数据难以收集,从而影响了疾病诊断的准确性和效率。

  2. 紧接着,传统方法——预训练和微调策略的局限性。

    这些策略在数据丰富的条件下效果显著,但在数据稀缺的情况下效果大打折扣,因为它们依赖大量标记数据进行模型优化。

  3. 为了解决上述两个问题,提出了直接利用LLMs处理图像的新方法

    这种方法避免了传统文本处理分支的需求,能直接从图像中提取关键信息,以LLMs学到的知识为基础,提高了对尘肺病的诊断准确性。

  4. 进一步地,为了优化这一方法,引入了上下文多标记引擎信息发射模块两个专门设计的模块。

    这些模块的加入,不仅保持了图像细节的完整性,同时确保了模型能够更加专注和有效地学习对尘肺病的诊断,进一步提高了诊断的精确度和效率。

首先识别挑战,然后通过创新的方法和专门设计的模块来解决这些挑战,最终实现了一个既能克服数据稀缺性问题又能有效诊断尘肺病的新框架——PneumoLLM。

 

PneumoLLM 框架

在这里插入图片描述

这幅图是PneumoLLM框架的图解,这是一个用于处理胸部X光图像并诊断尘肺病的系统。

整个流程分为几个关键步骤:

  1. 视觉编码器:首先,胸部X光图像经过视觉编码器处理。

    这个编码器负责提取图像的特征,并将这些特征转换为一系列的“源标记”(Source Tokens),这些标记包括一个特殊的分类标记(Class Token),通常在自监督学习模型中用作整体图像的代表。

    假设医院收到了一个矿工的胸部X光图像。

    这张图像首先通过视觉编码器,该编码器识别图像中的关键特征,如肺部的阴影和纹理变化,并将这些特征转换成一组源标记,包括一个代表整体图像的分类标记。

  2. LLM Transformer层:然后,这些源标记被传递到一系列的LLM Transformer层。

    这些层通过自我注意力机制加深模型对图像特征的理解,能够捕捉不同部分之间的复杂关系。

    接着,源标记输入到LLM Transformer层。

    在这里,模型使用注意力机制来探索不同标记之间的关系,理解哪些特征是诊断尘肺病的关键指标。

  3. 上下文多标记引擎:此外,图中展示了一个“上下文多标记引擎”(Contextual Multi-Token Engine)。

    这个引擎接受源标记,并生成一系列的“诊断标记”(Generated Diagnosis Tokens),这些标记为诊断任务提供了更丰富的上下文信息和诊断线索。

在这里插入图片描述

上图展示了如何生成额外的诊断标记,这些标记用于辅助尘肺病的诊断。

“源标记”通过多层感知机(MLP)处理,然后经过Softmax规范化生成“注意力掩码”。

注意力掩码用于加权源标记,通过一个矩阵转置操作生成“诊断标记”。

这个过程可以加强模型对诊断所需上下文的理解。

  1. 信息发射模块:在LLM Transformer层内,设计有一个“信息发射模块”(Information Emitter Module)。

    这个模块确保从源标记到诊断标记的信息流是单向的,即信息只能从源标记流向诊断标记,这样做可以保留完整的放射学源细节,并汇总关键的诊断信息。

在这里插入图片描述
描述了如何将信息从源标记传递到诊断标记,同时保留源标记的完整性。

展示了源标记之间的自注意力机制(a),信息从源标记发射到诊断标记的过程(b),以及诊断标记之间没有信息交换©。

这种设计保持了源标记的一致性,同时允许新生成的诊断标记利用这些信息进行更精确的诊断推理。

  1. 分类器:最后,经过处理的诊断标记被送入分类器,该分类器基于累积的诊断信息来决定图像是表示尘肺病还是正常。

 

核心逻辑:

子解法1:PneumoLLM框架

  • 特征:为了解决数据稀缺性的问题,PneumoLLM使用视觉编码器和LLM联合处理图像,抽取关键信息进行诊断。

子解法2:上下文多标记引擎和信息发射模块

  • 特征:为了有效结合视觉编码器和LLM的知识,并产生上下文诊断标记,设计了上下文多标记引擎和信息发射模块。

子解法3:适配器层

  • 特征:为了避免破坏LLM的稳健表示,引入了适配器层以适应视觉编码器和LLM模型,保持LLM原有结构的同时,提供了新的信息流。

举例:

  1. 视觉编码阶段:一个矿工的胸部X光图像被输入到系统中。视觉编码器处理图像并提取源标记,这是解决数据稀缺性问题的第一步。

  2. 上下文增强阶段:通过上下文多标记引擎生成额外的上下文诊断标记,并通过信息发射模块确保信息的单向流动。这是为了适应具体的诊断任务而设计的。

  3. 适配器转换阶段:使用适配器层将视觉特征转换为LLM兼容的维度,然后将这些特征输入到LLM中。这保持了LLM的原有结构,并且能够处理由于参数空间变化带来的挑战。

  4. 分类诊断阶段:最后,LLM处理并输出最终的分类分数,用于确定患者是否患有尘肺病。这是PneumoLLM框架的最终目标,通过交叉熵损失函数训练适配器层、多标记引擎和分类网络,保持其他参数固定。
     


效果

优于其他方法:
在这里插入图片描述
红色代表尘肺病,蓝色代表正常:
在这里插入图片描述
PneumoLLM 展示了较为紧密的同类点聚合和不同类别间的清晰分隔,这表明其具有较强的特征表示能力。

在这里插入图片描述
PneumoLLM在大多数情况下正确诊断出健康和疾病图像,相比其他方法具有更高的信心分数和准确率。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

大型秒杀中如何减库存?JAVA 架构知识

目前来看,业务系统中最常见的就是预扣库存方案,像你在买机票、买电影票时,下单后一般都有个“有效付款时间”,超过这个时间订单自动释放,这都是典型的预扣库存方案。而具体到秒杀这个场景,应该采用哪种方案…

【leetcode热题100】分隔链表

给你一个链表的头节点 head 和一个特定值 x ,请你对链表进行分隔,使得所有 小于 x 的节点都出现在 大于或等于 x 的节点之前。 你应当 保留 两个分区中每个节点的初始相对位置。 示例 1: 输入:head [1,4,3,2,5,2], x 3 输出&am…

AB测试最小样本量

1.AB实验过程 常见的AB实验过程,分流-->实验-->数据分析-->决策:分流:用户被随机均匀的分为不同的组实验:同一组内的用户在实验期间使用相同的策略,不同组的用户使用相同或不同的策略。数据收集:…

掌握JXLS:高效Java Excel处理库的终极指南

jxls是一个轻量级的Java库,用于基于模板的Excel报表生成。 jxls作为一个开源工具,提供了一种高效且易于维护的方式来处理复杂的Excel导出需求。它允许用户通过在Excel模板中放置特定的标记或注释来定义数据的输出格式和布局,从而避免了编写大…

MySQL篇之回表查询

一、聚集索引 将数据存储与索引放到了一块,索引结构的叶子节点保存了行数据。特点:必须有,而且只有一个。 聚集索引选取规则: 1. 如果存在主键,主键索引就是聚集索引。 2. 如果不存在主键,将使用第一个唯一(UNIQUE&am…

Peter算法小课堂—枚举优化

哈哈哈,新年快乐!这一次Peter将要给大家讲一讲轻松、摆烂的算法—枚举!咋就是说呀,枚举这个玩意我语法就会了。但大家想想,咱们CSP考试时(除了没过初赛的)只给1秒,大家想想&#xff…

第6章 智能租房——前期准备

学习目标 了解智能租房项目,能够说出项目中各模块包含的功能 熟悉智能租房项目的开发模式与运行机制,能够复述项目的开发模式与运行机制 掌握智能租房项目的创建,能够独立创建智能租房项目 掌握智能租房项目的配置,能够为智能租…

四、机器学习基础概念介绍

四、机器学习基础概念介绍 1_机器学习基础概念机器学习分类1.1 有监督学习1.2 无监督学习 2_有监督机器学习—常见评估方法数据集的划分2.1 留出法2.2 校验验证法(重点方法)简单交叉验证K折交叉验证(单独流出测试集)(常…

江科大STM32 终

目录 SPI协议10.1 SPI简介W25Q64简介10.3 SPI软件读写W25Q6410.4 SPI硬件外设读写W25Q64 BKP备份寄存器、PER电源控制器、RTC实时时钟11.0 Unix时间戳代码示例:读写备份寄存器BKP11.2 RTC实时时钟 十二、PWR电源控制12.1 PWR简介代码示例:修改主频12.3 串…

arkTS开发鸿蒙OS应用(登录页面实现,连接数据库)

前言 喜欢的朋友可在抖音、小红书、微信公众号、哔哩哔哩搜索“淼学派对”。知乎搜索“编程淼”。 前端架构 Toubu.ets import router from ohos.router Component export struct Header{build(){// 标题部分Row({space:5}){Image($r(app.media.fanhui)).width(20).onClic…

Mysql-数据库优化-客户端连接参数

客户端参数 原文地址 # 连接池配置 # 初始化连接数 spring.datasource.druid.initial-size1 # 最小空闲连接数,一般设置和initial-size一致 spring.datasource.druid.min-idle1 # 最大活动连接数,一个数据库能够支撑最大的连接数是多少呢? …

【Spring】springmvc如何处理接受http请求

目录 ​编辑 1. 背景 2. web项目和非web项目 3. 环境准备 4. 分析链路 5. 总结 1. 背景 今天开了一篇文章“SpringMVC是如何将不同的Request路由到不同Controller中的?”;看完之后突然想到,在请求走到mvc 之前服务是怎么知道有请求进来…

使用QT编写一个简单QQ登录界面

widget.cpp #include "widget.h" #include "ui_widget.h"Widget::Widget(QWidget *parent): QWidget(parent), ui(new Ui::Widget) {ui->setupUi(this);//设置窗口标题this->setWindowTitle("QQ");//设置窗口图标this->setWindowIcon(…

3.2-媒资管理之MinIo分布式文件系统+上传图片

媒资管理 3 分布式文件系统 3.1 什么是分布式文件系统 要理解分布式文件系统首先了解什么是文件系统。 查阅百度百科: 文件系统是负责管理和存储文件的系统软件,操作系统通过文件系统提供的接口去存取文件,用户通过操作系统访问磁盘上的文…

5.常量和数据类型(数字类型,字符串类型,模板字符串,布尔类型undefined,null检测数据类型),类型转化

什么是常量 常量就是不能改变的量&#xff0c;就是向计算机内存要一款空间然后存储的东西不能改变用const声明并且一定要初始化值 <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><meta http-equiv"X-UA-C…

SAP-PS-001-006问题预算占用与订单实际金额不一致

前言 PS模块最复杂的业务场景主要就是ETO&#xff08;Engineering-To-Order&#xff09;&#xff0c;也就是边设计边生产边采购的三边业务。 意味着从前端设计开始的成本就已经要进行收集&#xff0c;其次对于大型非标设备的生产发货只是一个环节&#xff0c;发货后还会涉及到现…

STL之stack+queue的使用及其实现

STL之stackqueue的使用及其实现 1. stack&#xff0c;queue的介绍与使用1.1stack的介绍1.2stack的使用1.3queue的介绍1.4queue的使用 2.stack&#xff0c;queue的模拟实现2.1stack的模拟是实现2.2queue的模拟实现 3.总结 所属专栏&#xff1a;C“嘎嘎" 系统学习❤️ &…

API网关架构设计与实现的经验总结与实践

API网关是现代微服务架构中的重要组件&#xff0c;它充当了前端和后端微服务之间的中介。本文将介绍API网关的架构设计原则和实现方法&#xff0c;以帮助开发人员更好地理解和应用这些技术。 1. 什么是API网关&#xff1f; - 解释了API网关的基本概念和作用&#xff0c;以及…

【c++入门】母牛生小牛

说明 有一头小母牛&#xff0c;从出生第四年起每年生一头小母牛&#xff0c;按此规律&#xff0c;第N年时有几头母牛&#xff1f; 输入数据 只有一个整数N&#xff0c;独占一行。(1≤N≤50) 输出数据 对每组数据&#xff0c;输出一个整数&#xff08;独占一行&#xff09;…

SAP-PS-02-003跨系统/Client请求传输和请求副本的创建

前言 某公司SAP服务器架构如下&#xff08;举例&#xff09;&#xff0c;一般进行SAP项目实施基本会遵循以下的系统和Client准则&#xff0c;那在不同系统和Client要如何进行请求传输呢 服务器 Client 作用 要求 DEV 100 业务顾问进行系统配置 所有配置均在该Client进行…
最新文章