当前位置:首页 期刊杂志

一种基于深度学习的银屑病智能诊断方法*

时间:2024-05-04

李文胜

(湖南电子科技职业学院,湖南 长沙 410220)

0 引言

银屑病(Psoriasis,PS),又称“牛皮癣”,是一种以表皮细胞过度增殖及免疫性炎症为特征的慢性反复发作性疾病。该病具有病程长、顽固性、常见性以及外观丑陋等特性,且病程后期可侵犯多种脏器,被世界卫生组织列入世界十大顽症之一。

银屑病是不能够完全治愈的,基本上每位患者都会复发,需要长期跟踪治疗。银屑病的诊疗难度非常高,病种主要包括寻常型银屑病、关节型银屑病、脓胞型银屑病和红皮病型银屑病等四种类型。在做诊断时,不仅要考虑到外观因素,还要综合考虑心血管、心理、胃肠道、自身免疫等多个方面,因此,如何对疑似患者是否患上银屑病以及患上何种银屑病进行准确且快速地诊断是目前的一大难题。该问题属于典型的分类问题。本文提出一种基于深度残差网络(Deep residual network,ResNet)的银屑病分类诊断模型,通过训练得到一个ResNet-34 模型来对银屑病进行分类诊断,有效地提高了银屑病的识别率。

1 基于ResNet的银屑病分类诊断

1.1 ResNet的提出

在深度学习中,卷积神经网络(Convolutional Neural Network,CNN)是目前处理医学图像问题的主要手段。人们普遍认为CNN深度越深(参数越多),则CNN 的非线性表达能力就越强,可以进行更加复杂的特征模式的提取,理论上可以取得更好的结果。然而大量的研究表明,传统的CNN 结构随着层数加深到一定程度之后,越深的网络反而效果更差,过深的网络竟然使分类的准确率下降了,即出现网络退化问题(Degradation problem)。为了解决这一问题,何凯明等人在2015年提出了著名的深度残差网络(ResNet)。ResNet由一个个地残差单元相互组合而成(如图1所示),其特点是容易优化,并且能够通过增加相当的深度来提高准确率。其内部的残差块使用了跳跃连接(短路机制),缓解了在深度神经网络中增加深度带来的梯度消失或梯度扩散等问题。

图1 深度残差网络

1.2 基于ResNet-34的银屑病分类诊断流程

本文提出的基于ResNet-34 的银屑病分类诊断流程如图2所示。把患病部位的照片上传到某一应用系统或APP 中,系统或APP 调用预先训练好的并已经部署完毕的ResNet-34 对该图片进行分类诊断,系统给出是否患上银屑病以及患上何种银屑病的结论。

图2 基于ResNet-34的银屑病分类诊断流程

2 技术细节

2.1 银屑病图片预处理

由于银屑病的病症较为复杂、发病的位置也多种多样,医生或患者在对患者的患病部位进行拍照时容易受到光照、拍摄设备以及设备像素等因素的影响,导致获得的银屑病患者图像数据经常存在大量的噪声以及图片格式不一致等问题,不便于进行进一步处理,为此本文从数据增强、图片大小调整和图片格式编码等三个方面来对样本图片进行预处理,使之满足ResNet-34的输入要求,从而为ResNet-34的训练做好准备。

2.1.1 银屑病图片数据增强

数据增强也称为数据扩增,是指在不实质性的增加数据的情况下,让有限的数据产生等价于更多数据的价值。对于图片数据而言,目前常用的数据增强方法主要有旋转、平移、缩放和边缘填充等几种,下面给出对银屑病图片进行数据增强的核心代码。

2.1.2 银屑病图片大小调整

统一调整图片的大小,便于后面采用ResNet-34模型进行深度学习。本文以调整data_augmentation 文件夹生成的新的银屑病图片为例,下面给出了对银屑病图片大小进行调整的核心代码。

2.1.3 tfrecord编码

ResNet-34 模型的输入只能接受数值类型的数据,因此,我们还需要对图片进行编码,即转换成tfrecord 格式。tfrecord 是TensorFlow官方推荐的标准格式,能够将图片数据和标签一起存储成二进制文件,从而在TensorFlow 中实现快速地复制、移动、读取和存储操作。训练ResNet-34 的时候,通过建立队列系统,可以预先将tfrecord格式的银屑病数据加载进队列,队列会自动实现数据随机或有序地进出栈,并且队列系统和模型训练是独立进行的,这可以加速ResNet-34 的读取和训练。下面给出了将银屑病图片转换成tfrecord格式的核心代码。

2.2 ResNet-34的构建

本文构建了一个34层的深度残差网络(ResNet-34)来提取银屑病的特征,如图3 所示。ResNet-34 限定输入的图片像素大小为224×224。在ResNet-34 中,首先采用一个大小为7×7的卷积核以2个步长对原始输入的图像进行特征提取,得到一个大小为112×112的特征图,紧接着采用最大池化(Max Pooling)技术来对特征进行压缩,然后经过四组大小分别为3、4、6和3的残差块进行多次反复的特征提取。其中,所有残差组中的卷积核大小都为3×3,每组残差块中的第一个卷积核采用2 个步长进行特征提取,其他卷积核采用1 个步长进行特征提取。此外,同组残差块所采用的卷积核通道数均相同,分别为64、128、256 和512。各组输出的特征图大小依次为56×56、28×28、14×14、7×7。最后经过平均池化和全连接层,采用Softmax函数进行分类映射,对输入图像是否属于银屑病进行分类诊断。

图3 用于的银屑病分类诊断的ResNet-34结构

2.3 模型的训练

本文提出的ResNet-34 模型采用交叉熵作为损失函数来评估模型的准确性,采用Adam 算法作为训练过程中的优化策略,采用Softmax函数实现银屑病的多分类诊断,下面进行详细阐述。

2.3.1 损失函数

文中采用交叉熵作为损失函数,交叉熵能够衡量同一个随机变量中的两个不同概率分布的差异程度,在本文中表示为银屑病的真实概率分布与预测概率分布之间的差异。交叉熵的值越小,ResNet-34 的预测效果就越好。其计算公式为:

2.3.2 优化器

本文采用Adam(Adaptive Moment Estimation)算法进行ResNet-34 的训练。Adam 算法是一种在深度学习模型中将Momentum算法和RMSProp算法结合起来使用的优化算法,在训练的初始阶段,我们首先初始化梯度的累积量和平方累积量:

然后在第t轮训练中,我们计算得到Momentum算法和RMSProp算法的参数更新:

其中,vv分别是损失函数在前-1 轮迭代过程中累积的梯度动量,β 是梯度累积的一个指数,一般设置值为0.9。Momentum 算法和RMSProp 算法主要是基于梯度的移动指数加权平均来进行训练,但是这种训练方式在迭代开始的初期会导致梯度优化的摆动幅度过大,不利于算法收敛。

所以需要对上面求得的几个值做偏差修正:

通过式⑷可以求得在第t 轮迭代过程中,参数梯度累积量的修正值。接下来,可以根据Momentum算法和RMSProp 算法的结合来对模型的权重和偏置进行更新:

在Adam 算法中,参数β所对应的是Momentum算法中的β 值,一般取0.9;参数β所对应的是RMSProp 算法中的β 值,一般我们取0.999,ε 是一个平滑项,一般取值为10,而学习率α 则需要我们在训练的时候进行微调。综上所述,Adam 算法的伪代码可以表述为:

2.4 分类诊断

当ResNet-34训练完成之后,我们采用Softmax函数实现银屑病的分类诊断。Softmax 函数主要用于多分类过程中,它将多个神经元的输出映射到(0,1)区间内看成概率来理解,从而实现多分类。ResNet-34 模型的输出有五个值,代表四种常见的银屑病类型(寻常型、关节型、脓胞型和红皮病型)和正常人群(没有患病)。因此,对于每一个样本,依据Softmax函数的定义可知,它属于类别i的概率为:

3 实验

3.1 数据来源

我们以2017年1月到2019年12月为一个时间周期,从湖南中医药大学附属医院的皮肤科获取银屑病患者数据,并将其作为我们构建分类诊断模型的数据集。我们要求病人在活检前没有接受过系统的免疫抑制治疗或停止PUVA/UV 治疗至少一月以上,局部治疗至少停止二周以上,且无其他皮肤病及系统性疾病,共筛选得到数据样本40000份。

3.2 实验设置

我们在一台8 核16 线程的计算机上进行了实验。其中,CPU 型号为Intel Core i9-9960X @ 3.10GHz,内存为16G,操作系统为Ubuntu 16.04 LTS 64 位。在ResNet-34 模型中激活函数选用relu 函数,采用深度学习框架TensorFlow 和Anaconda 平台实现了文中提出的基于深度残差网络的银屑病分类诊断模型。此外,为了避免模型过拟合,我们在40000份银屑病数据样本上采用k 折交叉验证(在文中k 取值为10)来评估ResNet-34 的预测性能,选出性能最好状态下的超参数,得到最终的模型。

3.3 评价指标和比较对象

本文将多分类问题转换为二分类问题来进行实验评价,转换的方法是采用一对其余(One-vs-Rest)的方法:将其中一个类标记为正例,然后将剩余的其他类都标记成反例。由于本文ResNet-34 的输出为5 类结果(4 类为银屑病,1 类为正常),因此只需要构建5 个分类器就可以实现问题的转换。然后采用目前常用的精确率、召回率和ROC 曲线等指标来评价基于ResNet-34 进行银屑病分类诊断的性能。此外,我们将ResNet-34 和目前性能较好的卷积神经网络VGG19在银屑病诊断上的性能做横向比较,以评价本文模型的优越性。

3.4 结果分析

图4给出了ResNet-34和VGG19在银屑病数据集上分类诊断的召回率比较结果。从图4 中可以看到,随着银屑病数据集规模的增大,两种方法的召回率都有不同程度的上升。但总的来看,本文方法的召回率总是高于基于VGG19的诊断方法,平均来看,本文方法的召回率比VGG19 高出约9.5%。分析其原因可知,这是由于:①相比于VGG19 而言,ResNet-34 的深度更深,可以更好更丰富地提取银屑病的特征;②ResNet-34 通过引入残差的概念,在网络结构中加入了恒等映射连接,有效地解决了网络深度增加所带来的性能退化问题,因此取得了更好的性能表现。

图4 召回率比较(ResNet-34 VS VGG19)

最后,为了综合衡量ResNet-34 和VGG19 两种方法对于银屑病分类诊断的特异性和敏感性,下面画出它们的ROC 曲线。对于每个测试样本,ResNet-34 和VGG19在进行每次分类时都会得到一个“Score”值(分值),表示该样本多大概率上属于正例(或负例)。我们要画出ROC 曲线,则需要一系列关于True positive rate 和False positive rate 的值。文中通过如下的步骤来实现:

⑴ 从高到低将“Score”值排序并依此作为阈值threshold;

⑵ 对于每个阈值,“Score”值大于或等于这个threshold 的测试样本被认为正例,其它为负例。从而形成一组预测数据。

⑶将观测数据的值进行连线,则可以得到ROC曲线。

图5给出了两种方法进行银屑病分类诊断的ROC曲线比较结果,ROC 曲线下的面积称为AUC(Area Under Curve)。AUC 值(面积)越大的分类器,性能越好。在图5 中,红色线条下方的AUC 值表示VGG19的分类性能,黑色线条下方的AUC 值表示ResNet-34的分类性能,显然后者的AUC值要大于前者。这表明ResNet-34 的性能明显好于基于VGG19 的方法,可以应用到真实环境下的银屑病分类诊断任务中去。

图5 ROC-AUC比较(ResNet-34 VS VGG19)

4 结束语

文中提出一种基于深度残差网络的银屑病分类诊断模型,通过设计一个34层的残差网络来实现银屑病的精准诊断,最后的实验结果也验证了所提模型的有效性。在下一步工作中,我们将继续对银屑病的症状、证型以及用药规律等进行分析,将银屑病的诊断、治疗和用药等一体化过程构建成知识图谱,并进一步提出一种基于图卷积神经网络的银屑病用药推荐模型,从而对医生的诊疗工作提供更好的决策支持。

免责声明

我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自各大过期杂志,内容仅供学习参考,不准确地方联系删除处理!