CLAM用于弱监督WSI分析

计算病理学(computational pathology)下的深度学习方法需要手动注释大型 WSI 数据集,并且通常存在领域适应性和可解释性较差的问题。作者报告了一种可解释的弱监督深度学习方法,只需要WSI级标签。将该方法命名为聚类约束注意力多实例学习 (CLAM,clustering-constrained-attention multiple-instance learning),它使用注意力来识别具有高诊断价值的子区域,以准确对整个WSI进行分类,并在已识别的代表性区域上进行实例级聚类以约束和细化特征空间。通过将 CLAM 应用于肾细胞癌和非小细胞肺癌的亚型分类以及淋巴结转移的检测,表明它可用于定位 WSI 上的形态特征,其性能优于标准弱监督分类算法。

来自:Data-efficient and weakly supervised computational pathology on whole-slide images, Nature Biomedical Engineering, 2021
工程地址:https://github.com/mahmoodlab/CLAM

目录

  • CLAM概述
  • 方法
    • Instance-level clustering
    • Smooth SVM loss
    • 训练细节

CLAM概述

fig1a

  • 图1a:分割后,我们可以从WSI中提取patches。

fig1b

  • 图1b:patches被预训练的CNN编码成特征表示,在训练和推理过程中,每个WSI中提取的patch作为特征向量传递给CLAM。使用注意力网络将patch信息聚合为WSI级表示,用于最终的诊断预测。

fig1cd

  • 图1c:对于每个类,注意力网络对WSI中的每个patch进行排名,根据其对WSI诊断的重要性分配注意力分数(左)。注意力pooling根据每个patch的注意力得分对其进行加权,并将patch级别的特征总结为WSI级别的表示(右下)。在训练过程中,给定GT标签,强参与(红色)和弱参与(蓝色)patch可以额外用作代表性样本以监督聚类层,聚类层学习丰富的patch级特征空间,可在不同类别的正实例和负实例之间分离(右上)。
  • 图1d:注意力得分可以可视化为热图,以识别ROI(解释用于诊断的重要形态学)。

方法

CLAM是一个高通量的深度学习工具箱,旨在解决计算病理学中的弱监督分类任务,其中训练集中的每个WSI是具有已知WSI级别的单个数据点,但对于WSI中的任何像素或patch都没有类别特定的信息或注释。CLAM建立在MIL框架之上,该框架将每个WSI(称为bag)视为由许多(多达数十万)较小的区域或patch(称为instance)组成的集合。MIL框架通常将其范围限制在一个正类和一个负类的二元分类问题上,并基于这样的假设:如果至少有一个patch属于正类,那么整个WSI应该被分类为正类(阳性),而如果所有patch都属于负类,则WSI应该被分类为负类(阴性)。这一假设体现在max-pooling聚合函数上,它简单地使用正类预测概率最高的patch进行WSI级预测,这也使得MIL不适合多类分类问题。

除了Max-pooling之外,虽然可以使用其他聚合函数,但它们依然不能提供简单、直观的模型可解释性机制。相比之下,CLAM通常适用于多类别分类,它是围绕可训练和可解释的基于注意力的pooling函数构建的,从patch级表示中聚合每个类别的WSI级表示。在多分类注意力pooling设计中,注意力网络预测了一个多类分类问题中对应于 N N N个类别的 N N N个不同的注意力分数集。这使得网络能够明确地了解哪些形态学特征应该被视为每个类的积极证据(类相关的特征)和消极证据(非信息性的,缺乏类定义的特征),并总结WSI级表示。

具体来说,对于表示为 K K K个实例(patch)的WSI,我们将对应于第 k k k个patch的实例级嵌入表示为 z k z_{k} zk。在CLAM中,第一个全连接层 W 1 ∈ R 512 × 1024 W_{1}\in\R^{512\times 1024} W1R512×1024进一步将每个固定的patch级表示 z k ∈ R 1024 z_{k}\in\R^{1024} zkR1024压缩为 h k ∈ R 512 h_{k}\in\R^{512} hkR512。注意力网络由几个堆叠的全连接层组成;如果将注意力网络的前两层 U a ∈ R 256 × 512 U_{a}\in\R^{256\times 512} UaR256×512+ V a ∈ R 256 × 512 V_{a}\in\R^{256\times 512} VaR256×512 W 1 W_{1} W1共同视为所有类共享的注意力主干的一部分,注意力网络将分为 N N N个平行分支: W a , 1 , . . . , W a , N ∈ R 1 × 256 W_{a,1},...,W_{a,N}\in\R^{1\times 256} Wa,1,...,Wa,NR1×256。同样, N N N个并行独立分类器 W c , 1 , . . . , W c , N W_{c,1},...,W_{c,N} Wc,1,...,Wc,N对每个特定类的WSI表示进行评分。

因此,第 i i i类的第 k k k个patch的注意力分数记为 a i , k a_{i,k} ai,k,并且根据第 i i i类注意力分数聚合WSI表示记为 h s l i d e , i ∈ R 512 h_{slide,i}\in\R^{512} hslide,iR512
eq12
分类层 W c , i W_{c,i} Wc,i给出相应的非归一化WSI级分数 s s l i d e , i s_{slide,i} sslide,i s s l i d e , i = W c , i h s l i d e , i s_{slide,i}=W_{c,i}h_{slide,i} sslide,i=Wc,ihslide,i。我们在模型的注意力主干的每一层后使用dropout( P = 0.25 P=0.25 P=0.25)进行正则化。

对于推理,通过对WSI级预测分数应用softmax函数来计算每个类的预测概率分布。

Instance-level clustering

为了进一步鼓励学习特定于类的特征,我们在训练期间加入一个额外的二值聚类目标。对于 N N N个类中的每一个,在第一个层 W 1 W_{1} W1之后加一个全连接层。将第 i i i个类对应的聚类层权重记为 W i n s t , i ∈ R 2 × 512 W_{inst,i}\in\R^{2\times 512} Winst,iR2×512,则第 k k k个patch预测的聚类分数为 p i , k p_{i,k} pi,k p i , k = W i n s t , i h k p_{i,k}=W_{inst,i}h_{k} pi,k=Winst,ihk

鉴于我们无法访问patch级标签,我们使用注意力网络的输出在每次训练迭代中为每张WSI生成伪标签,以监督聚类。聚类中只优化最强参与和最弱参与的区域。为了避免混淆,对于给定的WSI,对于GT标签 Y ∈ { 1 , . . . , N } Y\in\left\{1,...,N\right\} Y{1,...,N},我们将GT类别对应的注意力分支 W a , Y W_{a,Y} Wa,Y称为"in-the-class",其余的 N − 1 N-1 N1个注意力分支称为"out-the-class"。如果将in-the-class的注意力分数的排序列表(升序)表示为 a ~ Y , 1 , . . . , a ~ Y , K \widetilde{a}_{Y,1},...,\widetilde{a}_{Y,K} a Y,1,...,a Y,K,我们将注意力得分最低的 B B B个patch分配给负类标签 ( y Y , b = 0 ) (y_{Y,b}=0) (yY,b=0),其中, 1 ≤ b ≤ B 1\leq b\leq B 1bB。注意力得分最高的 B B B个patch分配给正类标签 ( y Y , b = 1 ) (y_{Y,b}=1) (yY,b=1),其中, B + 1 ≤ b ≤ 2 B B+1\leq b\leq 2B B+1b2B。直观地说,由于在训练过程中每个注意力分支都受到WSI级别标签的监督,因此高注意力分数的 B B B个patch被期望成为 Y Y Y类别的强参与阳性证据,而低注意分数的 B B B个patch被期望成为 Y Y Y类别的强参与阴性证据。聚类任务可以直观地解释为约束patch级特征空间 h k h_k hk,使每个类别的强参与特征证据与其阴性证据线性可分。

对于癌症亚型问题,所有类别通常被认为是互斥的(也就是说,它们不能出现在同一张WSI中),因为将in-the-class注意力分支中最受关注和最不受关注的片段分别聚类为正证据和负证据,因此对N−1个out-the-class注意力分支施加额外的监督是有意义的。也就是说,给定GT的WSI标签 Y Y Y,任取类别 i i i不属于 Y Y Y,如果我们假设WSI上的patch都不属于 i i i类,那么注意力得分最高的 B B B个patch就不能成为 i i i类的正证据(由于互斥性)。

因此,除了对从in-the-class注意力分支中选择的 2 B 2B 2B个patch进行聚类外,还将所有out-the-class注意力分支中最受关注的前 B B B个patch分配为负聚类标签,因为它们被认为是假阳性证据。另一方面,如果互斥性假设不成立(例如,癌症与非癌症问题,其中一张WSI可以包含来自肿瘤组织和正常组织的patch),那么就不会监督来自out-the-class分支的高注意力的patch的聚类,因为我们不知道它们是否为假阳性。

实例级聚类算法如下:
ag1

Smooth SVM loss

对于实例级聚类任务,我们使用平滑的top-1 SVM loss,它是基于多分类SVM loss的,神经网络模型输出一个预测分数向量 s s s,其中 s s s中的每个条目对应于模型对单个类的预测。给定所有GT标签 y ∈ { 1 , . . . , N } y\in\left\{1,...,N\right\} y{1,...,N},多类别SVM loss对分类器进行线性惩罚,仅当该差值大于指定的裕度 α α α时,对GT类的预测分数与其余类的最高预测分数之间的差值进行惩罚。Smooth变体(公式5)在多分类SVM损失中加入了温度标度 τ τ τ,它已被证明具有非稀疏梯度的无限可微性,并且在有效实现算法时适用于深度神经网络的优化。平滑支持向量机损失可以看作是广泛使用的交叉熵分类损失的一种推广,适用于不同的边界有限值选择和不同的温度尺度

经验表明,当数据标签有噪声或数据有限时,向损失函数引入margin可以减少过拟合。在训练过程中,创建的用于监督实例级聚类任务的伪标签必然是有噪声的。也就是说,强参与的patch可能不一定对应于GT类,同样,弱参与的patch也不能保证是该类的负证据。因此,代替广泛使用的交叉熵损失,将二进制top-1平滑SVM损失应用于网络聚类层的输出。在所有的实验中, α α α τ τ τ都被设置为1.0。
eq45

训练细节

在训练过程中,WSI被随机采样。每张WSI的多项采样概率与GT类的频率成反比(来自代表性不足的类的WSI相对于其他类更有可能被采样),以减轻训练集中的类不平衡。注意力模块的权重参数随机初始化,并使用WSI标签和模型其余部分端到端训练,总的损失是WSI级损失 L s l i d e L_{slide} Lslide和instance-level损失 L p a t c h L_{patch} Lpatch之和。

为了计算 L s l i d e L_{slide} Lslide,使用标准交叉熵损失将 s s l i d e s_{slide} sslide与真实的WSI级标签进行比较,为了计算 L p a t c h L_{patch} Lpatch,使用二元Smooth SVM损失将每个采样patch的实例级聚类预测分数 p k p_k pk与相应的伪聚类标签进行比较(回想一下,对于非亚型问题,从in-the-class分支中总共采样了 2 B 2B 2B个patch。而对于亚型问题,从in-the-class分支中采样 2 B 2B 2B个patch,从 N − 1 N−1 N1个out-the-class注意力分支各采样 B B B个patch)。

数据集摘要见补充表8:
sptab8

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

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

相关文章

uniapp自定义富文本现实组件(支持查看和收起)

废话不多说上代码 CollapseText.vue <template><view v-if"descr"><scroll-view class"collapse-text" :style"{maxHeight: computedMaxHeight}"><!-- <slot></slot> --><rich-text :nodes"descr&q…

【双出版加持!录用率高!见刊、检索更稳定!】第六届结构抗震与土木工程研究国际学术会议 (ICSSCER 2024,8月16-18)

随着社会的发展&#xff0c;城市规模的不断扩大&#xff0c;建筑形态也趋于多样化和复杂化&#xff0c;建筑结构形式逐渐由规则简单向高层、大跨甚至特殊复杂的方向发展。而房屋建筑是人们正常生活和生产活动的基本场所&#xff0c;房屋建筑结构的安全必须得到充分保障。但是&a…

揭秘品牌成功秘诀:品牌营销策略的核心要素大公开

品牌营销作为企业战略中至关重要的一环&#xff0c;其核心是建立和传播品牌的独特魅力&#xff0c;使其在消费者心目中占据重要位置。 一个成功的品牌营销策略能够提升品牌的知名度和影响力&#xff0c;带来持续的销售和忠诚客户群体。 在当今竞争激烈的市场环境中&#xff0…

初阶数据结构之二叉树

那么本篇文是初阶数据结构这个系列的最后一篇文章&#xff0c;那么闲话少叙&#xff0c;我们直接进入正题 在讲二叉树的一些之前知识点之前&#xff0c;我先给大家送个小礼物哈 手搓二叉树 typedef int BTDataType ; typedef struct BinaryTreeNode { BTDataType _data …

Mybatis-Plus eq ne gt lt ge le分别代表含义 条件构造器

一、条件构造器函数列表 函数名说明说明/例子allEq入参都满足条件例&#xff1a;allEq({"id": 1, "name": "张三", "age": null})--->id 1 and name 张三 and age is nulleq等于例&#xff1a;eq("name", "张三…

dc-3靶机渗透

环境准备 dc-3靶机下载链接&#xff1a; https://download.vulnhub.com/dc/DC-3-2.zip 启动靶机遇到的问题解决文章在下面 http://t.csdnimg.cn/zLQAI kali最新版 dc-3靶机 两台机器都在vmware上运行 网络设置NAT模式 渗透过程 信息收集 首先使用ifconfig获取kali的IP地址 可…

day04-组织架构

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 1.组织架构-树组件应用树形组件-用层级结构展示信息&#xff0c;可展开或折叠。 2.组织架构-树组件自定义结构3.组织架构-获取组织架构数据4.组织架构-递归转化树形…

CSS filter(滤镜)属性,并实现页面置灰效果

目录 一、filter&#xff08;滤镜&#xff09;属性 二、准备工作 三、常用的filter属性值 1、blur(px) 2、brightness(%) 3、contrast(%) 4、grayscale(%) 5、opacity(%) 6、saturate(%) 7、sepia(%) 8、invert(%) 9、hue-rotate(deg) 10、drop-shadow(h-shadow v…

【Godot4.2】用PlantUML和语雀画UML类图

概述 UML&#xff1a;统一建模语言(Unified Modeling Language,UML)是用来设计软件的可视化建模语言。PlantUML&#xff1a;是一个开源工具&#xff0c;它允许我们用文本形式来描绘和创建UML图。在VSCode中可以安装扩展来绘制&#xff0c;而在语雀的MarkDown编辑器中&#xff…

震惊!运气竟能如此放大!运气的惊人作用,你了解吗?

芒格&#xff1a;得到你想要的东西&#xff0c;最保险的办法&#xff0c;就是让自己配得上你想要的那个东西。今天仔细想了想这句话&#xff0c;他其实说的是无数成功人士的心声 —— “我配得上&#xff01;” 美剧《绝命毒师》有个导演叫文斯吉里根&#xff08;Vince Gilliga…

如何看待制造业数字化转型?从不同维度来聊一聊

作为一名TOB行业9年经验的老兵&#xff0c;近期我们团队拜访了不少制造企业&#xff0c;其以中小型企业居多&#xff0c;在与企业负责人交流数字化转型话题时&#xff0c;感触最多的还是管理者对“数字化转型”的认知。在数字化转型方面从国家层面到地方政府进行大量的宣传与政…

数据结构 1.1 数据结构的基本概念

本章总览&#xff1a; 一.什么是数据 1.数据 数据是信息的载体&#xff0c;是描述客观事物属性的数、字符及所有能输入到计算机中并被计算机程 序识别和处理的符号的集合。数据是计算机程序加工的原料。 早期计算机只能处理纯数值的问题&#xff0c;如世界第一题计算机ENI…

【京存】AI人工智能时代的分布式存储

如今&#xff0c;AI人工智能的浪潮席卷全球&#xff0c;数据以前所未有的速度增长与积累。如何高效存储、管理和利用海量数据&#xff0c;成为推动AI发展的关键。 今日&#xff0c;我们将为您深度剖析AI人工智能分布式存储方案&#xff0c;伴随AI技术在图像识别、自然语言处理…

金融(基金)行业信创国产化特点及统一身份认证解决方案

金融业在政策支持及自主驱动下&#xff0c;金融信创取得快速发展。从2020年开始&#xff0c;三期试点已扩容至5000余家&#xff0c;进入全面推广阶段。而基金行业信创建设与银行、证券、保险这些试点行业相比&#xff0c;进展较为缓慢。 基金行业信创当前面临的问题 与多家基…

百度出品_文心快码Comate提升程序猿效率

1.文心快码 文心快码包含指令、插件 和 知识三种功能&#xff0c; 1&#xff09;指令包含Base64编码、Base64解码、JSON转TS类型、JSON转YAML、JWT解码喂JSON。 2&#xff09;插件包含 3&#xff09;指令包含如下功能&#xff1a; 官网链接

SQL Server 2022的组成

《SQL Server 2022从入门到精通&#xff08;视频教学超值版&#xff09;》图书介绍-CSDN博客 SQL Server 2022主要由4部分组成&#xff0c;分别是数据库引擎、分析服务、集成服务和报表服务。本节将详细介绍这些内容。 1.2.1 SQL Server 2022的数据库引擎 SQL Server 2022的…

盘点几款国产AI高效神器!打工人赶紧码住

在这个AI技术飞速发展的时代&#xff0c;国产AI工具正成为提升工作效率的得力助手。作为AI工具测评博主&#xff0c;米兔有幸体验了多款国产AI工具&#xff0c;今天要向大家介绍几款超级好用的AI工具。这些工具不仅功能强大&#xff0c;而且操作简便&#xff0c;是职场人士不可…

贵的智能猫砂盆值得买吗?包含百元、千元的高性价比品牌推荐!

对于养猫的上班族来说&#xff0c;智能猫砂盆真的是越早买越好&#xff0c;普通猫砂盆用这么久下来能把我们这些上班的都累死&#xff0c;每次一回到家就能闻到猫屎的臭味&#xff0c;一看就收获猫砂盆里满满当当的猫屎&#xff0c;在外面要上班&#xff0c;在家里也要给猫上班…

API-正则表达式

学习目标&#xff1a; 掌握正则表达式 学习内容&#xff1a; 什么是正则表达式语法元字符修饰符 什么是正则表达式&#xff1a; 正则表达式是用于匹配字符串中字符组合的模式。在JavaScript中&#xff0c;正则表达式也是对象。 通常用来查找、替换那些符合正则表达式的文本&a…

二叉树的链式访问 与 二叉树专题

目录 二叉树的前、中、后序遍历求二叉树第K层节点的个数二叉树查找值为x的节点leetcode相同的树对称二叉树二叉树的前序遍历另一棵子树牛客 二叉树的遍历 二叉树的前、中、后序遍历 1.前序遍历&#xff1a;先访问根节点&#xff0c;再访问左子树&#xff0c;最后访问右子树 根…