基于深度学习与中医数据的多标签分类算法

2019-06-06 04:21安伟涛薛安荣张宇
软件导刊 2019年3期
关键词:深度学习

安伟涛 薛安荣 张宇

摘 要:针对中医八纲辨证诊断模型因人工设定参数不准确导致模型训练时间过长、无法收敛和易忽略症状与证型间的一对多关系导致诊断结果存在证型遗漏的问题,提出利用深度置信网络RBM机制,通过对输入的样本特征向量逐层进行拟合获得模型最佳权重与阈值,从而解决参数设定问题;同时采用二元关联多标签分类算法解决一对多关系,提高诊断结果准确率。实验表明,改进后的算法有效可行。

关键词:中医诊断;中医八纲辨证;深度学习;多标签学习;TensorFlow

DOI:10. 11907/rjdk. 182225

中图分类号:TP301文献标识码:A文章编号:1672-7800(2019)003-0025-05

0 引言

在长期与疾病的斗争中,中医演化并形成了一套独特、完整的理论体系[1],为人类健康作出了不可磨灭的贡献。但传统中医诊断不确定性、经验性和模糊性等特点严重制约了中医发展[2],因此中医辨证的科学化与智能化发展引起广泛关注。

在不同历史时期,历代医家根据不同的理论基础提出了不同辨证方法,其中八纲辨证理论是各种辨证方法的指導纲领[3],成为中医智能辨证研究的基础。已有研究利用人工神经网络技术与多层前向神经网络构建中医八纲辨证模型[4],该模型突破了传统神经网络神经元形式单一的特点,提高了对输入数据的处理能力,同时模型具有一定的学习能力,辨证准确率达到70%以上,但该模型对病例样本训练的参数需要依靠人工设定,由于人工设定参数具有一定随机性,可能导致网络训练时间过长和模型无法收敛。此外,该模型忽略症状与证型间存在的一对多关系,即忽略了同一个病人可能同时患有多种证型的情况,导致该模型诊断结果有遗漏。

深度置信网络训练机制是模拟人类大脑学习机制建立的,即深度信念网络可以对简单的特征进行组合、重构得到更加抽象的特征表达[5-6],该过程与人类大脑对外界信息的处理机制非常类似。在实际应用中,深度置信网络可以通过自动对特征进行学习的机制[7],对样本特征进行逐层拟合,获取模型最佳参数。因此,本文提出利用深度置信网络训练病例样本模型,从而解决人工设定参数的问题。针对症状与证型间存在的一对多关系,提出使用多标签分类算法解决该该问题。由于二元关联[8]分类算法思路简单、效果出色,因此提出利用二元关联多标签分类算法和深度置信网络对中医诊断中的病例样本进行模型训练和预测,从而提高模型诊断准确率。

1 基于深度学习的多标签分类算法

1.1 深度置信网络

Geoffrey Hinton等[9]于2006年首次提出深度置信网络(DBN)的概念,DBN是以受限的玻尔兹曼机RBM为基础发展起来的模型。RBM[10]是一种生成模型,可建立测试数据与标签之间的联合概率分布,通过训练相邻两层节点间的权重,让整个网络按照最大概率优化模型参数。

(1)受限的玻尔兹曼机。RBM是一种基础神经网络模型[11],其结构如图1所示。RBM由可视层[v]和隐含层[h]组成,层内节点之间没有连接,层与层之间的节点全连接,[w]为对应两层神经元连接的强度参数。节点状态分为激活状态和未激活状态,在计算中一般用二进制的0表示未激活状态,1表示激活状态。

(2)权值计算模型构建。RBM属于能量模型[12]。利用公式(1)定义样本输入向量[v]和隐含层向量[h]之间的能量函数值,该能量函数描述模型状态的测度,能量越小则系统状态越稳定。

通过对最大似然函数进行求导运算,得到概率最大值,从而确定当概率最大时的权值。

1.2 多标签学习

多标签分类算法的实质是根据待预测实例(特征属性和标签属性),在M种候选标签集中选择概率最大的标签集合作为该待预测实例的标签集合。

1.3 基于深度置信网络的二元关联分类模型

(2)基于深度置信网络的二元关联分类模型构建。基于深度置信网络的二元关联多标签分类算法,首先利用深度置信网络的RBM机制对中医八纲病例样本进行训练,通过不断拟合初始向量获得模型最优参数,并保存模型;然后,利用二元关联多标签分类算法思想,将多标签分类转换成多个单标签分类,针对每个标签利用训练好的深度置信网络模型作为分类器,判断每个标签是否属于待分类样本,最终输出所有结果并集。具体算法为:

步骤(1)-步骤(2)为训练症状集的输入和标准化处理;步骤(4)-步骤(6)初始化RBM的连接权重参数[w],可视层偏置量[a]和隐含层偏置量[b];步骤(7)-步骤(10)利用条件分布概率计算隐含层节点状态;步骤(11)-步骤(14)利用条件分布概率公式计算可见层阶段状态;步骤(15)-步骤(23)对RBM权重参数、偏置量参数更新和保存;步骤(24)-步骤(28)为待测样本的预测;步骤(29)返回待分类样本x的标签集合y。

1.4 算法分析

2 实验与分析

2.1 实验方案

为客观评价本文算法的表现,选用平均预测精度(Avg-Precision)、覆盖度(Coverage)、排名损失率(Ranking-loss)、汉明损失(Hamming-Loss)、1错误率(One-Error)为评价指标[16]。

实验基于开源深度学习框架TensorFlow[17],利用TensorFlow搭建网络模型,利用Tensor数据结构存储和传递所有数据,利用SGD函数随机梯度下降完成样本训练。同时为尽可能避免过拟合现象,利用dropput工具设置一个drop阈值,可以降低过拟合现象。在所有分类算法中,使用相同的训练样本和测试样本集。为使实验结果具有说服力,采用10倍交叉验证的方法验证实验结果,任意一种评价指标都是数据集进行10次实验结果的平均值。

2.2 实验参数

(1)权重和偏置量初始化。权重矩阵、隐含层偏置量及可见层偏置量是在训练中获得的,但是模型在训练之前需设定一个初始值,一般采用随机赋值方式。本实验权重向量采用正太分布N(0,0.01)的随机数,通过破坏不同神经元间的对称性,从而提高模型泛化能力。隐含层偏置量初始化为0,可见层偏置量按公式(8)初始化,有利于获取正确的输出边缘统计。其中[ai]表示第i可见层偏置量参数,[pi]表示训练样本中第i个特征处于激活状态的样本所占比例。

(2)隐层单元数确定。隐层单元数的选择非常重要,如果选择过少,可能不足以训练神经网络;如果选择过多,虽然可以提高精度,但也会使模型复杂化,导致训练时间过长。因此选择一个合理的隐层单元个数非常重要。本实验通过设置隐含层个数分别为10、20、30、40、50、60、70、80、90、100,分别得到模型的召回率、准确率及F1值3个评价指标。如图3所示,当隐层单元数在70左右时,模型召回率、准确率和F1值均可达到较高的值,因此本实验选择隐层单元为70。

(3)学习速率确定。学习速率是指模型在训练过程中权值每次的变化量,一般将学习速率确定为[0.01,0.1]。如果学习速率过低会导致模型训练缓慢,收敛时间长;如果学习速率设置过高则收敛快但不稳定,使系统无法得到最优权值。为获得与最优权值更接近的权值参数,平衡矛盾,实验增加动态学习速率(momentum),将本次训练计算出的调整梯度与前次调整梯度结合,将前次调整梯度乘以一个动态学习速率。

2.3 实验数据

(1)数据来源。数据集为文献[18]的中医八纲辨证数据以及通过网络收集到的八纲病例,共500例。为使样本更具有普遍性,针对中医八纲每一类证型病例均选取相同数量的训练数据集,每一类证型均选择相同数量的测试集。

(2)数据扩充。由于深度置信网络是深层次网络结构,具有很强的学习能力,在模型训练过程中可能会学习到样本数据中的噪声和异常数据,导致模型产生过拟合现象,模型过拟合会导致模型在后期对样本进行预测时不能正确分类以及模型泛化能力太差的问题[19]。为了防止过拟合现象,需有大量训练数据。在网络上收集以及在文献中使用的八纲辨证病例样本数据有限,属于小样本,显然不能满足深度置信网络对数据量的要求,因此需要对现有样本数据进行扩充。

扩充样本需要找到样本分布规律,才能保证样本扩充合理性。根据文献[20]可知,针对每一个证型相关症状贡献度的不同,有几个症状贡献度较大,大多数症状贡献度很小,在阈值为0.015~0.02时,针对证型对应的症状数据符合幂律分布。为验证八纲证型与对应症状数据符合幂律分布,对现有数据进行幂律分布检验。

假设样本数据服从幂律分布,具体分布函数为:

因此验证样本数据服从幂律分布,只需对样本数据库[(x,y)]取对数,然后验证是否为线性方程即可。对[(x,y)]取以10为底的对数,然后用Matlab对样本数据进行拟合,拟合结果如图4所示。

根据图像可知,样本分布比较符合幂律分布,根据样本数据幂律分布规律,随机生成数据扩充样本数据,为深度置信网络对数据量的要求,使用统计软件生成80 000条病例数据,随机抽取70%作为训练样本,30%作为测试样本。

(3)数据预处理。在实验中,选择80 000例中医八纲辨证病例样本作为训练样本,每种证型病例训练样本为10 000例。将24 000例病例样本作为实验测试集,其中八類证型各占3 000例。为保证实验顺利进行,需对原始症状数据集进行标准化处理。

由于症状数据集的每个元素测量单位不同,不同属性区别很大,因此需要对原始症状集数据进行标准化处理,采用min-max离差归一化算法[21],将原始症状数据集映射到[0,1]区间。

由于病人患病症状分布不均匀,临床症状数据集中存在部分症状缺失,本实验采用NaN填充缺失值。对于可见层与隐含层之间的权重和偏置训练,若使用每个样本逐个训练的方法会使运算效率过低,导致大数据和高维数据训练时间过长。在实践中,为充分利用CPU和矩阵计算的便捷性,往往将样本分割成小片(mini-batchers),每次计算一个mini-batcher。为在计算多个mini-batchers,同时保证进行训练时学习速率固定不变,参数更新时,梯度使用平均梯度。平均梯度计算公式为:

其中[Nbatch]为mini-batchers数据的长度,当[Nbatch=1]时,相当于单样本学习。对于[Nbatch]的大小,总体上不宜过大,如果过大梯度敏感度下降,会使模型错过最优值。为实验计算方便,本实验取10的整倍数,且同为标签数量的整数倍,最终选取200。

2.4 实验结果与分析

人工神经网络和深度学习神经网络最大的区别是包含不同的网络隐层,所以对模型不同数量的网络隐层进行实验。本次实验共有5个验证指标,表1给出了每种算法在5种评价指标上的实验结果。其中平均精度预测指标数值越大,表示算法表现越好;其它指标数值越低,表示算法性能越好。表中“↑”符号表示数值越大性能越好,“↓” 符号表示数值越小越好。“[±]”符号表示10次试验的平均值[±]标准差。每个指标中的最佳结果在相应评价指标上用粗体显示。

由表1数据清楚表明,基于DBN的二元关联多标签分类算法在一定范围内,随着网络模型隐含层数目的增多,模型平均预测精度、覆盖度、排名损失率、汉明损失和1错误5项指标性能均成递增趋势。其中隐含层值为1时,表示传统人工神经网络模型的各项性能指数,由此可见本文构建的深度置信网络的二元关联分类模型与传统人工神经网络模型相比,在各项性能上均有很大提升。

为充分说明本文设计的基于深度学习的多标签分类算法有效性,在中医数据下,与ML-KNN算法、BSVM算法、Rank-SVM等常用的多标签分类算法在5种评价指标上进行比较,采用柱状图的形式将实验结果进行展示,如图5所示。从柱状图上可以清晰发现,基于DBN的多标签学习算法的5种评价指标均表现优秀,而且各项指标比常用多标签分类算法高5%~10%。因此本文设计的基于深度置信网络的二元关联分类算法是有效的。

3 结语

针对现有中医八纲辨证模型因人工设定参数不准确导致模型训练时间过长和无法收敛问题,提出利用深度学习的RBM机制对病例样本进行逐层拟合,获得模型最佳权重与阈值,从而解决参数设定问题。此外针对现有诊断模型忽略症状与证型间一对多关系,提出采用二元关联分类算法解决一对多关系问题,并利用开源深度学习框架TensorFlow和经过扩充后的中医八纲辨证数据对模型进行实验验证。实验结果表明本文设计的中医“八纲辨证”模型相比现有模型能更好地表示中医证型和症状之间的关系,提高了中医八纲辨证诊断准确率。该研究思路可应用于中医智能辨证体系中,为病证规范化及辨证智能化提供参考。

参考文献:

[1] 顾漫. 中医学的起源与上古四方医学知识的汇集[C]. 第二届学术年会暨中医药传统知识保护国际学术大会,2014:20-25.

[2] 韦堂军,程银. 略论传统中医的肿瘤辨治观[J]. 世界科学技术-中医药现代化,2015,17(4):891-896.

[3] 温维,张梅奎. 中医发展困境及对策探讨[J]. 医学与社会,2014,27(2):65-67.

[4] 吴芸,周昌乐,张志枫. 中医舌诊八纲辨证神经网络知识库构建[J]. 计算机应用研究,2006,15(5):188-189.

[5] ZHAO B,FENG J S,WU X. A survey on deep learning-based fine-grained object classification and semantic segmentation[J]. International Journal of Automation and Computing,2017,14(2):119-135.

[6] SONG X D,ZHANG G L. Modeling spatio-temporal distribution of soil moisture by deep learning-based cellular automata model[J]. Journal of Arid Land,2016,8(5):734-748.

[7] 曾明星,李桂平,周清平,等. 从MOOC到SPOC:一种深度学习模式建构[J]. 中国电化教育,2015,4 (11):28-34.

[8] CHARTE F,ANTONIO J. Dealing with difficult minority labels in imbalanced multi-label data sets[J].  Neurocomputing, 2016,11(10):110-123.

[9] GOODFELLOW I J,ERHAN D,LUC CARRIER P,et al. Challenges in representation learning: a report on three machine learning contests[J]. Neural Networks,2015,41(9):64-71.

[10] 麦超,邹维宝. 稀疏受限玻尔兹曼机研究综述[J]. 计算机工程与科学,2017,39(7):1379-1384.

[11] 酆勇,熊庆宇,石为人,等. 一种基于受限玻尔兹曼机的说话人特征提取算法[J]. 仪器仪表学报,2016,37(2):256-262.

[12] 张春霞,姬楠楠,王冠伟. 受限波尔兹曼机[J]. 工程数学学报,2015,36(2):159-173.

[13] 李思男,李宁,李战怀. 多标签数据挖掘技术:研究综述[J]. 计算机科学,2013,40(4):14-21.

[14] 秦锋,黄俊,程泽凯,等. 多标签分类器准确性评估方法的研究[J]. 计算机技术与发展,2010,20 (2):46-49.

[15] CHARTE F,RIVERA A J, JESUS M J, et al. Dealing with difficult minority labels in imbalanced  multi-label data sets[J].  Neurocomputing,2016,40(3):45-78.

[16] 刘方园,王水花,张煜东. 深度置信网络模型及应用研究综述[J]. 计算机工程与应用,2018,54(1):11-18+47.

[17] 吴芸,周昌乐. 中医八纲辨证神经网络构造技术研究[J]. 计算机工程与应用,2008,12(11):243-245+248.

[18] HOUBORG R,MCCABE M F. A hybrid training approach for leaf area index estimation via cubist and random forests machine-learning[J]. ISPRS Journal of Photogrammetry and Remote Sensing,2018,67(8):135-138.

[19] 刘建伟,刘媛,罗雄麟. 深度学习研究进展[J]. 计算机应用研究,2014,31(7):1921-1930+1942.

[20] 钟涛. 基于复杂系统方法的慢性胃炎中医问诊证候建模研究[D]. 上海:华东理工大学,2014.

[21] DATTA S N. Min-max and max-min principles for the solution of 2 + 1 Dirac fermion in magnetic field, graphene lattice and layered diatomic materials[J].  Chemical Physics Letters,2018,7(9):692.

(責任编辑:江 艳)

猜你喜欢
深度学习
从合坐走向合学:浅议新学习模式的构建
搭建深度学习的三级阶梯
有体验的学习才是有意义的学习
利用网络技术促进学生深度学习的几大策略
MOOC与翻转课堂融合的深度学习场域建构
大数据技术在反恐怖主义中的应用展望
构建“单元整合、主题牵引”诗歌鉴赏“深度学习”课堂的策略