APP下载

基于多示例学习的钼靶图像BI-RADS分类方法

2023-05-29张亦栩于立新

中国医学计算机成像杂志 2023年2期
关键词:池化示例类别

张亦栩 于立新 郝 强

为了解决乳腺X线图像识别工作量大以及评估结果不一致等问题,基于深度学习的辅助诊断系统正被逐渐应用于乳腺X线影像判读中。由于可用于训练的图像样本数量较少,而且病变面积相对于整个图像来说很小,这给传统基于深度学习的分类模型带来挑战。一些研究[1-2]利用病灶的分割数据或是位置数据来提升模型的分类准确率。这些标注数据需要专家的先验知识,获取难度较大,因此在实际应用中受到各种限制。另有一部分研究[3-4]在不使用这些病灶数据的情况下,利用多示例学习、对比学习和多尺度学习等方法,提高了模型在分类上准确性。这些研究只进行了乳腺癌的良恶性分类。其中的良恶性判断,不是依靠真实活检的结果,而是将乳腺影像报告和数据系统(BI-RADS)中的少数级别归为良性,其余等级归为恶性。

为了更加贴合实际的临床应用场景,已经有研究根 据BI-RADS 中 的 等 级 进 行 分 类。Domingues 等[5]提出了2 种新的数据预处理技术来提高分类器的准确率。Oliveira 等[6]提出了一种轻量级的深度学习管道以提升模型的分类性能。Kang 等[7]提出了一种用于BI-RADS 评分的主导模糊全连接层以提高分类精度。但是这些方法只关注于模型的分类效果,没有对模型预测结果的可解释性进行更多的研究。与其他自然图像分类任务不同,医疗健康应用不仅需要得出正确的判别结果,更需要给出让医生和患者信服的诊断依据。

多示例学习的预测结果具有较优的可解释性,且多示例学习在微小目标的分类任务中具有鲁棒性[3],因此本文将其应用到我们的研究中。由于多示例学习通常应用于二元分类,无法直接应用于类别独立的多分类任务。本文通过重新设计模型的标签以及模型的损失函数和输出判断方法,让模型可以在每个子任务上应用多示例学习,从而使模型具有对图像中每一小块区域进行多分类的能力,达到提升可解释性的效果。

方 法

1.多示例学习算法原理及问题

多示例问题出现在训练示例标签不明确的任务中。假设将一张图片等分成m个区域,每一张图片被认为是一个示例包,每一个区域认作为是一个示例。传统的多示例学习被定义为:如果包中至少存在一个正标签的示例,则包被赋予正标签;不含有正标签示例的包,则被赋予负标签。包内的每个示例都经过一个共享参数的神经网络来获得伪标签,之后通过池化对示例进行聚合得到最终的标签结果。

在模型训练过程中,模型的激活函数会输出每一个示例为正的概率R。对于是负样本的包而言,包中所有示例的R应都期望趋近于0。而对于是正样本的包而言,包中至少有一个示例的R能接近于1。为了满足以上两个要求,模型只需要找出所有示例中最大的R,并将其作为包是正样本的概率,即可进行损失计算。假设θ代表网络的权重,B代表包,包为正样本的概率可以被定义为:

多示例学习模型通过学习每个区域的特征进而构造整张图片的表征,整张图片的分类结果与每个区域的分类结果具有直接的映射关系。模型可以直观地显示出与最终分类结果相关的区域,这让多示例学习的预测结果具有了较优的可解释性。

从定义和公式中可以看到,传统多示例学习只能应用于二元分类。而BI-RADS 分类任务需要对乳腺X 线图像进行多个类别的分类,因此必须对模型的架构和训练过程进行调整,其需要满足以下约束:

(1)示例池化的过程中,示例与示例之间、示例与包之间在语义上不能有冲突。

(2)池化的方法能够有效地配合损失函数对模型进行评估。

2.基于多标签分类的多示例学习方法

传统多示例学习池化方法只能应用于二元分类。本文提出将类别独立的多分类问题分解成多个二元子任务,使模型可以在每个子任务中进行示例的池化,以实现多示例学习。该方法的实质就是将一个多分类任务转变成了一个多标签分类任务。然而,一张乳腺图像只可能有一个等级,但是多标签分类模型允许有多个类别同时存在,两者造成了矛盾。为了解决这个问题,本文根据BI-RADS 等级有序的特点,设计了网络的训练标签、损失函数和输出判断方法,以保证最后输出的唯一性。模型分类的流程如图1所示。

2.1 多标签网络模型

BI-RADS 分类任务被分成了4个子任务。模型会分别判断该张乳腺图片是否属于BI-RADS 的第二类,第三类,第四类或是第五类。如果都不是则默认为第一类(即正常)。在这几个判断当中,只有第一类与其他4 个分类互斥,其余四个分类允许同时存在。虽然池化过程被分为了4 个二元子任务,但是4 个子任务的特征提取网络是共享的,区别在于输出时分别计算概率。

模型使用卷积神经网络DenseNet[11]作为特征提取的主干网络。模型的最后会输出一个维度为4 的特征。经过激活函数Sigmoid 层后,分别输出4 个类别的概率。模型的架构如图2所示。

图1 基于多标签分类的多示例学习方法分类过程

图2 多标签分类模型原理

图3 示例分类结果(肿块)

图4 示例分类结果(钙化)

2.2 面向BI-RADS的标签设计

传统的多分类任务使用one-hot标签,这种标签不允许多个类别同时存在,因此无法应用于多标签模型当中。基于网络的输出本文设计了两种形式的非互斥标签。第一种是基于有序编码的标签。BI-RARDS的类别是有序的,即等级越高,患癌的概率越大。根据此可以利用有序编码对4个编码位的标签进行重新设计,其编码方法如表1所示;第二种是基于权重的标签,其编码方式如表1所示,其中“-”表示不计算该编码位损失。在高等级BI-RADS类别计算损失时,低位编码位的权重会被赋予0,即损失函数不会去计算低位编码位的损失,同时高位编码位的权重会相应加大。

表1 标签编码设计

2.3 示例池化方法

模型使用最大池化方法对示例进行池化。定义数据集中某一个示例包为Bi,包中的某一个示例为BiXj。每一个示例在经过卷积神经网络后都会得到一个四维特征BiXjF={BiXj f1,BiXj f2,BiXj f3,BiXj f4},通过激活函数Sigmoid 后, 得到一个四维输出BiXjR={BiXjr1,BiXjr2,BiXjr3,BiXjr4},BiXjrk代表示例属于BI-RADS(k+1)级的概率。

包 最 终 的 输 出 定 义 为BiR={Bir1,Bir2,Bir3,Bir4}。分别在4 个类别中对示例进行排序,并找出4 个类别中的最大值,作为包在该类别上的概率,其定义如下:

示例在每个子任务上单独池化,子任务之间互不干涉。同一个示例,在不同的子任务上排序可能是不同的,因此包的4 个输出也不一定来自同一个示例。整体池化过程如图1所示。

2.4 损失函数设计

通过池化得到包的输出之后,即可进行损失计算。模型采用二元交叉熵损失作为损失函数,其通过计算输出层与标签之间的Sigmoid 交叉熵来作为误差的衡量标准,每一个输出维度的损失定义如下:

损失函数中加入了Focalloss[8]以摆脱数据不平衡对模型的影响,Focalloss的定义如下:

其中CE 代表交叉熵损失函数,γ 为可调参数。代入公式(7),最终损失函数可以被定义为:

在2.2 节中提出了基于权重的标签编码,该权重是在损失函数中实现。权重定义为w,其损失函数可以定义如下:

w的值取决于2.2 中的权重标签,如果该编码位不需要计算损失,则w= 0,如果该编码位需要计算损失,则:

其中c代表总共需要计算损失的编码位数量。

2.5 模型输出判断方法

在多分类方法中,通过选取输出中概率最大者作为该图片的类别。在本文中,模型的训练过程采取了特殊的样本标签,因此需要重新设计模型的输出判断方法以保证分类输出时的唯一性。由于BI-RADS 等级是有序的,当一张乳腺图片中有多种不同等级的病灶时,取较高的等级作为该张乳腺图片的等级。

从上文可得,模型池化后的输出为一个维度为4的向量,它的每一维分别代表包属于BI-RADS 2 类、BI-RADS 3 类、BI-RADS 4 类、BI-RADS 5 类 的 概率。模型会从最后一维起(代表BI-RADS 5 类),从高位至底位开始判断,如果该位的数值大于等于所设阈值,则将包判断为当前位所代表的类别。如果当前位数值小于所设阈值,则跳转至前一位继续进行判断,重复以上流程。如果四维向量的每一维数值都小于所设阈值,则该包属于BI-RADS 1类。

3.实验数据及实验参数

实验在公开数据集INbreast[9]上进行,该数据集是目前画质清晰且数据量较多的数据集,它拥有所有BI-RADS 等级所对应的全尺寸乳腺X 线图片数据。随机选取原有数据集的75%作为训练集,25%作为测试集。对于深度学习而言,数据量较少容易使模型产生过拟合,因此许多实验都采用了数据增强的方法来提升模型的泛化能力。我们采用与Oliveira 等[6]同样的数据增强方法。训练集采用了旋转,镜像翻转,切变等数据增强方法,图片从原有的307 张增加到7 368 张。测试集不进行数据增强。训练集中每幅图像都按步骤进行增强,数量如表2 所示。其中旋转采用3种(90°、180°和270°)旋转角度。训练集内采用五重交叉验证对模型进行参数调整。因为数据集中4a、4b、4c的占比较少,这3个类别可用于测试的数据可能只有1 至2 张,无法有效证明模型在这些类别上的优劣,因此我们选择与以往的研究一样,将4a、4b、4c 统一归为一类进行模型对比实验。此外,由于BIRADS 的第6 类是通过活检进行判断的,因此将BIRADS的第6类归在第5类中。

为最大限度地使每张图片信息得以提取,预处理阶段利用了OTSU 算法将乳房区域提取出来,并裁减掉无用背景。在裁剪之后,每张图片被压缩至672×672 像素。为了保证示例内能够完整覆盖整个病灶,使用了一个224×224 的滑动窗口提取示例,滑动时的步长被设置为112像素。在提取之后,就能得到25个示例,示例之间会有重复区域。

模型使用Pytorch 框架实现。实验运行环境如下:Intel Xeon E5-2678 v3@ 2.50Ghz 处 理 器,32GB 内 存和NVIDIA GeForce GTX 3090 图形单元。实验使用Adam 算法优化参数,初始学习率设置在0.001,训练批量大小设置为5(125 个示例)。为了保证公平性,文中所提到的算法的网络层数和各项超参数的设置也尽可能相同。

表2 数据增强

结 果

实验中选取准确率(ACC),平均绝对误差(MAE),最大准确率(MaxAcc),和宏平均绝对误差(MAEmacro)作为分类的评价指标。

其中最大准确率(MaxAcc) 是由Domingues等[5]提出,其定义为:

针对BI-RADS 分类任务,本文提出了宏平均绝对误差(MAEmacro)。在不平衡数据中,模型会更容易得到数据量大的类别,而MAE 是在所有样本上取均值,因此难以体现模型在少数类上的表现。MAEmacro会在每一个类别中单独计算一次MAE,并在最后计算所有类的均值,其定义如下:

其中,nk代表每一个类的数量,yki表示属于k类的第i个真实值,̂ki表示对应于yki的预测值。

表3 总结了多种模型在INbreast 数据集上的实验表现。其中ResNet和DenseNet是卷积神经网络,它们是主流的自然图像分类模型。Vision Transformer是利用Transformer结构进行图像分类的模型,该模型在大型的分类数据集中有突出的表现。第四种是一种基于门控注意力机制的多示例学习模型。该模型通过神经网络对多个示例的特征表示进行融合,并利用融合后的特征表示去训练分类器以预测最终的标签,无需预定义的池化方法。因此可以通过修改最后的分类器将其应用于多分类任务。最后几种模型是本文提出的方法,其中OC 代表有序标签,WC 代表权重标签,RN代表基于ResNet网络,DN代表基于DenseNet网络。

表3 不同算法分类结果

本文选取了以往在INbreast 上,面向乳腺X 线影像分类的相关模型和研究,并罗列在了表4 中。其中ACC(binary)代表的是良恶性分类上的准确率。需要注意的是,列出的其他研究中,测试集和训练集在数量上的划分略有不同,因此模型的相关数据指标会存在差异。

表4 INbreast数据集上的往期研究

从以上两表中可以看到,比起主流的图像分类模型,多示例学习可以在该任务上获得较优的性能。在使用相同特征提取网络的情况下,MIML-WC-RN 相比于ResNet 在平均绝对误差上降低了15.38%,MIML-WC-DN 相比于DenseNet 在平均绝对误差上降低了24.48%,可见多示例学习可以较大地降低模型误差,提升模型的准确率。得益于神经网络的权重分配,基于注意力机制的多示例学习模型[10]也能在该任务上获得较高的准确率,但是模型在MAE 以及MAEmacro两项指标上仍然较高,说明模型在一些等级上的判断会有较高的误差。

多示例模型通过对示例进行分类来反映预测结果的可解释性。每一个示例区域分类的准确性越高,意味整个乳腺X线图像的分类结果越具有理论依据。由于没有示例级别的BI-RADS 标签,无法对示例分类的准确度进行分析,但是可以通过病灶的位置数据与示例分类的结果进行比较。如果一个示例区域内有病灶,则将该示例区域视为异常区域。如果模型判断该异常示例的BI-RADS等级大于1类,则视为正确,反之则视为错误。实验中选取准确率(ACC)、真阳性率(TPR)、特异度(TNR)和精确率(PPV)作为示例分类的评价指标。本文对文中提到的3 个多示例学习模型分别进行了实验,结果如表5所示。

在表5 中可以看到,基于注意力机制的多示例学习[10]几乎不具备对示例进行分类的能力。而基于有序标签的多示例学习方法在示例分类准确率和真阳性率上有较好的表现,在训练集和验证集上都有更强的病灶检出能力。

表5 不同算法示例分类结果

讨 论

在本文中,我们主要讨论了如何将多实例学习应用于乳腺X 线图像的BI-RADS 多分类任务,以提高模型在预测结果中的可解释性。传统多示例学习池化方法只能应用于二元分类。基于BI-RADS 类别有序的特性,我们将互斥的多分类问题解耦为多个二元子任务,以便模型可以在每个子任务中实现示例的池化,达到多示例学习的效果。为了解决模型输出不唯一的问题,提出了两种标签形式:有序编码和权重编码,并提出与之对应的损失函数和输出判断方法。

由于乳腺肿块通常仅占整个乳腺X线图像的2%,而微小钙化的面积则会更小,因此普通的图像分类模型难以关注到微小的病灶。从表3 和4 中可以看到,传统的卷积神经网络在样本数量少的情况下能够维持一定的准确率,而基于Transformer 的模型会陷入严重的过拟合,导致模型在验证集上的准确率较低。基于多示例学习的方法会把模型的特征提取范围限制在一个示例区域之内,特征提取网络无法得知示例区域以外的信息。由于模型只能关注于较小的特征,而不是整个乳房的特征,因此模型比较容易学习到病灶和正常组织之间的区别。除此之外,微小的钙化可能在图片压缩的过程中遭到丢失。传统的深度学习分类模型适应于224×224 分辨率,虽然可以使用更大的分辨率但是模型难以关注到微小物体。我们的方法把图片分成了多个224×224 的小块,并利用多示例学习对图片进行分类,模型可以在更高的分辨率上进行有效分类,这也让我们的模型获得了比较好的表现。虽然672×672 像素比起之前的研究已经是最高的分辨率,但是受制于实验环境可能仍然会有一些极小的钙化点在压缩中遭到了丢失,这让模型在钙化的分类上受到了一些限制。

Ilse 等提出的基于注意力机制的多示例学习模型虽然在分类准确率上获得了较优的表现,但是其模型几乎不具备展示病灶区域的能力。由于该模型使用神经网络对示例特征进行池化,因此包的特征和示例的特征可能差异较大。在包特征上训练的分类器应用于示例分类时效果较差,模型几乎将所有的示例都归为了异常示例。因此在该方法上利用示例分类来对模型进行解释不可行。本文提出的多示例学习方法在示例类别和包的类别关系上有明确的映射关系,因此对于分类结果有更佳的可解释性。

所提出的深度学习模型可以展示出每一个可能存在的病变区域,其展示结果如图3-图4所示。其中图图3 为肿块的分类结果,图4 位钙化的分类结果。示例与示例之间有重复区域,取等级较高者进行显示。一个示例在图中占四个方格,示例的BI-RADS 等级从黄到红递增进行显示。根据以下两图可以看到,在没有病灶轮廓数据或是位置数据对模型进行训练的情况下,所提出的模型也能找到病灶所在的位置,并且可以进行基于BI-RADS的多分类。

总而言之,在乳腺X 线图像BI-RADS 分类任务中,本文提出的深度学习模型比起以往的深度学习分类模型具有较优的准确率。并且,模型在没有病灶轮廓数据或是位置数据进行训练的情况下,能够展示出病灶的所在位置和其各自的BI-RADS 等级。这让模型的分类结果具有较好的可解释性,可以为医师的后续诊断提供帮助。

猜你喜欢

池化示例类别
基于Sobel算子的池化算法设计
卷积神经网络中的自适应加权池化
设施蔬菜病害识别中的CNN池化选择
2019年高考上海卷作文示例
常见单位符号大小写混淆示例
常见单位符号大小写混淆示例
基于卷积神经网络和池化算法的表情识别研究
“全等三角形”错解示例
服务类别
论类别股东会