基于注意力的MIL

news2025/1/15 13:13:02

多实例学习是监督学习的一种变体,其中单个类标签被分配给一袋实例。在本文中,作者将MIL问题描述为学习bag标签的伯努利分布,其中bag标签概率通过神经网络完全参数化。此外,提出了一种基于神经网络的置换不变聚合算子,该算子对应于注意力机制。值得注意的是,所提出的基于注意力的算子的应用提供了对每个实例对bag标签的贡献的深入了解。经验表明,在基准MIL数据集上实现了与最佳MIL方法相当的性能(在不牺牲可解释性的情况下)。

来自:Attention-based Deep Multiple Instance Learning, ICML, 2018
工程:https://github.com/AMLab-Amsterdam/AttentionDeepMIL

目录

  • 背景概述
  • 方法
  • 实验设置-适合小型实验

背景概述

在像图像分类这样的典型机器学习问题中,假设图像清楚地表示类别(类)。然而,在许多实际应用中,会观察到多个instance,并且只给出该类别的一般说明。这种情况被称为多实例学习(MIL)或从弱监督数据中学习。弱监督数据的问题在医学图像中尤其明显(例如,计算病理学、CT肺筛查),其中图像通常由单个标签(良性/恶性)描述,或者粗略给出感兴趣区域(ROI)。

MIL处理一组实例,为这些实例分配了一个类标签。因此,MIL的主要目标是学习预测bag标签的模型,例如医学诊断。另一个挑战是发现关键实例,即触发bag标签的实例。在医学领域,由于其在临床实践中的有用性,后者引起了极大的兴趣。为了解决袋分类的主要任务,提出了不同的方法,例如利用袋子之间的相似性,将实例嵌入到紧凑的低维表示中,该表示进一步提供给袋级分类器,以及组合实例级分类器的响应。只有最后一种方法能够提供可解释的结果。然而,研究表明,这种方法的实例级精度较低,并且通常情况下,MIL方法在实例级存在分歧。这些问题使人们对当前MIL模型在解释方面的可用性产生了疑问。

作者提出了一种新的方法,旨在将可解释性纳入MIL方法并增加其灵活性。使用bag标签的伯努利分布来建立MIL模型,并通过优化对数似然函数来训练它。作者证明,对称函数基本定理的应用提供了一个对bag标签概率(袋得分函数)建模的通用过程,该过程由三个步骤组成:

  • (i)实例到低维嵌入的变换
  • (ii)置换不变(对称)聚合函数
  • (iii)bag概率的最终变换

使用神经网络(即卷积层和全连接层的组合)对所有变换进行参数化,这增加了方法的灵活性,并允许通过优化无约束目标函数以端到端的方式训练模型。最后用可训练加权平均来代替广泛使用的置换不变算子,例如最大算子max和平均算子mean,其中权重由一个两层神经网络给出。两层神经网络对应注意力机制,值得注意的是,注意力权重使我们能够找到关键实例,这些实例可以进一步用于突出显示可能的ROI。

方法

在多实例学习中,训练样本是由多个实例组成的包,包是有标记的,但实例本身没有标记,如果一个包中至少包含一个正例,则该包是一个正包,否则即为反包。学习的目的是预测新包的类别:
fig1

  • 来自:Introduction to Multiple Instance Learning

多实例学习的关键是找到instance与包的逻辑关系,因为实例本身是无标签的,而其所属的包是有标签的,所以这是一种若监督学习范式。下面三个公式是近年的主要方法: f ( x i j ∣ j = 1 , . . , n i l − 1 ) = 1 n i ∑ j n i ( H l ( x i j l − 1 ) ) (1) f(x^{l-1}_{ij|j=1,..,n_{i}})=\frac{1}{n_{i}}\sum_{j}^{n_{i}}(H^{l}(x_{ij}^{l-1}))\tag{1} f(xijj=1,..,nil1)=ni1jni(Hl(xijl1))(1) f ( x i j ∣ j = 1 , . . , n i l − 1 ) = m a x j ( H l ( x i j l − 1 ) ) (2) f(x^{l-1}_{ij|j=1,..,n_{i}})=max_{j}(H^{l}(x_{ij}^{l-1}))\tag{2} f(xijj=1,..,nil1)=maxj(Hl(xijl1))(2) f ( x i j ∣ j = 1 , . . , n i l − 2 ) = H l ( W l − 1 ( x i j l − 2 ) ) (3) f(x^{l-2}_{ij|j=1,..,n_{i}})=H^{l}(W^{l-1}(x_{ij}^{l-2}))\tag{3} f(xijj=1,..,nil2)=Hl(Wl1(xijl2))(3)公式(1)所应用的逻辑在多实例领域被称为平均池化,即首先对实例得分(概率空间)进行判别,而后取所有示例得分平均值作为bag的结果。公式(2)所展示的方式称为最大池化,即选择Key Instance,也就是找出得分最高的关键示例来代表其包的结果。而第三种所要讨论的,就是基于注意力机制的方式。

关于注意力机制的实现,首先定义包 H H H h i h_{i} hi表示其中的实例: H = { h 1 , . . . , h K } H=\left\{h_{1},...,h_{K}\right\} H={h1,...,hK},对包 H H H的加权和为: z = ∑ k = 1 K a k h k z=\sum_{k=1}^{K}a_{k}h_{k} z=k=1Kakhk其中,权重 a a a为( w w w V V V为网络参数): a k = e x p ( w T t a n h ( V h k T ) ) ∑ j = 1 K e x p ( w T t a n h ( V h j T ) ) a_{k}=\frac{exp(w^{T}tanh(V h_{k}^{T}))}{\sum_{j=1}^{K}exp(w^{T}tanh(V h_{j}^{T}))} ak=j=1Kexp(wTtanh(VhjT))exp(wTtanh(VhkT))另外,该文章作者提到:tanh激活函数在表达非线性复杂关系是效果不好,作者进一步引入了门控思想构建了Gated Attention,注意这两个版本在不同数据集下各自有优点: a k = e x p ( w T t a n h ( V h k T ) ⊙ s i g m ( U h k T ) ) ∑ j = 1 K e x p ( w T t a n h ( V h j T ) ⊙ s i g m ( U h j T ) ) a_{k}=\frac{exp(w^{T}tanh(V h_{k}^{T})\odot sigm(U h_{k}^{T}))}{\sum_{j=1}^{K}exp(w^{T}tanh(V h_{j}^{T})\odot sigm(U h_{j}^{T}))} ak=j=1Kexp(wTtanh(VhjT)sigm(UhjT))exp(wTtanh(VhkT)sigm(UhkT))

实验设置-适合小型实验

在实验中,旨在评估所提出的方法:一个用神经网络参数化的MIL模型和一个基于(门控)注意力的池化层(“Attention”和“Gated-Attention”)。作者在许多不同的MIL数据集上评估了方法:五个MIL基准数据集(MUSK1、MUSK2、FOX、TIGER、ELEPHANT)、一个基于MNIST的图像数据集(MNIST-BAGS)和两个现实生活中的组织病理学数据集(乳腺癌、结肠癌)。作者想在实验中验证两个问题:

  • (i)方法是否达到了最佳性能或与性能最佳的方法相当
  • (ii)算法是否可以通过使用指示关键实例或ROI的注意力权重来提供可解释的结果

为了获得公平的比较,作者使用了一种常见的评估方法,即10倍交叉验证,每个实验重复5次。在MNIST-BAGS的情况下,固定划分为训练集和测试集。为了创建测试bags,仅对MNIST测试集的图像进行采样。在训练过程中,作者只使用MNIST训练集中的图像。Base模型选择几个方法,比如LeNet。

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

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

相关文章

Spring Security——基于MyBatis

目录 项目总结 新建一个项目 pom.xml application.properties配置文件 User实体类 UserMapper映射接口 UserService访问数据库中的用户信息 WebSecurityConfig配置类 MyAuthenticationFailureHandler登录失败后 MyAuthenticationSuccessHandlerw登录成功后 WebSecur…

嘉之音真丝彩绘吸音画,把记忆与向往刻进艺术里

那一瞬间定格在记忆中 那一刹那感动到骨髓里 曾经 现在 将来 每一幅画,都是一个故事的开始,一段记忆的延续,它们承载着过去,映照着现在,启迪着未来。在艺术的世界里,每个人都能找到属于自己的那一幅画…

PyTorch -- Visdom 快速实践

安装:pip install visdom 注:如果安装后启动报错可能是 visdom 版本选择问题 启动:python -m visdom.server 之后打开出现的链接 http://localhost:8097Checking for scripts. Its Alive! INFO:root:Application Started INFO:root:Working…

pytorch神经网络训练(AlexNet)

导包 import osimport torchimport torch.nn as nnimport torch.optim as optimfrom torch.utils.data import Dataset, DataLoaderfrom PIL import Imagefrom torchvision import models, transforms 定义自定义图像数据集 class CustomImageDataset(Dataset): 定义一个自…

数据采集项目1-用户行为数据同步

环境准备 linux配置、克隆103和104、编写集群分发脚本、ssh无密码登录配置、jdk安装、数据模拟集群日志数据输出脚本、xcall脚本、安装hadoop、zk安装、kafka安装、flume安装、mysql安装、maxwell安装、datax安装、hive安装 用户行为数据同步-总的数据流程图 第一层flume 数据…

22 CRT工具安装流程

22 CRT工具安装流程 SecureCRT 9.5 说明书 SecureCRT 9.5是一款由VanDyke Software开发的终端仿真程序。它为Windows、Mac和Linux操作系统提供了强大的SSH(Secure Shell)客户端功能。SecureCRT 9.5提供了对Telnet、RLogin、Serial和X.509等协议的支持&…

没那么简单!浅析伦敦金与美元的关系

伦敦金价与美元的关系可以被比喻为跷跷板的两端,它们的价格走势往往呈现出此消彼长的关系:当美元表现强势的时候,伦敦金的价格可能承受到压力;相反,当美元疲软时,黄金往往会成为避险资产,令伦敦…

Flask快速入门(路由、CBV、请求和响应、session)

Flask快速入门(路由、CBV、请求和响应、session) 目录 Flask快速入门(路由、CBV、请求和响应、session)安装创建页面Debug模式快速使用Werkzeug介绍watchdog介绍快速体验 路由系统源码分析手动配置路由动态路由-转换器 Flask的CBV…

你还在手写数据库文档?推荐一款数据库文档生成工具screw

😄 19年之后由于某些原因断更了三年,23年重新扬帆起航,推出更多优质博文,希望大家多多支持~ 🌷 古之立大事者,不惟有超世之才,亦必有坚忍不拔之志 🎐 个人CSND主页——Mi…

【调试笔记-20240612-Linux-在 QEMU 中配置 OpenWrt-23.05 支持访问 Windows 宿主机的共享目录】

调试笔记-系列文章目录 调试笔记-20240612-Linux-在 QEMU 中配置 OpenWrt-23.05 支持访问 Windows 宿主机的共享目录 文章目录 调试笔记-系列文章目录调试笔记-20240612-Linux-在 QEMU 中配置 OpenWrt-23.05 支持访问 Windows 宿主机的共享目录 前言一、调试环境操作系统&…

UEditor文件上传超出大小限制修改无效问题

网上说的方法,试过了,不生效 百度ueditor富文本编辑框怎么设置上传图片大小限制_umeditor 控制图片上传不得超过1m-CSDN博客 直接修改此处

[图解]《分析模式》漫谈02-第2章图的多重性错误

1 00:00:01,400 --> 00:00:02,790 今天,我们来看 2 00:00:04,440 --> 00:00:06,190 分析模式的第2章 3 00:00:06,960 --> 00:00:09,820 一个图上面的一些小问题 4 00:00:13,130 --> 00:00:15,320 第2章的图2.4 5 00:00:16,500 --> 00:00:22,190 …

美丽的拉萨,神奇的布达拉宫

原文链接:美丽的拉萨,神奇的布达拉宫 2022年11月30日,可能将成为一个改变人类历史的日子——美国人工智能开发机构OpenAI推出了聊天机器人ChatGPT-3.5,将人工智能的发展推向了一个新的高度。2023年11月7日,OpenAI首届…

Cloudflare 错误 1006、1007、1008 解决方案 | 如何修复

根据不完全统计,使用 Cloudflare 的网站比例已经接近 20%。因此,在日常工作中,比如进行网页抓取时,您可能经常会遇到一些因 Cloudflare 而产生的困难。例如,遇到 Cloudflare 错误 1006、1007 和 1008,这些错…

Windows下基于Frida查看内存基址和修改寄存器

使用Frida能够方便地获取到DLL基址,还能修改寄存器值。首先要通过任务管理器获得进程的PID,然后写Python脚本把Frida附加到这个PID进程,根据IDA分析出来的函数地址,HOOK到目标函数,修改寄存器的值,最终实现…

PHP聚合通多平台支付平台源码

源码介绍 php聚合通多平台支付平台源码,源码搭建了一下,这个源码不复杂,修改一下数据库账号密码然后导入数据库就可以,和网站恢复备份一样简单! 源码截图 源码下载 PHP聚合通多平台支付平台源码

vite配置unocss

在vue3vitetseslintprettierstylelinthuskylint-stagedcommitlintcommitizencz-git介绍了关于vitevue工程化搭建,现在在这个基础上,我们增加一下unocss unocss官方文档 具体开发中使用遇到的问题可以参考不喜欢原子化CSS得我,还是在新项目中使…

C++面向对象:多态性

多态性 1.概念 多态性是面向对象的程序设计的一个重要特征。在面向对象的方法中一般是这样表述多态的:向不同的对象发送同一个信息,不同的对象在接收时会产生不同的行为。也就是说,每个对象用自己的方式去响应共同的消息。 2.典例 下面这…

免费个人站 独立站 wordpress 自建网站

制作免费网站 | 免费网站构建器 | WordPress.com https://bioinformatics7.wordpress.com WordPress.com

第2章 Rust初体验5/8:match表达式和模式匹配:更富表达力:猜骰子冷热游戏

讲动人的故事,写懂人的代码 2.5 故事3: 比较答案与点数之和 贾克强:“同学们,我们开始用三种语言来实现故事3吧!” 2.5.1 Rust版故事3 这个故事实在是轻松容易地实现了。赵可菲照着书,一下子就写好了。 @@ -1,4 +1,5 @@use rand::Rng; +use std::cmp::Ordering;use std…