当前位置: 首页 > news >正文

TransMIL:基于Transformer的多实例学习

MIL是弱监督分类问题的有力工具。然而,目前的MIL方法通常基于iid假设,忽略了不同实例之间的相关性。为了解决这个问题,作者提出了一个新的框架,称为相关性MIL,并提供了收敛性的证明。基于此框架,还设计了一个基于Transformer的MIL (TransMIL)。TransMIL可以有效地处理不平衡/平衡和二元/多分类,具有良好的可视化和可解释性。在CAMELYON16数据集上,二元肿瘤分类的测试AUC高达93.09%。在TCGANSCLC和TCGA-RCC数据集上,癌症亚型分类的AUC分别高达96.03%和98.82%。

来自:TransMIL: Transformer based Correlated Multiple Instance Learning for Whole Slide Image Classification

目录

  • 背景概述
  • 方法
    • 如何应用Transformer到相关性MIL

背景概述

WSI将活检切片上的组织转换成完全保留原始组织结构的十亿像素图像。然而,WSI中基于深度学习的活检诊断由于像素空间庞大导致缺乏像素级标注。为了解决这个问题,通常采用MIL将诊断分析作为一个弱监督学习问题。

在基于深度学习的MIL中,一个简单的想法是对CNN提取的instance特征嵌入进行pooling操作。Ilse等人提出了一种基于注意力的聚合算子,通过可训练的注意力为每个实例提供额外的贡献信息。此外,Li将非局部注意力引入了MIL问题。通过计算得分最高的实例与其他实例之间的相似度,赋予每个实例不同的注意力权重,从而得到可解释的注意力图。

然而,所有这些方法都基于这样的假设:每个bag中的所有实例都是独立且同分布的。虽然在许多任务中取得了一些改进,但在许多情况下,这种假设并不完全有效。实际上,在做出诊断决定时,病理学家通常会同时考虑单个区域周围的环境信息和不同区域之间的相关信息。因此,在MIL诊断中考虑不同instance之间的相关性是可取的。

目前,Transformer由于具有较强的描述序列中不同token之间的相关性以及对远距离信息建模的能力,被广泛应用于视觉任务中。如图1所示,Transformer采用自注意力机制,可以关注序列内每个token之间的两两相关性。然而,传统的Transformer受到其计算复杂性的限制,只能处理较短的序列(例如,小于1000或512)。因此,它不适合WSI等大尺寸图像。
fig1

  • 图1:决策过程图示。MIL注意力机制:遵循iid假设。自注意机制:属于相关性MIL。

方法

以二元MIL为例,我们想要预测target value Y i ∈ { 0 , 1 } Y_{i}\in\left\{0,1\right\} Yi{0,1},给定一个bag X i X_{i} Xi(instance为 { x i , 1 , x i , 2 , . . . , x i , n } \left\{x_{i,1},x_{i,2},...,x_{i,n}\right\} {xi,1,xi,2,...,xi,n}),其中 i = 1 , . . , b i=1,..,b i=1,..,b,实例级标签是未知的: { y i , 1 , y i , 2 , . . . , y i , n } \left\{y_{i,1},y_{i,2},...,y_{i,n}\right\} {yi,1,yi,2,...,yi,n},bag标签是已知的,并且与实例标签有联系:
eq1
b b b是袋的总数, n n n是第 i i i个袋里的实例数, n n n的个数可以根据不同的袋而变化。

关于相关性MIL的优势,文中给出了证明,但是在此略过。主要意思是:

  • 考虑实例相关性可以具有更小的信息熵,从而减少不确定性,为MIL带来更多有效信息。TransMIL与过去方法的主要区别如图2

fig2

  • 图2:不同pooling矩阵 P P P的差异。假设从a中的WSI采样5个instance, P ∈ R 5 × 5 P\in\R^{5\times 5} PR5×5是对应的pooling矩阵,其中对角线内的值表示instance自身的注意力权重,其余值表示不同instance之间的相关性。b,c,d 都忽略了相关信息,因此 P P P是对角矩阵。在b中,第一个实例是由Max-pooling算子选择的,所以在对角线位置只有一个非零值。在c中,由于Mean-pooling运算符,对角线内的所有值都是相同的。在d中,由于引入的是bypass注意力,对角线内的值可能会发生变化。但其余位置为0(独立同分布假设)。e服从相关性假设,因此在非对角线位置存在非零值,表示不同实例之间存在相关性。

对于MIL的pooling,这里有一个通用的三步法:
ag1

  • 形态信息:morphological,空间信息:spatial

如何应用Transformer到相关性MIL

Transformer使用自注意力机制对序列中所有令牌之间的交互进行建模,位置信息的添加进一步增加了顺序信息。因此,将Transformer引入相关性MIL问题是合理的,其中函数 h h h对实例之间的空间信息进行编码,pooling矩阵 P P P使用自注意力进行信息聚合。为了说明这一点,进一步给出一个正式的定义。

给定一个bag集合 { X 1 , . . . , X b } \left\{X_{1},...,X_{b}\right\} {X1,...,Xb},每个bag对应一个标签 Y i Y_{i} Yi。目标是学习映射: X → T → Y \mathbb{X} \rightarrow \mathbb{T}\rightarrow \mathbb{Y} XTY,即从bag空间,到Transformer空间,再到标签空间。

为了更好地描述 X → T \mathbb{X} \rightarrow \mathbb{T} XT的映射,作者设计了一个包含两个Transformer层和一个位置编码层的TPT模块,其中Transformer层用于聚合形态信息,PPEG (Pyramid position encoding Generator)用于编码空间信息。所提出的基于MIL (TransMIL)的Transformer的概述如图3所示。

fig3

  • 图3:每个WSI被裁剪成patch(背景被丢弃),并被ResNet50嵌入到特征向量中。然后用TPT模块对序列进行处理:1)序列的平方;2)序列相关性建模;3)条件位置编码与局部信息融合;4)深度特征聚合;5) T → Y \mathbb{T}\rightarrow \mathbb{Y} TY的映射。

序列来自每个WSI中的特征嵌入。TPT模块的处理步骤如算法2所示,其中MSA表示多头自注意力,MLP表示多层感知机,LN表示 Layer Norm。
ag2

相关文章:

TransMIL:基于Transformer的多实例学习

MIL是弱监督分类问题的有力工具。然而,目前的MIL方法通常基于iid假设,忽略了不同实例之间的相关性。为了解决这个问题,作者提出了一个新的框架,称为相关性MIL,并提供了收敛性的证明。基于此框架,还设计了一…...

3.用户程序与驱动交互

驱动程序请使用第二章https://blog.csdn.net/chenhequanlalala/article/details/140034424 用户app与驱动交互最常见的做法是insmod驱动后,生成一个设备节点,app通过open,read等系统调用去操作这个设备节点,这里先用mknode命令调…...

尽量不写一行if...elseif...写出高质量可持续迭代的项目代码

背景 无论是前端代码还是后端代码,都存在着定位困难,不好抽离,改造困难的问题,造成代码开发越来越慢,此外因为代码耦合较高,总是出现改了一处地方,然后影响其他地方,要么就是要修改…...

xcrun: error: unable to find utility “simctl“, not a developer tool or in PATH

目录 前言 一、问题详情 二、解决方案 1.确认Xcode已安装 2.安装Xcode命令行工具 3.指定正确的开发者目录 4. 确认命令行工具路径 5. 更新PATH环境变量 前言 今天使用cocoapods更新私有库的时候,遇到了"xcrun: error: unable to find utility &…...

【linux高级IO(一)】理解五种IO模型

💓博主CSDN主页:杭电码农-NEO💓   ⏩专栏分类:Linux从入门到精通⏪   🚚代码仓库:NEO的学习日记🚚   🌹关注我🫵带你学更多操作系统知识   🔝🔝 Linux高级IO 1. 前言2. 重谈对…...

前端引用vue/element/echarts资源等引用方法Blob下载HTML

前端引用下载vue/element/echarts资源等引用方法 功能需求 需求是在HTML页面中集成Vue.js、Element Plus(Element UI的Vue 3版本)、ECharts等前端资源,使用Blob下载HTML。 解决方案概述 直接访问线上CDN地址:简单直接&#xff0c…...

昇思MindSpore学习笔记2-01 LLM原理和实践 --基于 MindSpore 实现 BERT 对话情绪识别

摘要: 通过识别BERT对话情绪状态的实例,展现在昇思MindSpore AI框架中大语言模型的原理和实际使用方法、步骤。 一、环境配置 %%capture captured_output # 实验环境已经预装了mindspore2.2.14,如需更换mindspore版本,可更改下…...

uniapp实现图片懒加载 封装组件

想要的效果就是窗口滑动到哪里&#xff0c;哪里的图片进行展示 主要原理使用IntersectionObserver <template><view><image error"HandlerError" :style"imgStyle" :src"imageSrc" :id"randomId" :mode"mode&quo…...

持续交付:自动化测试与发布流程的变革

目录 前言1. 持续交付的概念1.1 持续交付的定义1.2 持续交付的核心原则 2. 持续交付的优势2.1 提高交付速度2.2 提高软件质量2.3 降低发布风险2.4 提高团队协作 3. 实施持续交付的步骤3.1 构建自动化测试体系3.1.1 单元测试3.1.2 集成测试3.1.3 功能测试3.1.4 性能测试 3.2 构建…...

VBA常用的字符串内置函数

前言 在VBA程序中&#xff0c;常用的内置函数可以按照功能分为字符串函数、数字函数、转换函数等等&#xff0c;本节主要会介绍常用的字符串的内置函数&#xff0c;包括Len()、Left()、Mid()、Right()、Split()、String()、StrConV()等。 本节的练习数据表以下表为例&#xff…...

大数据面试题之Spark(7)

目录 Spark实现wordcount Spark Streaming怎么实现数据持久化保存? Spark SQL读取文件&#xff0c;内存不够使用&#xff0c;如何处理? Spark的lazy体现在哪里? Spark中的并行度等于什么 Spark运行时并行度的设署 Spark SQL的数据倾斜 Spark的exactly-once Spark的…...

AI绘画 Stable Diffusion图像的脸部细节控制——采样器全解析

大家好&#xff0c;我是画画的小强 我们在运用AI绘画 Stable Diffusion 这一功能强大的AI绘图工具时&#xff0c;我们往往会发现自己对提示词的使用还不够充分。在这种情形下&#xff0c;我们应当如何调整自己的策略&#xff0c;以便更加精确、全面地塑造出理想的人物形象呢&a…...

liunx离线安装Firefox

在Linux系统中离线安装Firefox浏览器&#xff0c;您需要先从Mozilla的官方网站下载Firefox的安装包&#xff0c;然后通过终端进行安装。以下是详细的步骤&#xff1a; 准备工作 下载Firefox安装包&#xff1a; 首先&#xff0c;在一台可以上网的电脑上访问Firefox官方下载页面…...

UNet进行病理图像分割

数据集链接&#xff1a;https://pan.baidu.com/s/1IBe_P0AyHgZC39NqzOxZhA?pwdnztc 提取码&#xff1a;nztc UNet模型 import torch import torch.nn as nnclass conv_block(nn.Module):def __init__(self, ch_in, ch_out):super(conv_block, self).__init__()self.conv nn…...

初二数学基础差从哪开始补?附深度解析!

有时候&#xff0c;当你推不开一扇门的时候&#xff0c;不要着急&#xff0c;试着反方向拉一下&#xff0c;或者横向拉一下。下面是小偏整理的初二数学基础差从哪开始补2021年&#xff0c;感谢您的每一次阅读。   初二数学基础差从哪开始补2021年   第一个问题是很多同学都…...

【C语言】return 关键字

在C语言中&#xff0c;return是一个关键字&#xff0c;用于从函数中返回值或者结束函数的执行。它是函数的重要组成部分&#xff0c;负责将函数的计算结果返回给调用者&#xff0c;并可以提前终止函数的执行。 主要用途和原理&#xff1a; 返回值给调用者&#xff1a; 当函数执…...

华为机试HJ13句子逆序

华为机试HJ13句子逆序 题目&#xff1a; 将一个英文语句以单词为单位逆序排放。例如“I am a boy”&#xff0c;逆序排放后为“boy a am I”所有单词之间用一个空格隔开&#xff0c;语句中除了英文字母外&#xff0c;不再包含其他字符 想法&#xff1a; 将输入的字符串通过…...

代码随想录day40 动态规划(5)

52. 携带研究材料&#xff08;第七期模拟笔试&#xff09; (kamacoder.com) 完全背包&#xff0c;可重复放入物品&#xff0c;需要用一维滚动数组从前往后遍历。 由于第0个物品和后面物品的转移方程没有区别&#xff0c;可以不额外初始化dp数组&#xff0c;直接用元素全0的d…...

FFmpeg 命令行 音视频格式转换

&#x1f4da;&#xff1a;FFmpeg 提供了丰富的命令行选项和功能&#xff0c;可以用来处理音视频文件、流媒体等&#xff0c;掌握命令行的使用&#xff0c;可以有效提高工作效率。 目录 一、视频转换和格式转换 &#x1f535; 将视频文件转换为另一种格式 &#x1f535; 指定…...

Jmeter使用JSON Extractor提取多个变量

1.当正则不好使时&#xff0c;用json extractor 2.提取多个值时&#xff0c;默认值必填&#xff0c;否则读不到变量...

(LeetCode 每日一题) 3442. 奇偶频次间的最大差值 I (哈希、字符串)

题目&#xff1a;3442. 奇偶频次间的最大差值 I 思路 &#xff1a;哈希&#xff0c;时间复杂度0(n)。 用哈希表来记录每个字符串中字符的分布情况&#xff0c;哈希表这里用数组即可实现。 C版本&#xff1a; class Solution { public:int maxDifference(string s) {int a[26]…...

智慧医疗能源事业线深度画像分析(上)

引言 医疗行业作为现代社会的关键基础设施,其能源消耗与环境影响正日益受到关注。随着全球"双碳"目标的推进和可持续发展理念的深入,智慧医疗能源事业线应运而生,致力于通过创新技术与管理方案,重构医疗领域的能源使用模式。这一事业线融合了能源管理、可持续发…...

可靠性+灵活性:电力载波技术在楼宇自控中的核心价值

可靠性灵活性&#xff1a;电力载波技术在楼宇自控中的核心价值 在智能楼宇的自动化控制中&#xff0c;电力载波技术&#xff08;PLC&#xff09;凭借其独特的优势&#xff0c;正成为构建高效、稳定、灵活系统的核心解决方案。它利用现有电力线路传输数据&#xff0c;无需额外布…...

3403. 从盒子中找出字典序最大的字符串 I

3403. 从盒子中找出字典序最大的字符串 I 题目链接&#xff1a;3403. 从盒子中找出字典序最大的字符串 I 代码如下&#xff1a; class Solution { public:string answerString(string word, int numFriends) {if (numFriends 1) {return word;}string res;for (int i 0;i &…...

[Java恶补day16] 238.除自身以外数组的乘积

给你一个整数数组 nums&#xff0c;返回 数组 answer &#xff0c;其中 answer[i] 等于 nums 中除 nums[i] 之外其余各元素的乘积 。 题目数据 保证 数组 nums之中任意元素的全部前缀元素和后缀的乘积都在 32 位 整数范围内。 请 不要使用除法&#xff0c;且在 O(n) 时间复杂度…...

Java求职者面试指南:计算机基础与源码原理深度解析

Java求职者面试指南&#xff1a;计算机基础与源码原理深度解析 第一轮提问&#xff1a;基础概念问题 1. 请解释什么是进程和线程的区别&#xff1f; 面试官&#xff1a;进程是程序的一次执行过程&#xff0c;是系统进行资源分配和调度的基本单位&#xff1b;而线程是进程中的…...

PostgreSQL——环境搭建

一、Linux # 安装 PostgreSQL 15 仓库 sudo dnf install -y https://download.postgresql.org/pub/repos/yum/reporpms/EL-$(rpm -E %{rhel})-x86_64/pgdg-redhat-repo-latest.noarch.rpm# 安装之前先确认是否已经存在PostgreSQL rpm -qa | grep postgres# 如果存在&#xff0…...

深入理解Optional:处理空指针异常

1. 使用Optional处理可能为空的集合 在Java开发中&#xff0c;集合判空是一个常见但容易出错的场景。传统方式虽然可行&#xff0c;但存在一些潜在问题&#xff1a; // 传统判空方式 if (!CollectionUtils.isEmpty(userInfoList)) {for (UserInfo userInfo : userInfoList) {…...

comfyui 工作流中 图生视频 如何增加视频的长度到5秒

comfyUI 工作流怎么可以生成更长的视频。除了硬件显存要求之外还有别的方法吗&#xff1f; 在ComfyUI中实现图生视频并延长到5秒&#xff0c;需要结合多个扩展和技巧。以下是完整解决方案&#xff1a; 核心工作流配置&#xff08;24fps下5秒120帧&#xff09; #mermaid-svg-yP…...

五子棋测试用例

一.项目背景 1.1 项目简介 传统棋类文化的推广 五子棋是一种古老的棋类游戏&#xff0c;有着深厚的文化底蕴。通过将五子棋制作成网页游戏&#xff0c;可以让更多的人了解和接触到这一传统棋类文化。无论是国内还是国外的玩家&#xff0c;都可以通过网页五子棋感受到东方棋类…...