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

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

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

相关文章

3.js - 反射率(reflectivity) 、折射率(ior)

没啥太大的感觉 反射率 reflectivity 概念 反射率:指的是,材质表面反射光线的能力反射率,用于控制材质对环境光,或光源的反射程度反射率越高,材质表面反射的光线越多,看起来就越光亮使用 适用于&#xff0…

【OCPP】ocpp1.6协议第5.1章节Cancel Reservation的介绍及翻译

目录 5.1 取消预约Cancel Reservation-概述 Cancel Reservation CancelReservation.req 请求消息 CancelReservation.conf 确认消息 取消预定的流程 应用场景 示例消息 CancelReservation.req 示例 CancelReservation.conf 示例 总结 5.1 取消预约Cancel Reservation…

VScode 常用插件

基础开发插件 Chinese (Simplified)(简体中文语言包):这是适用于VS Code的中文(简体)语言包,适用于英语不太流利的用户。Auto Rename Tag:这个插件可以同步修改HTML/XML标签,当用户修…

【PYG】Cora数据集分类任务计算损失,cross_entropy为什么不能直接替换成mse_loss

cross_entropy计算误差方式,输入向量z为[1,2,3],预测y为[1],选择数为2,计算出一大坨e的式子为3.405,再用-23.405计算得到1.405MSE计算误差方式,输入z为[1,2,3],预测向量应该是[1,0,0]&#xff0…

Dify入门指南

一.Dify介绍 生成式 AI 应用创新引擎,开源的 LLM 应用开发平台。提供从 Agent 构建到 AI workflow 编排、RAG 检索、模型管理等能力,轻松构建和运营生成式 AI 原生应用,比 LangChain 更易用。一个平台,接入全球大型语言模型。不同…

CesiumJS【Basic】- #050 绘制扫描线(Primitive方式)

文章目录 绘制扫描线(Primitive方式)- 需要自定义着色器1 目标2 代码2.1 main.ts绘制扫描线(Primitive方式)- 需要自定义着色器 1 目标 使用Primitive方式绘制扫描线 2 代码 2.1 main.ts import * as Cesium from cesium;const viewer = new Cesium.Viewer(cesiumConta…

自我反思与暑假及大三上学期规划

又要放暑假了,依稀记得上个暑假一边练车,一边试图拿捏C语言,第一次感觉暑假也可以如此忙碌。但是开学以后,我并没有把重心放在期望自己应该做的事情上,更多的时间花费在了处理学院的相关事务。现在看来,大二…

《昇思 25 天学习打卡营第 9 天 | FCN 图像语义分割 》

活动地址:https://xihe.mindspore.cn/events/mindspore-training-camp 签名:Sam9029 这一章节 出现了一个 深度学习 中经常出现的概念 全卷积网络(Fully Convolutional Networks) : 官话:FCN 主要用于图像分割领域&…

德璞资本:桥水公司如何利用AI实现投资决策的精准提升?

摘要: 在金融科技的浪潮中,桥水公司推出了一只依靠机器学习决策的创新基金,吸引了大量投资者的关注。本文将深入探讨该基金的背景、AI技术的应用、对桥水公司转型的影响,以及未来发展的前景。 新基金背景:桥水公司的创…

2024年7月2日 (周二) 叶子游戏新闻

老板键工具来唤去: 它可以为常用程序自定义快捷键,实现一键唤起、一键隐藏的 Windows 工具,并且支持窗口动态绑定快捷键(无需设置自动实现)。 卸载工具 HiBitUninstaller: Windows上的软件卸载工具 经典名作30周年新篇《恐怖惊魂夜…

MyBatis入门案例

实施前的准备工作: 1.准备数据库表2.创建一个新的springboot工程,选择引入对应的起步依赖(mybatis、mysql驱动、lombok)3.在application.properties文件中引入数据库连接信息4.创建对应的实体类Emp(实体类属性采用驼峰…

throw 和return的区别,A函数里面执行B函数 B函数异常后 不再执行A函数

function aFun() {try {bFun();console.log(22222222222);} catch (e) {// 如果bFun中抛出异常,中止aFun的执行console.log(e.message);} }function bFun() {let a 1, b 1;if (a b) {throw new Error(Stopped by bFun); // 抛出异常,停止aFun}// bFun…

python3递归目录删除N天前的文件(带有日志记录)

本来想用linux find去处理,为了装逼,写了py玩玩,删除2w个文件总共用了2毫秒。因为这个脚本有记录删除时间,你可以看到开始时间和最后删除的时间。由于只用了2毫秒,把我吓了一跳以为删错文件了!! #!/usr/bin/env python3 # -*- encoding: utf-8 -*-@File : del_N…

补浏览器环境

一,导言 // global是node中的关键字(全局变量),在node中调用其中的元素时,可以直接引用,不用加global前缀,和浏览器中的window类似;在浏览器中可能会使用window前缀:win…

校园水质信息化监管系统——水质监管物联网系统

随着物联网技术的发展越来越成熟,它不断地与人们的日常生活和工作深入融合,推动着社会的进步。其中物联网系统集成在高校实践课程中可以应用到许多项目,如环境气象检测、花卉种植信息化监管、水质信息化监管、校园设施物联网信息化改造、停车…

C++编程(八)多态

文章目录 一、多态(一)概念1. 多态2. 函数重写3. 虚函数 (二)实现多态的条件1. 继承关系2. 父类中写虚函数3. 在子类中重写父类的虚函数4.父类的指针或引用指向子类的对象5. 使用示例 (三)虚析构函数&#…

springboot项目jar包修改数据库配置运行时异常

一、背景 我将软件成功打好jar包了,到部署的时候发现jar包中数据库配置写的有问题,不想再重新打包了,打算直接修改配置文件,结果修改配置后,再通过java -jar运行时就报错了。 二、问题描述 本地项目是springBoot项目…

【计算机图形学 | 基于MFC三维图形开发】期末考试知识点汇总(上)

文章目录 视频教程第一章 计算机图形学概述计算机图形学的定义计算机图形学的应用计算机图形学 vs 图像处理 vs模式识别图形显示器的发展及工作原理理解三维渲染管线 第二章 基本图元的扫描转换扫描转换直线的扫描转换DDA算法Bresenham算法中点画线算法圆的扫描转换中点画圆算法…

Java中的持续集成与持续部署

Java中的持续集成与持续部署 大家好,我是免费搭建查券返利机器人省钱赚佣金就用微赚淘客系统3.0的小编,也是冬天不穿秋裤,天冷也要风度的程序猿!今天我们将深入探讨Java中的持续集成(Continuous Integration&#xff…

熟练掌握Docker及linux常用命令排查线上问题。熟悉Git, Maven等项目管理及构建工具,熟悉微服务中基于Jenkins的CI/CD

掌握Docker、Linux命令、项目管理及构建工具,以及CI/CD流程是现代软件开发和运维的关键技能。以下是对这些技能的概述和一些实践建议: ### Docker - **概述**:Docker是一个开源的容器化平台,允许开发者打包应用及其依赖到一个可移…