KnoBo:医书学习知识,辅助图像分析,解决分布外性能下降和可解释性问题

KnoBo:从医书中学习知识,辅助图像分析,解决分布外性能下降问题

    • 提出背景
    • KnoBo 流程图
      • KnoBo 详解
        • 问题构成
        • 结构先验
        • 瓶颈预测器
        • 参数先验
    • 解法拆解
      • 逻辑链
      • 对比 CLIP、Med-CLIP
        • CLIP
        • Med-CLIP
        • KnoBo
    • 训练细节
      • 预训练过程
        • OpenCLIP的微调
      • 构建医学语料库
        • 文档收集
        • 文档管理
      • KnoBo实施细节
        • 概念生成
        • 概念固定
        • 训练与评估

论文:A Textbook Remedy for Domain Shifts: Knowledge Priors for Medical Image Analysis

代码:https://yueyang1996.github.io/knobo/

提出背景

在医学成像领域应用深度学习模型时面临的主要问题:当数据来源(如不同的医院或患者群体)发生变化时,模型的表现往往会大幅下降,这种现象被称为“域移动”。

由于医学数据集通常规模较小,且存在许多未被标识的混淆因素,这些都可能导致模型预测性能急剧下降,从而减弱了医疗专业人员对这些模型的信任。

为了解决这个问题,研究人员提出了一种新的模型设计方法,灵感来源于医学教育过程。

在医学教育中,学生首先通过教科书学习基础知识,然后在实际操作中进一步学习。

模型的设计模仿了这一学习过程:首先利用医学文献来识别和整合关键的医学知识,然后通过实例数据进行学习

具体来说,研究者开发了一种名为“知识增强瓶颈”(KnoBo)的模型结构,它在概念瓶颈模型(CBMs)的基础上进行扩展。

KnoBo的模型,它不仅分析图像的视觉特征,还结合了从医学教科书中提取的具体医学知识来提高其准确性和可靠性。

这种模型使用从医学教科书中提取的概念(如“图像中是否存在玻璃磨砂阴影?”)来帮助模型判断X光片是否显示出呼吸道感染的特征。

在一系列测试中,KnoBo模型在处理数据来源变化时显示出较传统模型更好的性能,尤其是在“分布外”(OOD,即模型未见过的新场景)的情况下,性能提升明显。

此外,研究还发现使用PubMed等医学数据库作为知识来源可以进一步提高模型的预测性能和信息多样性。

这项研究显示,将深入的医学知识整合到模型中,可以显著提高医学成像模型在面对数据变化时的鲁棒性,有助于在医疗实践中更广泛地应用这些先进的人工智能工具。

传统的方法(事后可解释性)可能无法提供真实可靠的解释。本研究采用了一种固有的可解释方法,即通过概念瓶颈模型(CBMs),这种模型通过组合预先定义的概念来作出预测,这些概念是由人类设计的,更易于理解。

本研究不是为每个案例单独检索知识,而是构建了一个全局的知识先验,这个先验是基于一个广泛的医学文档语料库,可以在所有案例中共享使用。

 

KnoBo 流程图

在这里插入图片描述

这幅图是一个关于“知识增强瓶颈”(KnoBo)系统的示意图,这是一种用于医学图像分类的模型。

  1. 结构先验(Structure Prior)

    • 这部分涉及利用医学文献(如PubMed、教科书等)构建一个可信的知识瓶颈。
    • 例如,它会从文献中提取出与COVID-19相关的胸部X光特征,如“玻璃磨砂阴影”。
  2. 瓶颈预测器(Bottleneck Predictor)

    • 这部分使用上述结构先验中的概念来评估输入的医学图像。
    • 系统会询问诸如“肺部是否有塌陷?”、“气管是否在中线位置?”等问题,通过这些问题的回答来分析图像。
  3. 参数先验(Parameter Prior)

    • 这里,线性层的学习受到预定义参数的约束,这些参数可能由医生或语言模型(LLMs)提前定义,以确保模型的预测与医学专业知识一致。

总体流程是:

  • 首先,对于一个具体的查询(如诊断X射线图中的COVID-19),系统从医学文献库中检索相关文档。
  • 使用这些文档来生成和确认关于图像中可能存在的病理特征的问题。
  • 输入的医学图像将被评估这些特征,如图中的X光图示例。
  • 最后,系统基于评估结果生成一个临床报告,表明测试是阳性还是阴性。

这种方法的目的是通过结合丰富的医学知识和深度学习技术,提高医学图像分析的准确性和可靠性。

 


没问题,我会尽量简化解释:

KnoBo 详解

整体概念

  • **知识增强瓶颈(KnoBo)**是一种机器学习模型,它将医学知识以“概念”的形式直接融入模型中,使得模型在处理医学图像时更加精准和可靠。
问题构成
  • 基本理念:模型通过两个步骤进行预测。

    首先,它将图像转换成一系列的“概念”,然后基于这些概念来预测图像的标签(如病情分类)。

  • 目标:目标是通过加入关于概念结构的先验知识(即在建模前就已知的信息)来优化模型的学习过程。

结构先验
  • 操作方法:首先定义需要的概念(如肺炎、肿瘤等医学特征),然后使用大型语言模型从大量文档中寻找与这些概念相关的信息,迭代地精细化这些概念。
  • 迭代过程:通过不断地从文档中提取信息并更新概念库,模型逐步构建一个能够高效识别和分类医学图像的概念结构。
瓶颈预测器
  • 功能:将输入的医学图像映射到概念空间(即识别图像中的医学概念),然后这些概念被用来预测图像的医学标签。
  • 概念固定:这一步骤涉及训练模型识别图像中是否存在特定的医学概念,比如通过分析图像与文本描述(如临床报告)之间的关系来学习。
参数先验
  • 目的:调整模型的参数以确保它们反映出医学知识中的概念与疾病标签之间的正确关联。
  • 实现方式:通过设定参数的先验分布,并在训练过程中调整参数使其不仅符合数据特征,也符合这些先验知识。

总结
通过这种方式,KnoBo模型不仅基于图像的视觉特征进行学习,还整合了丰富的医学知识,使得模型在进行医学图像分析时更为准确和可解释。

这种方法特别适用于需要高度精确诊断的医学领域。

解法拆解

KnoBo(知识增强瓶颈)模型旨在提高医学图像分类的准确性和鲁棒性,特别是在面对数据集中的混淆因素时。为达到这一目的,KnoBo采用了一系列子解法,结合了多个技术和方法来构建和优化模型。下面根据逻辑关系拆解KnoBo的具体解法和子解法:

  1. 概念瓶颈构建(子解法1)

    • 特征:需要一种方法来将医学专业知识直接整合到模型中,增强模型对医学图像的理解。
    • 原因:通过构建概念瓶颈,模型可以在预测时显式地参考医学领域的关键知识,这提高了模型的解释性和准确性。
    • 例子:如果模型识别出X光图像中的“肺部阴影”这一概念,它可以更准确地判断是否为肺炎。
  2. 知识驱动的特征提取(子解法2)

    • 特征:模型需要在处理图像时能够辨识出与医学诊断直接相关的视觉特征。
    • 原因:使用从医学文献中提取的知识来指导特征提取,可以使模型更好地识别与病理状态相关的图像特征,从而提高分类的精确度。
    • 例子:通过分析与“骨折”相关的医学文献,模型可以学习到在X光图像中识别特定类型的骨折线的视觉特征。
  3. 鲁棒性优化(子解法3)

    • 特征:需要提高模型对于数据集中混淆因素的抵抗能力。
    • 原因:通过在模型训练中考虑和评估混淆因素,可以让模型在遇到变化或异常情况时仍保持高准确率,即提高其鲁棒性。
    • 例子:在混淆数据集上训练时,模型学习区分年龄、性别等因素与疾病标签之间的假相关,从而在实际应用中减少误诊。

逻辑链

逻辑链结构如下:

  • 主解法:KnoBo模型
    • 子解法1:概念瓶颈构建
      • 引入医学领域知识,提高模型的专业准确性和解释性。
    • 子解法2:知识驱动的特征提取
      • 利用医学知识指导图像特征的提取,关注与医学诊断直接相关的视觉特征。
    • 子解法3:鲁棒性优化
      • 在模型设计中考虑混淆因素,提高模型对异常情况的适应性和鲁棒性。

这些子解法形成一个链条结构,每个解法都是为了解决模型在医学图像处理中可能遇到的具体问题,共同作用以提升最终的模型性能和可靠性。

对比 CLIP、Med-CLIP


KnoBo(Knowledge-enhanced Bottlenecks)在特定场景中可以表现得比CLIP或Med-CLIP更优,尤其是在需要高度医学知识整合和强解释性的医学图像分析任务中。

在这里插入图片描述

CLIP
  • 设计与目标:CLIP(Contrastive Language–Image Pre-training)由OpenAI开发,旨在通过自然语言描述学习视觉概念。它是为了广泛的图像理解而设计,不特定于医学图像。
  • 优势:CLIP强在处理大范围的图像类型和大量未标注数据,能够通过文本描述与图像内容之间的关联来进行分类和识别。
  • 局限:在专业性较强的领域(如医学图像分析),CLIP可能不如专门针对该领域优化的模型表现出色,因为它缺乏具体领域的深入知识。
Med-CLIP
  • 设计与目标:Med-CLIP是CLIP的一个变种,针对医学图像进行了优化,通过在医学图像和相关文本上进行预训练来改进。
  • 优势:在处理医学图像时,相比于标准的CLIP,Med-CLIP通过利用医学专业的数据集提高了模型对医学内容的理解和精度。
  • 局限:虽然比普通的CLIP模型更适用于医学图像,但Med-CLIP可能还是缺乏足够的医学知识深度,特别是在具体病理特征的识别和解释方面。
KnoBo
  • 设计与目标:KnoBo专为解决医学图像分析中的高复杂性问题而设计,通过集成明确的医学知识(概念瓶颈)来增强模型的解释能力和准确性。
  • 优势:KnoBo在处理需要高度专业知识和高度解释性的医学图像分析任务时,能够提供更准确的诊断支持。它通过直接利用医学文献中的知识来改善诊断结果的相关性和准确性。
  • 局限:KnoBo的设计和实现可能比CLIP或Med-CLIP更为复杂,需要更多的定制化开发和维护。

KnoBo在需要深度医学知识和高度解释性的医学图像分析任务上可能比CLIP和Med-CLIP更强,特别是在准确性和用户信任方面。

然而,在通用图像识别任务或少量标注数据的场景中,CLIP和Med-CLIP可能更具优势。

训练细节

知识增强瓶颈(KnoBo)模型进行医学图像分类的全流程训练步骤,包括预训练、构建医学语料库和实施KnoBo细节。

预训练过程

预训练是训练深度学习模型之前的一个重要步骤,特别是在处理需要大量专业知识的领域如医学图像时。

OpenCLIP的微调
  • 模型选择:选择OpenCLIP模型,这是一个基于Transformer的大规模视觉-语言预训练模型,原本在多种数据集上训练,能理解图像内容与文本描述之间的关联。
  • 数据准备:收集医学相关的图像与其对应的临床报告。这些报告通常包含了描述图像内容的详细信息,如病变特征、诊断结果等。
  • 文本预处理:与其使用完整的临床报告,不如提取关键短语或重要信息,因为这样更能突出对图像内容的直接描述,减少噪声数据的干扰。
  • 微调:在医学专用的预训练数据上进行OpenCLIP的微调,使模型更好地适应医学图像的解读。

构建医学语料库

医学语料库是进行概念生成和检索的基础,包括以下步骤:

文档收集
  • 来源:从PubMed等医学数据库下载大量医学文章,涵盖各种医学主题和病例分析。
  • 文档整理:将下载的文章分割成较小的文本片段或摘要,以便于后续处理和检索。
文档管理
  • 索引构建:使用信息检索技术如BM25对文档片段进行索引,便于快速准确地检索相关内容。

KnoBo实施细节

KnoBo模型的实施是整个过程的核心,具体包括:

概念生成
  • 语言模型选择:采用GPT-4作为概念生成的底层语言模型。GPT-4因其强大的语言理解能力和生成能力,适合此任务。
  • 概念检索与生成:使用从医学语料库检索到的相关文档作为输入,让GPT-4生成与医学图像相关的概念。这些概念后续将用于训练和预测。
概念固定
  • 工具选择:使用Flan-T5-XXL模型来标注每个概念在具体临床报告中的存在与否,此步骤对应于从语言模型生成的文本中提取与图像对应的具体概念。
  • 成本效率:选择Flan-T5-XXL也考虑到了成本效率,以实现高效的标注。
训练与评估
  • 训练:在上述生成的概念和固定的基础上,训练KnoBo模型对医学图像进行分类。
  • 评估:在训练集、验证集和测试集上评估模型的性能,特别是在混淆和非混淆数据集上的表现。

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

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

相关文章

【Nuxt3】vue3+tailwindcss+vuetify引入自定义字体样式

一、目的 在项目中引入自定义的字体样式(全局页面都可使用) 二、步骤 1、下载好字体 字体的后缀可以是ttf、otf、woff、eot或者svg(推荐前三种) 以抖音字体为例下载好放在静态文件夹(font)下 案例字…

notepad++中文出现异体汉字,怎么改正

notepad显示异体字,如何恢复? 比如 “门” 和 “直接” 的"直"字,显示成了 方法 修改字体, 菜单栏选择 Settings(设置),Style Configurator…(语言格式设置…)&#xf…

《昇思25天学习打卡营第22天|onereal》

文本解码原理--以MindNLP为例 回顾:自回归语言模型 根据前文预测下一个单词 一个文本序列的概率分布可以分解为每个词基于其上文的条件概率的乘积 𝑊_0:初始上下文单词序列𝑇: 时间步当生成EOS标签时,停止生成。 MindNLP/huggi…

C++基础(三)

1.再探构造函数 之前的构造函数,初始化成员变量主要使用函数体内赋值,构造函数初始化还有一种方式,就是初始化列表,初始化列表的使用方式是以一个冒号开始,接着是一个以逗号分隔开的数据成员列表,每个“成…

【JavaScript】解决 JavaScript 语言报错:Uncaught SyntaxError: Unexpected identifier

文章目录 一、背景介绍常见场景 二、报错信息解析三、常见原因分析1. 缺少必要的标点符号2. 使用了不正确的标识符3. 关键词拼写错误4. 变量名与保留字冲突 四、解决方案与预防措施1. 检查和添加必要的标点符号2. 使用正确的标识符3. 检查关键词拼写4. 避免使用保留字作为变量名…

C# 解析省份、城市、区域 json文件

一、json文件内容如下,(小程序里好像有用到...): 二、读取包含省份城市区域的json文件,并整理成想要的结果: string path Server.MapPath("/js"); string file System.IO.Path.Combine(path, "数据.…

数字孪生技术在元宇宙的应用

数字孪生技术与元宇宙有着天然的契合性,两者在技术、应用场景等方面都具有高度的互补性。数字孪生技术可以为元宇宙提供逼真、实时的数据模型和场景,而元宇宙可以为数字孪生技术提供广阔的应用平台和场景。北京木奇移动技术有限公司,专业的软…

从零开始学习深度学习库-5:自动微分(续)

引言 欢迎来到这个从头开始构建深度学习库系列的第5部分。这篇文章将介绍库中自动微分部分的代码。自动微分在上一篇文章中已经讨论过了,所以如果你不知道自动微分是什么,请查看一下。 自动微分系统的核心是计算图,这是一种有向图&#xff…

仅在少数市场发售?三星Galaxy Z Fold 6 Slim折叠屏手机更轻更薄

在智能手机的创新之路上,三星一直是行业的领跑者之一。随着Galaxy Z Fold系列的不断进化,三星再次突破技术边界,推出了更为轻薄的Galaxy Z Fold 6 Slim。 这款新型折叠屏手机以其独特的设计和卓越的性能,为用户带来了全新的使用体…

浅谈RLHF---人类反馈强化学习

浅谈RLHF(人类反馈强化学习) RLHF(Reinforcement Learning fromHuman Feedback)人类反馈强化学习 RLHF是[Reinforcement Learning from Human Feedback的缩写,即从人类反馈中进行强化学习。这是一种结合了机器学习中…

java实现资产管理系统图形化用户界面

创建一个💕资产管理系统的GUI(图形用户界面)❤️画面通常需要使用Java的Swing或者JavaFX库。下面我将提供一个简单的资产管理系统GUI的示例代码,使用Java Swing库来实现。这个示例将包括一个主窗口,一个表格来显示资产…

SD card知识总结

一、基础知识 1、简介 SD Card 全称(Secure Digital Memory Card),日本电子公司松下(Panasonic)、瑞典公司爱立信(Ericsson)、德国公司西门子(Siemens)共同开发的,于1999年发布根…

网络文件系统—NFS

目录 一、概述 二、NFS挂载原理 三、NFS相关协议及软件安装管理 1.协议: 2.软件: 四、NFS系统守护进程 五、NFS服务器的配置 六、NFS服务器的启动与停止 1. 启动NFS服务器 2.查询NFS服务器状态 3.停止NFS服务器 4.设置NFS服务器的自动启动状…

Redis的配置优化、数据类型、消息队列

文章目录 一、Redis的配置优化redis主要配置项CONFIG 动态修改配置慢查询持久化RDB模式AOF模式 Redis多实例Redis命令相关 二、Redis数据类型字符串string列表list集合 set有序集合sorted set哈希hash 三、消息队列生产者消费者模式发布者订阅者模式 一、Redis的配置优化 redi…

【java计算机毕设】网上购书管理系统MySQL servlet JSP项目设计源代码 期末寒暑假作业 小组作业

目录 1项目功能 2项目介绍 3项目地址 1项目功能 【java计算机毕设】网上购书管理系统MySQL servlet JSP项目设计源代码 期末寒暑假作业 小组作业 2项目介绍 系统功能: servlet网上购书管理系统包括管理员、用户两种角色。 管理员功能包括订单管理(已…

pytorch中一些最基本函数和类

1.Tensor操作 Tensor是PyTorch中最基本的数据结构,类似于NumPy的数组,但可以在GPU上运行加速计算。 示例:创建和操作Tensor import torch# 创建一个零填充的Tensor x torch.zeros(3, 3) print(x)# 加法操作 y torch.ones(3, 3) z x y pr…

放大电路中的反馈

一、基本概念 根据反馈的效果可以区分反馈的极性,使基本放大电路净输入量增强的反馈为正反馈,使基本放大电路净输入量减弱的反馈为负反馈。 二、判断反馈极性 瞬时极性法:首先规定电路输入信号在某一时刻对地的极性,并逐级判断电…

Arch升级后启动变慢

systemd-analyze blame refector.service 耗时2分钟! 安全检查:检测镜像速度排序写入源,这个更新时运行不就行了,没必要每次启动时运行啊! 禁止服务:systemctl disable reflector.service

【C++】——类和对象(上)

文章目录 什么是类和对象类的定义类的访问限定符及其封装类的作用域类的实例化类的对象的大小计算this指针 什么是类和对象 类是一个用户定义的类型,它封装了数据(称为属性或成员变量)和操作这些数据的方法(称为成员函数或方法&a…

23种设计模式之责任链模式

责任链模式 1、定义 避免将一个请求的发送者与接受者耦合在一起,让多个对象都有机会处理请求。将接受请求的对象连接成一条链,并且沿着这条链传递请求,直到有一个对象能够处理它为止 2、责任链模式结构 Handler(抽象处理者):定…