1. 引言
肝脏中发生的病变可统称为肝脏疾病,其中最常见的是肝炎、脂肪肝、肝硬化和肝癌[1]。其中慢性肝炎危害最大,感染人数最多[2]。根据世界卫生组织的统计数据,全球约有4亿人患有慢性肝病,每年导致140万人死亡[3]。这是因为,一方面早期肝病患者一般没有明显的症状,因此很难发现,当患者发现身体异常时,他们通常已经患上了慢性肝炎。另一方面,即使临床检查中某些指标显示异常,也很难准确判断肝脏是否发生了病理变化,这给医生的诊断和治疗带来了巨大挑战。经过多年的发展和完善,临床实践中已经开发出一些评估肝病的模型,包括Lille [4]模型、MELD [5]模型和相关的改进模型,然而,这些模型的诊断效率和准确性相对较低。因此,我们需要更高效、更准确的肝病诊断方法。
近年来,随着计算机技术的快速发展,机器学习(Machine Learning, ML)和深度学习(Deep Learning, DL)在医疗保健领域取得了显著成就。事实上,斯坦福大学的Edward H. Shortliffe教授于1976年开发了第一个医疗诊断系统,为医生救治病人提供诊断支持[6]。随后,越来越多的疾病诊断模型和系统被开发出来,为患者和医生带来了极大的便利。肝病作为一种常见的、有害的疾病,构建高度准确的肝病诊断模型和系统一直是热门研究课题。
与医学影像学相比,根据患者血液检测指标等临床检测数据诊断肝病更具普遍性和鉴别性,它可以在肝病的早期发现肝脏异常,为肝病的治疗提供宝贵的时间。Derya Avci [7]等人提出了一种基于遗传算法小波变换核极限学习机(GA-WK-ELM)的肝病诊断模型,该模型使用患者血液检测指标作为数据集。首先,使用遗传算法计算ELM模型参数的最优值和隐藏层数。然后,将小波变换核和ELM相结合,构建肝病诊断模型。
深度学习是由多伦多大学的Geoffrey Hinton教授[8]在2006年的《Science》杂志上提出的,它起源于人工神经网络,通过模拟人脑的机制从数据中学习。Anand [9]等人基于患者的临床数据建立了深度人工神经网络(Deep Neural Network, DNN)来预测肝脏疾病,该方法首先对指标特征数据进行预处理,然后使用粒子群优化算法对DNN进行全局优化,以解决DNN的缺点。Yao [10]等人提出了一种基于肝功能检查指标数据的紧密连接深度神经网络(Tightly Connected Deep Neural Network, DenseDNN),该模型在传统DNN的基础上增加了直接连接,这意味着层之间的连接可以跳过中间层,以减少层之间的传播距离,减少梯度消失的问题,并增强网络之间特征信息的传播。
在本研究中,为了建立更准确的肝病诊断模型,首先有必要解决高维肝病数据的特征提取问题,然后解决肝病诊断的准确性问题。本研究使用PCA来提取肝病的重要特征,此外,将DBN算法的无监督预训练和ELM算法的快速学习的优点进行结合,构建了一个肝病诊断模型。
2. 材料和方法
2.1. 数据描述
本研究使用了UCI机器学习库中公开可用的肝病数据集,且该数据集不涉及个人敏感数据和隐私,因此不需要进行伦理审查。肝病数据集来源于UCI机器学习库,其数据源网站为
https://doi.org/10.24432/C5D02C。该数据集包含416个健康样本和167个肝病样本,主要来自印度当地医院的血液检测数据,它包含一个用于分类的标签(无论他们是否是肝病患者)。这个公共数据集通常用于验证和评估深度学习算法的性能,该数据集的参数和特征描述见表1。
Table 1. Feature description of liver disease dataset
表1. 肝病数据集中的特征描述
特征属性 |
取值范围 |
特征描述 |
Age |
4~90 |
- |
Gender |
0或1 |
1:男性,0:女性 |
Total bilirubin |
0.4~75 |
准确反映黄疸程度,正常参考值:5.13~22.24 μmol/L |
Direct bilirubin |
0.1~19.7 |
判断黄疸的重要标准,正常参考值:0~7.32 μmol/L |
Alkaline phosphatase |
63~2110 |
肝细胞严重损伤导致增加,女性的正常参考值为50~135 U/L;男性45~125 U/L |
Alanine kryptotransferase |
10~2000 |
肝病可导致升高,正常参考值为0~35 U/L |
Aspartate aminotransferase |
10~4929 |
肝病可导致升高,正常参考值为0~40 U/L |
Total protein |
2.7~9.6 |
肝功能障碍可导致减少,正常参考值为60~80 g/L |
Albumin |
0.9~5.5 |
肝脏合成障碍等可导致减少,正常参考值为35~51 g/L |
Albumin to globulin ratio |
0.3~2.8 |
肝病可导致该比率下降,正常参考值为1.5~2.5 |
2.2. 数据预处理
根据缺失的数据类型,使用均值/中值或众数填充数据集中的空白。对于数值数据,只要缺少数据,就有必要使用该特征的均值或中值进行估计。在本研究中,估计了缺失值以提高诊断模型的性能,然后,剔除明显异常的部分。
基于特征范围进行归一化,以消除特征大小差异的影响,从而促进后续的肝病诊断。使用以下表达式将数据值的范围统一转换为[0, 1]:
(1)
2.3. 主成分分析
主成分分析(Principal Component Analysis, PCA)是一种从数据中提取重要特征的常用技术。在计算过程中,它考虑了原始数据的各种特征之间的相互关系,使用正交基变换来塑造新特征,并使用方差贡献率来选择新特征的数量,从而实现了数据的降维。PCA可以构造独立的新变量,降维后获得的新特征彼此独立,在尽可能保留原始数据信息的同时滤除原始数据中的噪声和冗余。该方法也可用于分析特征之间的相关性,并从整个肝病数据集中提取相关特征,其中碱性磷酸酶、天冬氨酸转氨酶、年龄是本研究中肝病诊断的相关特征。
2.4. 深度信念网络
深度信念网络(Deep Belief Network, DBN)是一种概率生成模型,包括多个隐藏层,并训练网络更新神经元之间的权重,该网络可以以最大概率生成训练的输入数据。DBN可以将复杂的数据特征提取分解为不同的层次网络,获得具有层次结构的特征值。因此,它们具有很强的特征提取能力,可以解决数据特征提取中浅层网络具有单一层次结构的问题。
DBN包含多个堆叠的受限玻尔兹曼机(Restricted Boltzmann Machines, RBM),RBM在网络的每一层底部调整参数。RBM以最大似然将输入数据的特征属性传播到隐藏层,RBM的下一个输入是从隐藏层提取的数据特征值。通过多个RBM,基于贪婪算法逐层提取数据,最终获得更高级别的数据特征值。DBN之上是一个BP分类器,标签连接到最高层。通过多个RBM提取的高级特征值被视为用于监督学习的BP算法的输入。因此,DBN中的网络参数将基于反向传播进行优化,DBN模型最终将构建完成。DBN的结构如图1所示。
Figure 1. Structure of DBN
图1. DBN的结构构成
在给定初始权重的情况下,下一个RBM的输入是训练好的初始RBM的输出。在这种情况下,假设RBM可见层v和隐藏层h中的神经元是二元随机的,只取0或1。此时,给定(v, h),式(2)可以表示能量函数。
(2)
其中,连接权重为
,可见单元i和隐藏单元j的偏差参数分别为
和
;RBM模型的参数θ为{
,
,
}。此时,基于能量函数计算可见和隐藏单元的联合概率分布函数。
(3)
(4)
式(4)中的归一化因子为
。
RBM由两个神经网络组成:可见层v和隐藏层h。自Hinton于2002年提出对比散度作为RBM的快速学习算法以来,RBM优越的无监督学习能力引起了研究人员的关注。RBM的结构图如图2所示。
Figure 2. Composition of RBM
图2. RBM的构成
通过贝叶斯公式推导条件概率。
(5)
(6)
其中
是逻辑函数
(7)
Hinton提出了对比度发散算法,用于计算每个参数的更新方程。首先,基于输入数据初始化可见层。然后,通过条件概率公式和可见层值计算隐藏神经元的条件概率。最后,通过吉布斯抽样计算概率来提取样本。使用样本重建可见层,通过重复此过程更新相关参数的规则。
(8)
(9)
(10)
学习率为
,数据本身和重建模型后的数学期望分别为
和
。通过这种方法,我们可以获得适当的权重并使用这种方法,直到更新RBM的总权重。
2.5. 极限学习机
基于前馈神经网络,极限学习机(Extreme Learning Machine, ELM)还包括多层网络结构。在随机初始化输入偏移和权重后,获得相应的输出权重。ELM具有学习速度快、泛化能力强的优点,可以提高预测模型的性能。
假设
表示M个样本,则包含L个隐藏层节点的神经网络可以用以下表达式表示:
(11)
在公式(11)中,隐藏层的激活函数为
,输入权重为
,输出权重为
,第i个隐藏层的偏移量为
。单个隐藏层神经网络的目标是计算最小输出误差。
(12)
隐藏层节点的输出为O,而预期输出为H
(13)
当使用ELM训练单个隐藏层神经网络时,参数
和
是随机的。通过确定两个参数,可以分别获取输出矩阵T。此时,通过训练整个网络求解线性系统,得到输出权重β
(14)
2.6. 深度信念网络–极限学习机
Hinton提出DBN后,它被用于降维、回归和分类等应用领域。DBN中的无监督预训练解决了由于参数随机初始化而陷入局部最小值和收敛速度慢的问题,以及标记训练样本的设置问题。当使用无监督预训练样本时,训练和泛化的误差可以明显降低[11]。通过预训练初始化参数和BP算法对网络进行微调,提高分类效率和准确性。总体而言,DBN-ELM模型包括用于特征提取的DBN和用于分类的ELM,它结合了DBN中无监督特征提取预训练的优点和ELM的泛化和快速学习能力,从而提高了预测性能。
假设DBN包含n个隐藏层,通过贪婪预训练初始化n − 1层。ELM计算从n − 1到n个隐藏层以及从n到下一层的偏移和权重。n − 1和n隐藏层中的神经元数量分别为l和M。
(15)
通过使用式(16)最小化输出误差来计算最佳预测结果
(16)
得到的
使式(17)成立
(17)
该公式可以转换为以下方程式
(18)
其中,
是从第n − 1层到第n层的输出,由式(19)表示
(19)
,
(20)
通过训练网络,我们可以得到一个特殊的
,
,
(21)
我们随机确定网络最后一层的参数
和
。在确定这两个网络的参数时,只获得输出H。DBN的输出权重解释如下:
(22)
DBN-ELM的训练步骤如图3所示。
Figure 3. The training process of DBN-ELM model
图3. DBN-ELM模型训练过程
首先,DBN执行无监督预训练来提取特征。之后,使用ELM确定DBN中最终隐藏层和输出层之间的权重,认为模型的输出矩阵与最终RBM获得的权重矩阵相同。最后,获得误差,完成DBN-ELM模型训练。
在本研究中,构建了一个具有4层RBM的深度信念网络用于特征提取。由于RBM对学习率敏感,小值保证稳定性,RBM无监督预训练的学习率设置为0.05;对比度发散算法需充分采样,迭代次数设置为500次。反向传播阶段的学习率为0.25,这是因为大于预训练值,加速有监督优化;通过早停机制(验证集监控)限制过拟合,迭代次数为200;批大小为64~128。ELM隐层节点为500,通过高维投影增强线性可分性;激活函数为ReLU函数,可以通过稀疏激活提升特征选择性。
3. 结果和讨论
3.1. 评估指标
应用多个指标来评估分类器的性能。此时,应用混淆矩阵来评估分类器,该分类器记录了正确和不正确分类的类别标签。混淆矩阵见表2。评价指标说明详见表3。
Table 2. Confusion Matrix of classification model
表2. 分类模型的混淆矩阵
混淆矩阵 |
预测为肝病 |
预测为健康 |
实际为肝病 |
真阳性(TP,肝病样本被正确预测) |
假阴性(FN,肝病样本未正确预测) |
实际为健康 |
假阳性(FP,未正确预测健康样本) |
真阴性(TN,健康样本被正确预测) |
Table 3. Evaluation indicators
表3. 评估指标
评估指标 |
计算公式 |
含义 |
Sensitivity/Recall |
Sensitivity = TP/(TP + FN) |
真正检测到的早期糖尿病的比例 |
Specificity |
Specificity = TN/(TN + FP) |
真实检测到的实际健康比例 |
Accuracy |
Accuracy = (TP + TN)/(TP + TN + FP + FN) |
所有样本中正确检测到的样本比例 |
Precision |
precision = TP/(TP + FP) |
所有预测样本中实际早期糖尿病的比例 |
F1-Score |
F1 = (2recall∙precision)/(recall + precision) |
准确率和召回率的综合评价指标 |
假阳性率或1-特异性是ROC曲线的横轴,而真阳性率或灵敏度是纵轴。ROC曲线和坐标轴包围的面积是AUC。通常,AUC值越接近1,分类算法的性能就越好。
3.2. 实验结果
使用十折交叉验证划分肝病数据集。DBN-ELM诊断模型的肝病数据集分别给出了65.27%的敏感性、96.15%的特异性、87.31%的准确性、74.66%的F1评分和0.9188的AUC。在训练和测试集中,DBN-ELM分别达到87.71%和86.36%的准确率、65.81%和64%的敏感性、96.55%和95.24%的特异性、75.49%和72.73%的F1评分、AUC 0.9301和0.8905。DBN-ELM的评价指标见表4,其ROC曲线如图4所示。DBN-ELM模型包括用于特征提取的DBN和用于分类的ELM,它结合了DBN中无监督特征提取预训练的优点和ELM的泛化和快速学习能力,当使用无监督预训练样本时,训练和泛化的误差可以明显降低,同时结合极限学习机的优点,从而有效地提高了预测性能。
3.3. 消融实验
为了探索DBN-ELM模型的每个组成部分对肝脏疾病诊断性能的贡献,本文进行了消融实验。DBN-ELM模型由DBN算法和ELM技术组成,将逐步移除以评估其对模型性能的影响。本文提出了以下消融实验方案:
(1) 完整的DBN-ELM模型,包括DBN算法和多种ELM技术;
(2) 没有ELM技术的DBN算法:从DBN-ELM模型中删除ELM技术,只保留DBN算法;
(3) ELM技术:从DBN-ELM模型中删除DBN算法,保留ELM技术。消融实验的结果见表4。
由表4可以推断,在DBN算法失去了ELM的快速学习和泛化能力后,肝病诊断的性能远非良好。同样,在失去DBN的无监督预训练能力后,ELM的肝病诊断性能下降。通过将DBN的无监督预训练与ELM的快速学习和泛化能力相结合,DBN-ELM提高了肝病的诊断性能。
Figure 4. ROC curve of DBN-ELM diagnostic model
图4. DBN-ELM诊断模型的ROC曲线
Table 4. Comparison of ablation experiment results
表4. 消融实验结果比较
诊断模型 |
阶段 |
Sensitivity |
Specificity |
Accuracy |
Precision |
F1 score |
AUC |
DBN-ELM |
Training |
65.81% |
96.55% |
87.71% |
88.51% |
75.49% |
0.9301 |
Testing |
64% |
95.24% |
86.36% |
84.21% |
72.73% |
0.8905 |
DBN |
Training |
58.97% |
76.29% |
71.15% |
50% |
54.12% |
- |
Testing |
52% |
77.6% |
70.29% |
48.15% |
50% |
- |
ELM |
Training |
62.39% |
94.86% |
85.57% |
82.95% |
71.21% |
- |
Testing |
54% |
78.23% |
71.26% |
50% |
51.92% |
- |
3.4. 讨论
肝病的早期识别对患者的身心健康至关重要,因为它是一种高度传染性和致命性的疾病。因此,在肝病数据的基础上,利用ML和DL技术建立一个高度准确和广泛的肝病诊断模型,帮助医生准确评估和预测患者的病情,将对肝病的诊断和治疗产生积极影响。然而,目前的肝病诊断模型还不够成熟,仍有许多问题需要解决。首先,肝病数据量大,维度高。如何使用模型从中提取重要和有价值的特征信息是一个需要考虑的问题。其次,肝病诊断模型的准确性还不够高,有必要考虑如何提高肝病诊断的准确性。
4. 结论
本研究使用主成分分析提取了重要特征,其中,肝病数据集中的碱性磷酸酶、天冬氨酸转氨酶和年龄是我们研究中肝病诊断的重要特征。经过填充缺失值并删除了异常值等数据预处理步骤后,构建并训练了一个基于DBN-ELM的肝病检测模型,该模型结合了DBN的无监督预训练和ELM的快速训练能力。DBN-ELM模型在肝病数据集上分别取得了87.31%的准确率、65.27%的敏感度、96.15%的特异性、72.73%的F1-Score和0.9188的AUC值。这些较好的性能表明,DBN-ELM模型可用于检测肝脏疾病,并从临床数据中准确识别肝脏疾病,从而帮助医生更好地诊断疾病。
在未来的工作中,将在模型中引入深度条件生成对抗网络等新方法,并引入肝病图像等新数据以获得更丰富的数据信息,从而提高模型的整体性能。最后,我们将进一步探索深度学习在肝病辅助诊断中的应用。
基金项目
湖南省教育厅科研项目–一般项目(24C0477);永州市指导性科技计划项目–一般项目(2024YZ018);湖南科技学院校级科研项目(23XKYZZ10)。