基于联合特征学习和多重迁移学习的肝脏病变分类
2021-08-24宋余庆
蒋 瑞, 刘 哲, 宋余庆, 陈 鹏, 郝 文
(江苏大学 计算机科学与通信工程学院, 江苏 镇江 212013)
肝脏是人体进行新陈代谢的主要器官之一,往往也是肿瘤疾病的多发地[1].肝脏肿瘤的早期检测与诊断通常缺乏明显的疾病症状,且肝脏正常组织和肝脏病变组织之间以及不同类型的肝脏病变组织之间,在医学影像中无明显的密度差异,这使医生对肝脏肿瘤病变的诊断变得困难,从而容易错过最佳治疗期.临床上医学影像分析对于肝脏疾病的临床诊断、病理分析和治疗决策等方面具有重要意义.计算机断层扫描(computed tomography,CT)、核磁共振和肝脏穿刺活检技术是临床医学中用来分析、确诊肝肿瘤的3大方法.与MIR和LB相比,CT因其鲁棒性和高分辨率的成像技术被广泛应用于临床肝病分析.传统人工医学影像分析往往需要反复对比各个时期、各张CT切片,十分费时、费力,而且严重依赖医生的主观判断,容易出现误诊和漏诊.因此通过计算机来辅助医生进行肝脏肿瘤病变分类极具临床意义.近年来深度学习方法被广泛应用于医学图像分类,并取得了显著的效果.
在医学图像分类中,医学图像复杂的微解剖学特点使得医学图像的分类不是只依赖一种特定的特征信息.因此,在传统机器学习方法的特征工程中往往通过多样化特征信息来提高分类效果.目前,卷积神经网络(convolutional neural network,CNN)在医学图像处理领域得到广泛应用.为了获取更多有用的数据信息,在进行分类任务前通常需要对原始医学图像进行相关的数据预处理.G. I. RAJATHI等[2]提取了CT图像不同的纹理特征并通过特征选择对纹理特征进行择优筛选,然后利用支持向量机、K近邻[3]分类器和随机森林组成的集成分类器来进行肝脏病变分类.F. ÖZYURT等[4]提出了基于CNN肝脏病变的分类方法,该方法在进行分类前通过奇异值分解和小波变换来对原始数据进行特征强化预处理[5];L. BALAGOUROUCHETTY等[1]在预处理中根据切片时序融合了增强CT两个阶段的对应图像来强化特征学习,随后通过CNN实现最终肝脏病变的分类.目前,对于CNN的医学图像分类研究大多侧重于优化卷积模块和分类模块的组织结构.缺乏训练数据是医学图像处理领域的难题之一,研究者们尝试生成新的数据来提高对肝脏病变的分类效果.
深度学习在医学图像分类的应用中,小样本数据集下会导致网络模型难以学到有效的特征,模型性能不稳定并且模型存在严重的过拟合问题.为了提高对不同肝脏肿瘤病变的分类效果,提出一种基于联合特征学习和多重迁移学习的肝脏肿瘤病变分类方法,设计了联合特征学习双流卷积神经网络,采用多分类器集成的形式实现分类.通过扩充通道的方式对图像进行预处理,在模型的训练过程中结合参数迁移和域适应来减少模型损耗并提高模型的分类性能.
1 基于联合特征和多重迁移的方法
为了让卷积神经网络从少量的有标签数据中学习到更多的目标任务特征用于肝脏肿瘤病变分类,提出了基于联合特征学习和多重迁移学习的方法.主要有4个方面的改进:① 通过扩充通道的方式对图像进行预处理,使得网络能从原始输入图像中提取到更多与未知样本具有共同性的有效基本特征信息;② 为了避免网络加深所造成的特征信息丢失,设计了联合特征学习双流卷积神经网络,通过两条并行交叉的网络后可以提取不同尺度的特征,然后将对应的特征图进行特征融合,同时采用残差形式的卷积模块进行不同层次特征信息的补充;③ 为了缓解网络的过拟合现象,采用了参数迁移的方式来辅助目标网络的初始化训练,在训练过程中添加域适应过程来约束网络模型训练;④ 为了加强网络的鲁棒性和分类性能,更好地利用样本数据,避免小样本数据影响对肝脏病变分类结果的稳定性,设计了集成分类器并通过所提出的对偶约束对整个集成分类器进行约束优化.在设计网络时,不仅要考虑让网络最大程度学习到训练样本的特征,还要考虑让网络从训练样本中学习到更多与未知样本具有很强共同性的特征以增强模型的鲁棒性;同时好的分类效果不仅需要有判别性的特征,更需要一个强有力的分类器.文中设计的模型结构包括联合特征学习双流卷积神经网络(特征提取模块)和集成分类器模块,如图1所示.
图1 文中算法示意图
1.1 基于联合特征学习的双流卷积神经网络
文中提出的特征提取模块是一个联合特征学习双流卷积神经网络,该网络由上下两条并行交叉的网络组成,如图1蓝色区域内f-a和f-b所示.输入数据经过f-a和f-b网络后可以提取不同尺度的特征图进行对应的特征融合操作,从而提高特征信息的有效提取与表达.在图1中,f-a网络是由Cpool_block堆叠形成,而f-b由Conv_block堆叠形成.Cpool_block和Conv_block的模型结构如图2所示.
图2 特征提取模块的基础组成模块结构示意图
为了使网络最大程度地从训练样本学习有效的特征,Conv_block在传统卷积层中添加了残差模块,如图2a所示.图2a中输入分别经过左边的残差分支[6]和右边的普通卷积分类,得到的输出特征将沿着通道维度进行拼接并作为下一层的输入.在图2中,每个对应尺度的Conv_block输出特征与Cpool_block输出特征沿着通道维度进行拼接,得到的结果将作为Cpool_block下一个模块的输入和集成分类器中对应分类器的输入.这种联合特征学习双流卷积神经网络结构可以让不同的Conv_block对相同的输入数据进行不同维度的特征学习,并不断地对因网络加深造成的特征信息丢失进行特征补充.
为了使网络从训练样本中学习到更多与未知样本具有共同性的基本特征,设计了新的并行网络联合深度卷积网络模块Cpool_block进行特征学习.由图2b可见,Cpool_block模块的输入是上一层Conv_block的输出特征与Cpool_block的输出特征经过通道维度拼接而得到的特征.在Cpool_block中,为了能在保证特征共享性的同时使整个过程可自适应优化,在Cpool模块的初始分别放置了一个1×1卷积层,进行特征图数量的降维和尺度的统一.随后1×1卷积层的输出特征图经过全局平均池化和全局最大池化获取特征图的全局特征和局部显著特征,再将2个特征分别与1×1卷积层的输出特征进行乘积操作,从而获得全局特征输出特征图和局部显著特征输出图,最后将2组特征沿着通道维度拼接组合在一起,同时Conv_block与Cpool_block的输出特征沿着通道维度拼接作为下一个Cpool_block的输入,从而实现联合特征的学习.
1.2 集成分类器
为了更好地利用现有样本数据进行肝脏病变分类,避免小样本影响分类结果的稳定性,文中通过4个子分类器的集成方式来训练一个强有力的分类器,结构如图3所示.
图3 集成分类器结构示意图
图4 多重迁移过程示意图
为了充分利用网络中所提取的不同尺度特征信息,在每对Cpool_block和Conv_block的输出位置都放置了一个由全连接层和softmax组合而成的分类器,对每对Cpool_block和Conv_block的联合特征进行分类,4个分类器通过少数服从多数的投票机制选出最终的分类结果.为了加强分类器的鲁棒性,在分类器训练过程中采用了双重约束:第1重就是最终预测的判别输出和真实标签之间的误差损失L1;第2重,首先分别计算4个子分类器输出与投票选出的最终输出之间的误差值,其次分别计算4个子分类器和真实标签之间的误差损失,2类误差值构成2个误差分布,计算2个分布之间的距离得到第2重误差损失L2.将2重误差损失和作为整个分类网络的损失LC,进行迭代优化自适应训练从而得到最终的分类网络,各损失函数为
(1)
(2)
LC=L1+αL2,
(3)
式中:L1和L2分别为2重误差;N为分类任务的类别总数;y为真实标签;而ypred为模型的最终预测结果;
M为集成分类器中子分类个数,在本方法中M=4;p为由计算每个子分类器和真实标签的误差所组成的误差分布;q为计算每个子分类器和最终投票得到的预测值的误差所组成的误差分布,而计算上述2种误差的方式与L1计算方法相似;α为平衡参数,用于平衡两重误差的训练过程.
1.3 多重迁移学习
针对目前肝脏病变分类的研究,鲜有公开的可训练数据集,文中所使用的肝脏病变数据集是从原始腹部CT中截取的ROI,会损失部分病变位于肝脏中的整体特征,因此采用从整个腹部CT图像中预训练网络参数并进行参数迁移[7].在进行最终的分类训练前先构建了一个自动编码器,其中编码部分为文中设计的联合特征学习双流卷积神经网络,训练时使用整个腹部CT图像,通过训练该编码器得到整个腹部CT的特征参数.由于病变ROI数据集尺寸均统一为64×64像素,而原始腹部CT图像大小是512×512像素,因此在进行最终的参数迁移时仅迁移了与最终的目标网络结构相同的部分层次,如下图4所示,将与目标网络维度相同的卷积层进行了参数迁移,随后在训练过程中进行进一步自动调参优化从而可以加速网络收敛并减少相应的初始参数的计算量.
为了避免训练好的网络在测试数据中出现过拟合现象,在迁移参数后利用训练数据训练分类网络时,使用以迁移参数的联合特征学习双流卷积神经网络对测试数据进行特征提取,并对训练数据和测试数据的特征进行域适应学习,即判断特征来自训练数据还是测试数据,将域判别损失作为参考损失与训练数据的分类损失相结合一起对分类网络进行参数优化并迭代训练,如图4b所示,域损失的具体求解式为
(4)
式中:N为特征图的总数;k(·)代表了高斯核变换的过程,计算式为
(5)
式中:x和y分别为从训练数据和测试数据中提取的特征图.
2 试验结果与分析
试验使用NVIDIA GeForce GTX 1080 Ti的显卡,8 GB显存,32 GB内存,在Python 3.7.1的环境下,使用版本为1.0.1的Pytorch深度学习开源框架实现.任务都是基于腹部肝脏CT图像中肿瘤病变的分类.
2.1 试验数据
文中采用的数据来自于江苏大学附属医院,包括155张腹部平扫CT图像,样本示例如图5所示.
图5 不同类型的数据样本
样本中有62张患有肝细胞癌(HCC)的影像,35张患有转移性肝细胞癌(MET)的影像,40张含有血管瘤(HEM)的影像以及53张不含病变区域(Healthy)的影像.根据专业影像科医生标注的病变区域类型,从CT图像中裁剪出不同病变类型的感兴趣区域(ROI),最终获得包含ROI的图像数据共2 608张,其中1 078例包含HCC、368例包含MET、755例包含HEM以及407例为正常无病变.
2.2 评价标准
为充分证明提出方法的有效性,设计实施了综合试验并采用了多种评价指标:特异性(Spec)、灵敏度(Sens)、精确率(Prec)、均衡平均数(F1-score)、准确率(Accu)和误差率(Erro),其中准确率表示所有被正确分类的样本占所有样本的比例;误差率表示所有被错误分类的样本占所有样本的比例;灵敏度表示所有正样本中被正确分类的样本数所占比例;特异性表示所有负样本中被正确判别的样本数所占比例;精确率示的是所有被预测为正类的样本中正样本所占比例;F1-score是对精确度和特异性的一个综合衡量,这些评价标准计算式为
(6)
(7)
(8)
(9)
(10)
(11)
式中:TP和FP为正确分类和错误分类的正样本数;TN和FN分别为正确分类和错误分类的负样本数,其中,错误分类意味着将负样本分类为正样本.
Precision-Recall曲线 (PR) 和受试者特性曲线ROC(receiver operating characteristic)是分类模型最常见的两种评价曲线.其中ROC曲线的横轴是假正率(FFPR),纵轴是真正率(TTRP),FFPR和TTRP的计算式为
(12)
(13)
而PR曲线的横轴是精度,纵轴是召回率也就是灵敏度.PR曲线更加关注模型在正样本上的效果,而ROC则是综合考虑模型在正负样本上的效果对比,因此当不同种类数据量不平衡时,ROC曲线比PR曲线更稳定.
2.3 数据预处理
在训练数据量较小的前提下,数据的预处理是一个模型取得良好分类结果的关键.为了去除CT扫描中与其他器官和组织相关的不相关信息,采用了CT值(以CCT表示)变换的方法来量纲一化处理原始图像.CCT的单位是测定人体某一局部组织或器官密度大小的一种计量单位,通常称为亨氏单位HU(Hounsfield unit).像素值与CCT的转换式为
CCT=PV×RS×RI,
(14)
式中:RS表示RescaleSlope;RI表示RescaleIntercept;PV表示pixel value, 都可从CT图像的头文件中获取.试验中,针对肝脏CT数据,取RI=-1 024,RS=1.
根据医生标注获得感兴趣区域图像,如图6所示,在训练CNNs网络时要求输入ROI图像具有相同尺寸、统一维度,文中在预处理过程中通过压缩和插值法将所有ROI图像统一大小为 64×64像素.
图6 从肝脏二维CT切片中提取ROI的过程
此外,CNNs每层隐藏层的1组卷积核对应自然图像的RGB 3通道的权重是共享的,而分类网络核心任务之一就是尽可能地学习到更多的特征,文中采用了Bicubic、Nearest和Lanczos插值法3种插值法,如图7a所示.
图7 可视化数据预处理的过程
将原始单通道灰度图像扩展成了3通道图像,而这3个通道中的细节特征都有所不同,从而使共享的权重能在3个通道上提取到更多不同的特征信息来增强分类器学习能力.在原2D像素矩阵上添加一个新的空间维度,将其转换为3D的像素矩阵.沿着新的空间轴,将经插值处理的肝脏病变像素矩阵串联为一个整体作为伪RGB的3通道特征图,如图7b所示.为了增加数据的多样,文中研究以自然图像数据增强的方式预处理CT图像,对伪RGB 3通道执行各种转换操作(如旋转、裁剪、填充等),以生成新的样本数据,如图7c所示.
上述方法预处理数据主要有2大优点:① 增强原始特征.使用插值法可以扩展通道信息以突出原始特征,而且可以作为1种信息补偿机制,缓解某一通道经CNN提取特征不足的问题.② 扩充数据,避免过拟合.基于原始数据新生成的病变区域无需医生重新标注,可直接用于训练.
2.4 试验结果分析
为了获得鲁棒性更强的网络,采用四折交叉验证的方法来训练网络.文中通过特异性、敏感性、精确率、F1-score、准确率和错误率评价指标,同时通过2种评价曲线(PR曲线和ROC曲线)来评估模型的鲁棒性.选取SENet3作为基准模型.为了从不同角度证明改进方法优于基线方法,文中通过试验统计并显示混淆矩阵,如图8所示.该混淆矩阵的每一行的数值表示在当前真实标签下预测对的概率,即每一类别的召回率.每一列表示在当前预测标签下预测对的概率,即每一类别的精确率.其中纵轴表示真实标签,横轴表示预测标签,对角线表示每一类别预测正确的样本所占该类别样本总数的比例.
图8 各方法在测试集上的混淆矩阵
由图8可见,文中提出的方法在不同类型肝脏病变上的分类识别率要远好于基准模型,对于不同类别肝脏病变的准确率比基准模型平均提高了约10%,并且在正常肝脏组织上全部预测正确.
文中方法训练采用了不同的策略,如多插值法、集成分类和CPool模块.为了证明每一部分对肝脏病变的有效性,在相同的数据集上,仅控制一个作为变量进行了试验,试验结果见表1.表中,B代表SENet34[6],M 代表了网络的输入经过多插值法扩展,MC 代表了网络使用的是集成分类器,CPMC是在集成分类器的基础上添加了CPool模块所构成的子网络.
表1 不同训练策略下的对比试验 %
由表1可见,使用多插值法的预处理方法可以有效提高模型对肝脏病变的分类性能,在多插值法的基础上引入集成分类可以进一步提高模型对肝脏病变的分类效果,在添加了多插值法和集成分类的基础上引入Cpool_block子网络可以进一步优化模型的性能.使用多插值可以优化数据的特征表示,集成分类可以从不同尺度的深度特征进行肝脏病变分类监督训练有利于模型进行有效的特征性学习.Cpool_block子网的构建使得模型具有了联合特征学习的能力和更加有效的特征选择优化能力.
为了验证文中方法的分类效果,在相同的数据集上将文中方法与SENet34、ResNet34、DenseNet等经典分类方法进行比较,试验结果见表2.
表2 与经典分类方法比较 %
由表2可见,SENet34模型在HCC上的分类效果更好于ResNet34和DenseNet,DenseNet在MET和HEM上的分类效果更好于ResNet和SENet.文中方法在HCC、MET和HEM上的各类分类评价指标上均远远高于上述模型,证明了提出的联合特征学习和多重迁移学习方法在数据集较小的情况下可以有效地提高对肝脏病变的分类效果.
由于各研究方法使用的肝脏肿瘤病变数据类型不一致,且可用的有标签肝脏病变肿瘤数据集都是私有的,因缺乏开源相关代码,很多研究方法难以复现,因此很难与其他已发表的结果进行直接比较.因此文中只是对已有肝肿瘤分类方法的试验结果进行了统计,如表3所示,其中,HCC、HEM、MET、FNH、CYST及Healthy分别表示肝细胞癌、血管瘤、转移性肝腺癌、肝结节增生、肝囊肿及正常肝组织.
表3 与目前肝肿瘤分类方法进行比较 %
表3列举了部分肝肿瘤病变分类方法,从中可见与以前分类方法相比,文中提出的分类算法表现较为良好.
3 结 论
文中研究了一种基于联合特征学习和多重迁移学习的肝脏肿瘤病变分类方法.采用三种插值方法对原始灰度图像进行通道的扩展,有利于分类模型从原始图像中提取丰富的基础特征;基于联合特征学习的双流卷积神经网络使得模型在特征提取过程中,缓解了因网络加深造成的特征信息丢失问题.通过试验可知,相比于其他分类算法及主流分类框架,文中算法能够较为有效地加强图像语义信息的提取和表达,且具有更高的分类精度,并在仅有的小样本分类任务上取得良好的性能表现.但该方法仍存在优化空间,特征提取模块的计算量以及分类结果不平衡的问题,在未来仍需要研究解决.