作者:白云静,申洪波,孟庆刚,王永炎
【关键词】 人工神经网络;中医证候;非线性建模
建模就是建立一个数学模型,使之能最好地拟合通过系统的输入输出数据体现出的实际系统的动态或静态特性。证候学研究的目的就是通过对四诊信息的综合分析,找出证候的特征,做出证型的分类诊断。因此,可以通过数理分析方法总结证型与指标之间的规律,建立证候诊断数学模型。常用的证候建模方法分为线性建模法和非线性建模法两种。
1 线性证候建模方法及其存在的问题
目前,常用的线性证候建模方法有多元线性回归分析、因子分析、判别分析等多元统计方法。多元线性回归分析可以根据各指标的常数项和偏回归系数建立证候的多元线性回归方程;因子分析可以通过将公因子表示为指标的线性组合,从指标的观测值估计各个公因子的值,从而建立证候的因子得分模型;判别分析可以对证候诊断明确的一组资料建立证候的判别函数。上述3种方法均可以建立证候的线性模型,并可实现对证候的诊断和预测。
多元统计方法很多都是对复杂问题的线性简化。如判别分析和回归分析都是不加区别地、均衡地看待每个症状变量对线性关系的影响,同时还基于各变量的作用与其他变量的值无关,且各变量的作用可以叠加这一不甚合理的假定而建立的症状和证候关系的一种简单的线性描述[1];因子分析也是建立每一个公因子(证候)和变量之间的线性函数。然而,中医证候系统具有非线性复杂性特征,且症状之间存在大量的多重共线性关系和协同关系,线性建模方法虽然有利于对复杂问题的数学描述,但却很难准确地模拟症状和证候之间的复杂关系,更难以逼近中医证候的真实面貌。
2 非线性证候建模方法
非线性建模法又称黑箱建模法,即在不了解黑箱内部机理和结构的情况下,通过提取隐含在系统的输入输出数据中的特性,建立一个能充分逼近系统实际结构的等价模型。目前,人工神经网络技术具有强大的非线性映射能力,能够任意精度逼近非线性函数,成为非线性系统辨识的主要建模方法。
中医证候的诊断过程,实质上是由收集到的各种症状,通过分析获得证型诊断的过程,可以把这个过程看作是一个非线性映射过程,因此,我们将改进的BP神经网络用于中医证候的非线性建模研究,探讨了基于人工神经网络模型的非线性证候建模方法。
3 基于人工神经网络的证候非线性建模方法
3.1 人工神经网络简介
人工神经网络(artificial neural network,ANN)是在对人脑神经网络结构认识理解的基础上,人工构造的新型信息处理系统。ANN具有大规模的并行处理方式、良好的鲁棒容错性、独特的信息存储方式以及强大的自学习、自组织和自适应能力,这使得它在模式识别、控制优化、信息处理、故障诊断以及预测等方面应用广泛,其理论与技术方法在工程、医疗卫生、农业、交通、财经、军事、环境、气象等领域显示出巨大的吸引力,并具有广阔的应用前景[2]。
ANN的一个显著特征是它通过自动学习来解决问题,对样本的学习过程,即为对网络中的神经元间的联系强度(即权重系数)逐步确定的过程,通过对样本的学习,可以学会识别自变量与应变量间的复杂的非线性关系。经过充分学习后的ANN获取了样本的特征规则,并将这些规则以数字的形式分布存贮在网络的连接权中,从而构成了系统的非线性映射模型。这样的ANN模型不仅能够对其学习过的样本准确识别,而且对未经学习的样本也可以准确识别,它甚至可以充分逼近任意复杂的非线性映射关系。可见,ANN不需要精确的数学模型,而是通过模拟人的联想推理和抽象思维能力,来解决传统自动化技术无法解决的许多复杂的、不确定性的、非线性的自动化问题。
BP神经网络[3]是指基于误差反向传播算法(back propagation,简称BP算法)的多层前向神经网络。BP网络的神经元通常采用Sigmoid型可微函数,可以实现输入到输出间的任意非线性映射,这使得它在函数逼近、模式识别、数据压缩等领域有着广泛的应用,也使得它能够应用于中医证候的非线性建模。
3.2 非线性建模方法
证候具有典型的非线性特征,证候的诊断过程可以看作是一个从诊断指标到证候的非线性映射过程,这个过程用非线性数学模型可以充分模拟,而ANN是典型的非线性数学模型,其中的BP网络更具有强大的非线性拟合能力。因此,我们选择ANN中最常用的BP神经网络技术,并进行适当的改进后,建立中医证候的非线性模型,然后对建立的证候模型的诊断性能进行测试。具体步骤如下。
3.2.1 数据预处理
在建模之前,首先对试验数据进行预处理。包括对输入数据的归一化处理和对数据的主成分分析以及资料的分组处理等。
先对所有数据进行归一化处理,使变换后的输入输出信息在(0,1)区间,以防止小数值信息被大数值信息所淹没;然后对归一化处理后的数据进行主成分分析,主成分的选择标准定为95%。数据经过主成分分析,可对大量的输入信息进行降维处理;最后根据验证方法进行病例分组,我们采用3倍交叉验证法,因此,将样本随机分为3组。
3.2.2 确定BP网络的结构
在MATLAB7.0环境下,采用改进的共轭梯度学习算法(trainscg学习算法),建立证候的三层前向BP网络模型。该网络包括输入层、隐层和输出层,其中输入层包含的输入神经元数即是证候的诊断指标数;隐层的层数及每层包含的神经元数根据具体情况而定;输出层包含的输出神经元数即研究资料包含的基本证型数。两个隐层之间通过双曲线正切S型传递函数(tansig)连接,隐层与输出层之间用对数S型传递函数(logsig)连接。设定网络的系统误差为小于0.01,最大迭代次数为500次,最小下降梯度为10-10。
其中,网络的输出节点用来表示共几种证型,表示方法是一个输出节点对应一种证型。我们将包含n个证型的输出采用(0,1,…,0)的方式,括号内共有n个数值,每一个数值代表一种证型,其中0表示诊断不成立,1表示诊断成立,这样可以诊断兼夹证的情况。另外,预测输出值分原始输出值和整合输出值两组,原始输出值为0到1之间的连续值;整合输出值既可整理成(0,1)的形式(规定≥0.5为1),又可整理成0-1之间的分段数值,比如(0,0.2,0.4,0.6,0.8,1)等6个数值,这样根据数值大小既可诊断兼夹证,又可判断证型的主、次情况。
3.2.3 证候网络模型的训练
先取样本的两组作为训练集,另一组作为测试集,再交换其中的一组,如此循环,分别共做3次训练与测试,从中得出平均预测效果值。
网络参数的初始值取为[-0.5,+0.5]上均匀分布的随机数。经重置几次网络权值的学习率和动态训练集后,不断改善权值。到权值趋稳,即认为网络训练完成。
3.2.4 证候网络模型的测试
神经网络训练的期望目标是以尽可能简单的网络结构达到尽可能高的学习精度和尽可能好的泛化能力,因此考察神经网络的性能就要看网络的泛化能力。所谓泛化,就是网络对尚未学习过的数据的正确识别能力,是否具有良好的泛化能力是网络能否投入实际使用及使用效果如何的重要因素。它可以通过测试样本集网络诊断结果的特异性和准确率来衡量。
证候网络模型的权值趋稳,训练结束后,即可以采用三倍交叉验证的方法,分3次分别对1/3测试样本做检验。此时只有输入矢量(即只有症状得分),无输出期望值(即没有相应证型的判断)。经网络运算后,得出预测输出值,与期望输出进行比较,分别统计各种证型预测值的特异性和准确率,以判断该证候神经网络模型的诊断性能。
4 实现基于人工神经网络的非线性证候建模研究
我们采用上述非线性证候建模方法,在MATLAB7.0环境下,对一组765例类风湿性关节炎(rheumatoid arthritis,RA)临床证候资料和一组449例糖尿病肾病(diabetic nephropathy,DN)临床证候资料,分别建立了RA证候BP网络模型和DN证候BP网络模型,并均采用三倍交叉验证的方法,检验了证候神经网络模型的诊断性能(具体内容另文详述)。测试结果显示:两种模型的平均单证特异性分别为81.31%、81.32%;平均单证准确率分别为95.70%、96.25%;平均诊断准确率分别为90.72%、92.21%。说明基于改进的BP神经网络的证候模型具有较高的诊断、预测能力。
5 讨论
“线性”和“非线性”是区别事物复杂性程度的标尺,在数学中,当两个变量(自变量和应变量)的关系成正比时就称为线性关系,否则就是非线性关系[4]。在生命科学中,由上述概念推广而来的线性和非线性逻辑则更具实用意义,非线性逻辑表征事物各组分之间是相互作用的,而不是相互独立的、正则的、无限可微的和平滑的,即总体不等于部分之和,它是复杂系统的典型特征之一。证候是机体各层级结构的整体涌现现象,中医四诊信息所表达的就是人体各层级结构的功能失调逐级涌现的结果[5]。显然,证候具有非线性特征。
对非线性证候系统建模应当用非线性建模法更能反映证候的实质。基于黑箱结构的ANN具有强大的非线性建模能力。因此,我们将其用于证候的非线性建模。
我们在基于共轭梯度下降算法的BP神经网络的基础上,对RA临床证候资料和DN临床证候资料均建立了非线性神经网络证候模型,经过三倍交叉验证,两种证候神经网络模型均有良好的诊断、预测能力。可以得出结论,ANN在不必知道内部结构的情况下能够充分模拟症状与证候的非线性映射关系。神经网络利用网络的自动学习能力,在充分辨识证候表征信息的基础上,可以自动抽提出这些信息蕴含的内在规律,并将其分布在网络的联接权中,从而建立了症状与证候的非线性映射函数。
在这里,样本(证候)被概括为一对输入与输出的抽象的数学映射关系,各种物理表征信息为输入单元,证型诊断为最终的输出结果。证候诊断的过程被看作了一个映射问题,通过症状找出对应的证型诊断,神经网络把症状与证型的对应关系通过输入与输出的映射转化成了一个非线性优化问题。虽然不清楚网络模型的内部结构,但我们的研究证实这种模型却能够充分逼近症状与证型诊断的非线性映射关系,近似真实地反映证候的全貌,这是在不打开黑箱的前提下,建立非线性证候模型、反映证候的内在规律和特征的有效方法。
BP神经网络虽然是一个标准的非线性数学模型,但它的收敛速度非常慢,为此,我们采用trainscg函数改进train函数,trainscg函数是共轭梯度算法的一种变形,具有采用尺度化共轭梯度反向传播算法对网络进行训练的功能。该算法结合了Levenberg-Marquardt算法中的模型置信区间方法和共轭梯度算法,避免了耗时巨大的线搜索过程,从而大大提高了网络的训练速度。我们建立的两种证候网络最后一次训练的迭代次数分别为58、33,说明建立的证候网络模型有很好的收敛性能。
总之,中医证候的诊断规律蕴含在足够多的样本集合中,利用神经网络的自主学习能力从大量的样本中进行证候特征的规则提取,能够抽提出比较全面的内在规律;同时,网络的自组织、自适应能力又能加强对边缘相似病例的辨识能力,这样的证候诊断模型更能充分逼近证候真实面貌。基于改进的BP神经网络的证候非线性数学模型具有良好的诊断、预测能力,能够充分逼近证候的真实面貌,是证候非线性建模的可行性方法。
当然,用ANN建立的证候模型是否有强大的推广能力,取决于样本的含量以及样本所含信息的全面程度。因此,必须保证样本的含量足够大、样本所蕴含的证候诊断信息足够全面,这样才能尽量真实地展示证候全貌。同时,ANN的知识处理能力还需进一步提高,还需围绕如何提高神经网络的学习能力、收敛速度、可塑性以及普化能力等方面展开深入研究。但目前采用神经网络技术建立证候数学模型,从而实现对证候的非线性建模,对中医证候的规范化研究不啻是一种可行的方法。
【参考文献】
[1] 袁世宏,王天芳.多元统计方法在建立证候诊断模型研究中存在问题的思考[J].北京中医药大学学报,2004,27(4):9-11.
[2] 白云静,申洪波,孟庆刚,等.中医证候研究的人工神经网络方法探析[J].中医药学刊,2004,22(12):2221-2223.
[3] 许 东,吴 铮.基于MATLAB6.X的系统分析与设计——神经网络[M].第2版.西安:西安电子科技大学出版社,2002.19-24.
[4] 包含飞.初议中医学是复杂性科学[J].上海中医药大学学报,2003,17 (2):3-6.
[5] 白云静,申洪波,孟庆刚,等.中医证候复杂性特征及证候研究思路探析[J].中国中医药信息杂志,2004,11(9):754-756.