面向甲状腺结节良恶分类的cRes-GAN算法
2020-05-09李语心赵艳娜谢荣理刘浚嘉
李语心,赵艳娜,谢荣理,刘浚嘉,付 庄,王 尧,张 俊,费 健
(1.上海交通大学机械系统与振动国家重点实验室,上海 200240;2.上海市瑞金康复医院,上海 200023;3.上海交通大学医学院附属瑞金医院,上海 200025)
0 引言
甲状腺结节是甲状腺内部的一种离散性病变,它与其周围的甲状腺组织有着放射性差异。根据甲状腺癌影响报告与数据系统(TI-RADS),对于甲状腺癌恶性程度,虽有多种分级标准,但基本遵循五级分级:呈现从一级到五级逐步递增。自2002年起,甲状腺疾病发生率便持续走高。因此,有必要对大数据处理或数据兼容的机器学习算法进行研究。
针对甲状腺结节良恶性分类问题,LIU等[1]通过HOG, SIFT, LBP和VGG网络[2]进行特征提取,因其关键区域由人工标定,使得数据量非常有限,也不符合一般意义上进行医学图像处理的图像情况。叶晨等[3]利用VGG16和CNNf两种卷积神经网络对于甲状腺结节进行检测,达到了91.6%的正确率,然而该研究使用数据集为CT图像,并不是在甲状腺检察中更广泛使用的超声图像。
生成对抗网络于2014年由Ian Goodfellow及其团队[4]提出。生成对抗网络由生成器(G)和判别器(D)共同构成。其理念是通过判别器辅助生成器训练,使得生成器能够较好地拟合实际样本的分布。在实际实现过程中,判别器判断样本属于生成样本还是实际样本,生成器则以迷惑判别器为训练目标,二者依次训练,迭代更新,以极小极大博弈为整体目标函数,寻找其纳什均衡点。
本文以DICOM格式的甲状腺结节数据集为原数据,面向甲状腺结节良恶分类,从结节的实性/囊性、回声、钙化、边界、边缘、形态情况等6个角度进行结节恶性特征的考量;针对目前甲状腺结节DICOM文件良恶性分类GAN的相关算法均将重点放在图片生成,而没有利用生成器优化判别器的分类效果、帮助解决数据样本类别偏差大以及样本数量有限的问题,由此,基于生成对抗网络(GAN)设计建立了条件限制残差生成对抗网络(cRes-GAN)算法;并与Hog[5]+随机森林[6]、ResNet18[7],Res18GAN和ACGAN[8]等其他4种算法进行对比分析,以验证所设计新算法的优越性。
1 cRes-GAN算法
针对甲状腺结节分类问题,本文提出了端到端的模型cRes-GAN算法。利用cRes-GAN进行良恶性判断的数据流,如图1所示。
图1 cRes-GAN数据流
首先,将生成的高斯噪声和标签输入生成器,得到生成图片。然后,将生成的图片与真实图片共同输入判别器,由判别器判断输入的图片是真实图片还是生成图片,并且判断输入的图片所对应的良恶性标签。
1.1 模型结构
具体模型结构如图2所示。首先,对良恶性标签c′生成对应的编码矩阵,矩阵大小为2×100,作为其向量表现形式。通过高斯分布,生成长度为100维噪声向量,将标签向量与噪声向量进行向量相乘作为G的输入。
图2 cRes-GAN模型示意
cRes-GAN的生成器由3个卷积模块、8个残差模块、反卷积层和卷积层构成。为了能够在除去数据噪声的同时保留每个样本中独特的细节,除了最后的卷积层,在每一次卷积操作之后都使用了实例标准化。在卷积模块中,为了帮助收敛,使用LeakyReLU作为激活函数,在输出前使用tanh代替LeakyReLU作为激活函数。
LeakyReLU(x)=max{0,x}+0.2×min{0,x}
(1)
(2)
(3)
cRes-GAN的判别器D由1个卷积层、1个最大池化层、6个残差模块、1个平均池化层和2个并联的全连接层串联而成。每一个残差模块中包含2个卷积层。为了使得D能够对于一个批次中所有的图像分布特点有一个均衡的了解,在每一个卷积层后进行了批标准化操作,并使用ReLU作为激活函数。为了除去数据噪声,并且减少参数数量,避免过拟合,在全连接层之前添加平均池化层。
D中的2个全连接层分别对应真实图片/生成图片的判断任务(adv层)和良性结节/恶性结节的判断任务(aux层)。adv层输出1个值作为对于当前输入图像为真实图片的概率。针对该分类任务的概率表示,使用Sigmoid作为激活函数。aux层输出1个二维数组,数组的每个值分别表示判断输入图像为该标签的概率。根据先验知识,需要保证该二维数组的和为全概率,因此针对该分类问题,使用SoftMax作为激活函数。
1.2 具体参数
D的输入图片首先经过1个核大小为7×7,通道数量为64的卷积层,继而经批标准化处理后输入残差网络结构。残差网络结构由5个残差网络模块组成,每个模块的卷积核大小都为3×3,其通道数分别为64,64,128,128,256,512。2个全连接层的输入层由不同通道数的残差模块每个模块的输出特征拼接而成,共960维。
Adv层经由Sigmoid 激活函数,输出1个值,当该值大于0.5则判断为真实图片,反之则认为是生成图片。
Aux层经由SoftMax激活函数,输出1个二维向量,向量中,较大的值所对应的列即为标签类别。其中1代表恶性,0代表良性。对于真实图片,其自带良恶性标签;对于生成图片,其良恶性标签即为输入生成器的标签。
1.3 误差函数
判别器的误差函数由LD,1+LD,2两部分组成。
LD=LD,1+LD,2
(4)
LD,1=E[‖S预测-S‖]
(5)
LD,2=-E[logP(C预测=c|Xreal)]-
E[logP(C预测=c′|G(z,c′)]
(6)
S预测为判别器所预测的样本来源;S为样本的实际来源;C预测为差别器所预测的样本良恶性标签;c为样本的实际良恶性标签;Xreal为真实图像;c′为生成样本时使用的良恶性标签;G(z,c′)为生成样本。
第1部分使用EM距离,见式(5),输入样本具有真/伪标签S,通过判别器D获得对于真伪标签的预测S预测,该部分误差函数希望S与S预测尽可能接近。第2部分使用交叉熵式(7)对于样本良恶性进行判断,式(7)中P为预测结果C预测的对应概率,即当输入图像标签c为良性结节(或恶性结节)时,所判断的结节的标签C预测是否与c一致。对于生成的图像,由于生成器生成的图像与指定的标签类型有关,因此生成的样本亦与1个唯一的标签c′对应,见式(6)。
L=-C预测logP+(1-C预测)log(1-P)
(7)
生成器误差函数由3个部分组成:第1部分LG,1对应生成器于标签层面混淆判别器对于真伪样本判别的能力;第2部分LG,2要求生成器于像素层面生成更接近真实样本的图片;第3部分LG,3在于帮助判别器强化标签识别能力。
LG=LG,1+LG,2+LG,3
(8)
LG,1=-E[‖S预测-S‖]
(9)
LG,2=MSE(G(z,c′),Xreal)
(10)
LG,3=-E[logP(C预测=c′|G(z,c′))]
(11)
其中,第1部分使用了ME距离作为误差函数,见式(9),对应是否准确通过预测值S预测判别输入图像的来源S;第2部分比较生成样本G(z,c′)与实际样本Xreal的像素间相似性,见式(10);第3部分使用交叉熵作为误差函数,对应生成器所生成样本是否符合包含有区分度的良恶性特征,帮助生成器和判别器更专注于搜索有区分度的良恶性特征,见式(11)。
1.4 训练细节
将甲状腺超声图像数据集分成训练集和测试集2个部分,对二者分别进行图像预处理,观察分类器在训练集和测试集上分类准确率曲线情况。
1.4.1 数据增强
训练集中的样本在训练过程中,通过随机进行水平翻转、竖直翻转、随机旋转(±2°范围),则增加训练集数据量至原本的4倍以上,并且帮助神经网络学习到良恶性旋转无关的信息,同时可以缓解机器学习训练过程中常见的过拟合问题。
1.4.2 图像预处理
针对不同图形的大小不同、光强不同的情况,对图片进行统一的切割和直方图均衡归一化操作,如图3所示,则cRes-GAN训练的图像的灰度值在同一范围内。
图3 直方图均衡归一化操作结果比较
1.4.3 迁移学习
针对训练效果与网络参数初始化位置有关的问题,使用在ImageNet中进行过预训练的残差网络中的部分层作为cRes-GAN中判别器的初始值,使用在ImageNet的马-斑马数据集中进行过预训练的循环生成对抗网络中的部分结构作为cRes-GAN中生成器的初始值。
1.4.4 训练方式
为了更快帮助生成器与判别器收敛,先分别对于二者进行一定周期的训练。继而将二者进行共同训练,由于判别器较易对于生成图像和真实图像进行判断,因此将判别器与生成器以1∶2的周期数量进行迭代训练。
1.4.5 生成样本的标签比例
针对训练集中,良性图片与恶性图片比例呈2∶1,不均衡的问题,设置生成的图片良恶性标签比例为1∶2,以使得cRes-GAN中的判别器所面对的良恶性样本总数为1∶1。
1.4.6 标签平滑
针对神经网络对于对抗性样本的脆弱性问题,为真实图片/生成图片标签添加噪声,平滑标签,帮助训练。
1.5 评价指标
按照样本的真实标签和判断标签,可以将模型于测试集的测试结果分成4类:真阳性(TP);假阳性(FP);真阴性(TN);假阴性(FN)。其中真阳性指恶性结节样本被准确诊断为恶性的数量;假阳性指良性结节样本被误诊为恶性的数量;真阴性指良性结节样本被准确诊断为良性的数量;假阴性指恶性结节被误诊为良性的数量。
对于良恶性结节诊断的量化指标由准确率、特异度和敏感度(或召回率)体现,见式(12)~式(14)。准确率(Acc)体现的是将测试集样本中的良性结节图像和恶性结节图像准确分类的比率。特异度(Spec)体现的是对于所有的良性结节图像,准确将其判断为良性的概率。敏感度(Sens)体现的是对于所有的恶性结节图像,准确将其判断为恶性的概率。在医学实践中,敏感度的提高可以被视作对于病患的漏诊率的降低。
(12)
(13)
(14)
2 实验及结果
2.1 数据集
本实验的数据集由合作单位提供(由专业医生圈画结节位置),共有1 501份符合要求的DICOM文件,对其按照训练集-测试集7∶3的比例进行划分,具体内容如表1所示。
表1 训练集-测试集数据情况
2.2 实验结果
具体实验结果如表2 所示。甲状腺结节良恶性的区别包括回声强弱、边缘光滑与否,这些特征在超声图片上体现为纹理,阴影,光照的变化。又鉴于甲状腺结节超声图片为灰度图,因此使用专门针对灰度图像,寻找纹理光照信息的方向梯度直方图进行特征提取,并使用随机森林分类器进行分类,该算法组合下获得正确率仅有67.4%,分类出现了较大的偏差性。
不使用生成对抗网络结构,只使用ResNet18进行分类时,正确率为82.2%[9]。比较3种生成对抗网络模型对于本课题目标的分类效果,训练图像如图4所示。由图4可以发现,3种生成对抗网络均有良好的收敛趋势,其中cRes-GAN对于甲状腺结节良恶性分类问题有最好的分类效果。
图4 分类正确率随训练周期变化曲线
当目标函数收敛时,ACGAN的结果出现了很大的偏差性,它将所有的样本都归结于良性结节,因此敏感度为0;Res18GAN以ResNet作为判别器结构,得到的正确率为79.6%,敏感度较低仅为76.4%;cRes-GAN的正确率达到92.2%,敏感度达到86.5%,特异度达到95.0%。cRes-GAN比起其他模型,在3项指标上有极大的进步。
表2 对比分析结果 %
3 结束语
面向甲状腺结节良恶分类,设计建立了一种cRes-GAN算法,并与Hog+随机森林、ResNet18,Res18GAN和ACGAN等其他4种算法相比较,对比分析结果表明,该算法在良恶性分类的准确率、敏感度以及特异度上均有显著提升,且诊断结果准确度可达92.2%,可以为医生的最终诊断提供辅助参考和量化依据。为了提升分类正确率,可以在未来使用多类特征进行融合。