赞
踩
关于多示例学习的资料网上比较少,但是在医学图像方面还是有人在应用的。主要是因为医学图像一般都比较大,几个G都是十分常见的,这么大图片是无法直接训练,一般都会进行切图,所以天然契合多示例学习bag和instance的概念。最近看了一篇论文刚好关于这方面的,所以做下笔记。
github地址:https://github.com/binli123/dsmil-wsi
paper:https://arxiv.org/abs/2011.08939
在多示例学习(MIL)中,一组训练样本被视为包含多个instance的bag。每个bag都有一个bag标签,如果bag中至少包含一个阳性instance,则bag标签为正;如果不包含阳性instance,则bag为阴性。示例级标签是未知的。如果是二元分类,则可以表达成以下公式:
多示例学习一般按两种方式建模:
(1)基于示例的方法。简单来说就是训练一个示例级别的分类器,计算每个示例的分数,然后通过池化运算符来汇总一个bag内的所有示例分数,最终得到bag的分数。
(2)基于embedding的方法。简单来说就是将示例映射为高维向量,即训练一个示例级别的特征提取器,然后通过特征向量的方式来表达示例,接着通过一个聚合运算符将一个bag内的所有向量聚合得到bag级别的向量,最终通过bag向量得到bag分数。
DSMIL整个模型架构并不复杂,整个过程可以分为两个部分:自监督对比学习图像特征、MIL聚合特征。在MIL聚合特征的过程中比较巧妙的结合了上面建模方式。
整个流程可以表示为:
(1)采用SimCLR作为特征提取器
(2)采用不同倍率的图像提取出的特征级联形成特征金字塔
解释一下第(2)点,比如说在10×下图像尺寸为224×224的patch将包含4个在20×下图像尺寸为224×224的子图像。对于每个10×下patch,我们将10×提取出的特征向量与20×下每一个子图像提取出的特征中的连接起来,并获得4个特征向量。下图说明了三个放大倍数(20×-10×-5×)的情况。
顺带提一下,论文里面使用的放大倍率是20×和 5×。
这样做的目的:(这个目的结合MIL聚合特征过程就很好理解了)
(1)对于同属于5×patch的20×的patch而言,特征向量的第一部分相同。所以,在DSMIL中,这些向量的距离测量的结果si = <qi,qm>将趋于相似,并且示例将分配相似的注意力权重。特征向量的第二部分不同可以使于每个20×的patch的注意力权重存在变化。
(2)来自不同尺度的信息被保存在特征向量中,从而允许网络跨不同尺度选择适当的信息。
MIL聚合有两个分支,分别是MIL最大池化与示例聚合,如下图所示。
假设H={h0,…,hN−1}为一个bag内所有的特征向量,然后进行如下计算:
W0为一个全连接层权重,负责将特征向量映射到一个分数。最后取最大池化作为该分支的bag分数。
(1) 示例向量首先会被转换为q和v向量:
Wq和Wv为一个权重矩阵。
(2) 计算示例向量的注意力值:
<.,.>为向量內积操作,qm为最大池化分支中最大值对应的示例向量的q向量。使用softmax函数将其归一化。
(3)将每个注意力值与对应的v向量进行数乘并相加:
(4)计算MIL聚合的bag分数:
(5)计算最终bag分数:
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。