论文解读之Attention-based Deep Multiple Instance Learning

前言

多实例学习是由监督学习演变而来的,我们都知道,监督学习在训练的时候是一个实例(或者说一个样本、一条训练数据)对应一个确定的标签。而多实例的特点就是,我们在训练的时候的输入是多个实例对应一个确定的标签,我们把这多个实例看做一个包,每个包有一个确定的标签,包是有标签的而包里面的实例是没有标签的,多实例的目的就是希望从这种粗粒度的带有标签的包中学习到细粒度的表示,进而进行一系列的任务,比如说分类等。

多个实例只对应一个标签的这种情况,我们也称为弱标签情况,弱标签的问题在医学成像中尤其明显(例如,计算病理学、乳房x光检查或CT肺筛查),其中图像通常由单一标签(良性/恶性)或感兴趣区域(ROI)大致给出。
举个栗子:

  • 把一张X检查图像分成多个部分,从这多个部分中我们判断是否包含病灶(往往只有一小部分包含病灶),进一步判断患者是否患病,这也可以看做一个多实例,每个部分是一个实例,整张图片包含多个实例可以看做一个包
  • CT序列很明显是弱标签的,每个患者有一系列CT切片,从这些切片中判断患者是否患病,那这一套CT序列就是一个包,每张CT切片就是一个实例

所以,多实例的一个挑战是发现关键实例,即触发包标签的实例。

Attention-based Deep Multiple Instance Learning

要解决的问题

在这篇文章里作者主要以图片的二分类为例,每个包对应一个标签label y={0,1},包里包含多个多个实例(即有多张图片),并且实例的数量是可变的(每个包里面的实例数是不一样的),实例与实例之间具有排列不变性,即没有顺序也没有依赖性。

eg:下述是论文所有数据集中一个包的里面的图片实例,这个包的标签是9,我们通过注意力进行可视化之后,发现数字为9的图片占比更大
在这里插入图片描述

之前的方法:
(1)实例级别的方法:通过实例级别的分类器,返回每个实例的分数,然后通过MIL pooling来聚合单个分数得到最好的那个实例结果
缺点:由于单个标签是未知的,因此实例级分类器可能被训练不足,这可能会给最终的预测带来额外的错误
优点:实例级方法提供了一个分数,可用于查找关键实例,即触发包标签的实例,可解释性较好
在这里插入图片描述

(2)嵌入级别的方法:将实例映射到一个低维的嵌入,再通过MIL池获得与包中的实例数无关的包表示。最后把这个包表示放到分类器中得到进一步结果
缺点:可解释性不太好
优点:嵌入级方法确定了袋子的联合表示,因此它不会给袋级分类器引入额外的偏差。
在这里插入图片描述

论文方法

①一个由神经网络参数化的MIL模型来获取输入实例的低维嵌入
②通过注意力机制来对实例进行加权平均,代替之前的平均实例池化和最大实例池化。作者认为,基于注意力的MIL pooling是一个灵活和自适应的MIL池,可以通过适应任务和数据来获得更好的结果。理想情况下,这种MIL池也应该是可解释的。
在这里插入图片描述

源码解析

class Attention(nn.Module):def __init__(self):super(Attention, self).__init__()self.M = 500self.L = 128self.ATTENTION_BRANCHES = 1# 二维特征提取self.feature_extractor_part1 = nn.Sequential(nn.Conv2d(1, 20, kernel_size=5),nn.ReLU(),nn.MaxPool2d(2, stride=2),nn.Conv2d(20, 50, kernel_size=5),nn.ReLU(),nn.MaxPool2d(2, stride=2))# 对之前提取的特征进行降维和非线性变换self.feature_extractor_part2 = nn.Sequential(nn.Linear(50 * 4 * 4, self.M),nn.ReLU(),)# 通过注意力机制来计算每个实例的得分self.attention = nn.Sequential(nn.Linear(self.M, self.L), # matrix Vnn.Tanh(),nn.Linear(self.L, self.ATTENTION_BRANCHES) # matrix w (or vector w if self.ATTENTION_BRANCHES==1))# 分类器进行分类self.classifier = nn.Sequential(nn.Linear(self.M*self.ATTENTION_BRANCHES, 1),nn.Sigmoid())def forward(self, x):"""x:输入的包,维度为[batch, MLI_nums, channel, height, width],第一个是batch,第二个是包里的实例数,这里是变化的,第三个是图片通道数,最后两个维度是高和宽"""x = x.squeeze(0) # 第一个维度压缩,[MLI_nums, channel, height, width]H = self.feature_extractor_part1(x) # 提取特征之后的维度为[MLI_nums, 50, 4, 4]H = H.view(-1, 50 * 4 * 4) # 改变形状[MLI_nums,800],适应下一次输入H = self.feature_extractor_part2(H)  # 这里对特征进行了降维[MLI_nums,500]# 使用注意力机制自适应的计算每个实例的分数A = self.attention(H)  # [MLI_nums,1]A = torch.transpose(A, 1, 0)  # 转换维度,[1,,MLI_nums]A = F.softmax(A, dim=1)  # 对实例分数进行归一化Z = torch.mm(A, H)  # 将归一化后的实例分数与提取的实例特征进行矩阵乘法运算,最后得到一个最终的包表示[1,500]Y_prob = self.classifier(Z)  # 分类器进行分类Y_hat = torch.ge(Y_prob, 0.5).float()return Y_prob, Y_hat, A

论文源码:https://github.com/AMLab-Amsterdam/AttentionDeepMIL

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

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

相关文章

JUC之CAS比较并交换

CAS 原子类引入 加入原子整型类的操作后,无锁化的操作 CAS 比较并交换 硬件级别的保证 源码分析 引出UnSafe类 UnSafe源码分析 unsafe中的do-while保证自旋 public final int getAndAddInt(Object var1, long var2, int var4) {int var5;do {var5 this…

JSON基础知识

目录 一、定义二、作用三、特点四、语法JSON具有以下这些形式:4.1 对象(JSONObject):4.2 数组(JSONArray):4.3 值4.4 字符串4.5 数值 五、常用的JSON解析方式5.1 org.json解析5.1.1 常用api5.1.2 get方法与opt方法对比5.1.3 使用示例5.1.3 参…

jS 正则

概念 正则表达式是用于匹配字符串中字符组合的模式。在 JavaScript中,正则表达式也是对象。这些模式被用于 RegExp 的 exec 和 test 方法, 以及 String 的 match、matchAll、replace、search 和 split 方法。 创建正则表达式 两种方法:字面量方式、构造…

Spring-3

目录 Spring AOP和AspectJ AOP 在Spring AOP 中,关注点和横切关注的区别 Spring 框架中的单例 Bean 是线程安全的吗 Spring 是怎么解决循环依赖的? 事务隔离级别 事务的传播级别 Spring 事务实现方式 Spring框架的事务管理有哪些优点 事务注解的…

2、高级语言的语法描述

常用的高级程序设计语言 程序语言的定义 语法 一组规则,用它可以形成和产生合适的程序 词法规则:单词符号的形成规则。 单词符号的形成规则单词符号是语言中具有独立意义的最基本结构 一般包括:常数、标识符、基本字、算符、界符等 描述工具:有限自动机…

膨胀 卷积

1.作用 Dilated convolution、Atrous convolution 增大感受野保持原输入大小 2.膨胀因子 描述的是相邻元素之间的距离 r 2 3.gridding effect 不合理的多个膨胀卷积之前,设计的膨胀因子不合理导致,在增大感受野的同时丢失了细节信息。 丢失&…

7.测试教程-自动化测试selenium-2

文章目录 1.webdriver API1.1元素的定位1.2id定位1.3name 定位1.4tag name 定位和class name 定位1.5CSS 定位(常用)1.5.1概念1.5.2实操1.5.3语法 1.6XPath 定位1.6.1概念1.6.2实操1.6.3语法 1.7link text定位1.8Partial link text 定位1.9一个简单的测试实战1.10CSS定位和XPat…

sqllab第二十六A关通关笔记

知识点: 布尔注入 只能爆破出不带空格的语句信息database() version() 等空格、注释都被过滤了错误不回显了 感觉和26关应该差不多 构造payload:id0||11 发现可以绕过 尝试进行错误注入 构造payload:id||exp(710)1 发现页面没有有价值的回显信息;…

一个可商用私有化部署的基于JAVA的chat-gpt网站

目录 介绍一、核心功能1、智能对话2、AI绘画3、知识库4、一键思维导图5、应用广场6、GPTS 二、后台管理功能1、网站自定义2、多账号登录支持3、商品及会员系统4、模型配置5、兑换码生成6、三方商户用户打通 结语 介绍 java语言的私有化部署的商用网站还是比较少的 这里给大家介…

Go语言gin框架中加载html/css/js等静态资源

Gin框架没有内置静态文件服务,但可以使用gin.Static或gin.StaticFS中间件来提供静态文件服务。 效果图如下: 一、gin 框架加载 Html 模板文件的方法 方式1:加载单个或多个html文件,需要指明具体文件名 r.LoadHTMLFiles("vie…

手写简易操作系统(十)--中断概述

前情提要 我们还是总结一下前面做了什么 1、计算机启动,BIOS将MBR导入到内存,并跳转到相应位置执行 2、MBR将Loader导入到内存,并跳转执行 3、Loader中开启保护模式,准备好GDT表,开启内存分页,从此之后…

9成省份“鸿蒙化”,它真起来了?

自去年9月华为宣布鸿蒙原生应用全面启动以来,鸿蒙正以不可阻挡之势,快速在全国千行百业的移动应用领域推进。不仅有支付宝、快手、淘宝、京东等超200家头部互联网企业加入鸿蒙生态;2024年以来,上海、浙江、广西等多省市政务民生、…

C++_day6

思维导图: 2试编程 封装一个动物的基类,类中有私有成员: 姓名,颜色,指针成员年纪 再封装一个狗这样类,共有继承于动物类,自己拓展的私有成员有:指针成员:腿的个数(整型 int count),共有成员函数…

2024全新红娘交友系统定制版源码 | 相亲交友小程序源码 全开源可二开

内容目录 一、详细介绍二、效果展示1.部分代码2.效果图展示 三、学习资料下载 一、详细介绍 全新红娘交友系统定制版源码 | 相亲交友小程序源码 全开源可二开 定制版红娘交友平台小程序源码,很牛逼的东西,虽然是小程序,但是有700多M大&…

modbus客户端

通信方式支持 串口 / udp / tcp通信; 设备协议支持RTU / ASCII / TCP; 读取类型支持bool / short / int / float / double / long / batchbool / batchword

JAVA八股day1

遇到的问题 相比于包装类型(对象类型), 基本数据类型占用的空间往往非常小为什么说是几乎所有对象实例都存在于堆中呢?静态变量和成员变量、成员变量和局部变量的区别为什么浮点数运算的时候会有精度丢失的风险?如何解…

【Chapter1】操作系统概述,计算机操作系统教程,第四版,左万利,王英

文章目录 一、操作系统的基本概念1.1操作系统的层次结构1.2操作系统的运行视图1.3操作系统的概念(定义)1.4操作系统的功能和目标1.4.1操作系统的功能和目标——作为系统资源的管理者1.4.2操作系统的功能和目标——向上层提供方便易用的服务1.4.2.1GUI:图形化用户接口…

python 基础知识点(蓝桥杯python科目个人复习计划65)

今日复习内容:做题 例题1:遥远的雪国列车 问题描述: 小蓝和小红今天在房间里一起看完了“雪国列车”这部电影,看完之后他们感触颇深,同时他们想到了这样一道题目: 现在有一个数轴,长度为N&a…

PyTorch学习笔记之激活函数篇(二)

文章目录 2、Tanh函数2.1 公式2.2 对应的图像2.3 对应生成图像代码2.4 优点与不足2.5 torch.tanh()函数 2、Tanh函数 2.1 公式 Tanh函数的公式: f ( x ) e x − e − x e x e − x f(x)\frac{e^x-e^{-x}}{e^xe^{-x}} f(x)exe−xex−e−x​ Tanh函数的导函数&am…

在Latex中优雅的插入svg图片(Ubuntu22.04)

文章目录 一、前言二、准备工作三、脚本编程四、结论 一、前言 在 LaTeX \LaTeX LATE​X 中,插入图片常用的为 figure 环境加 \includegraphics 命令: \begin{figure}[!htbp]\centering\includegraphics[width\textwidth]{图片名.jpg/jpeg/png/pdf}\c…