APP下载

基于LabVIEW和MATLAB的骨质疏松疾病诊断系统的研究*

2011-01-30杨紫娟陈若珠

中国医学装备 2011年5期
关键词:诊断系统数据源骨质

韦 哲 杨紫娟 陈若珠

1 引言

骨质疏松已经成为威胁我国中老年人健康的主要疾病之一,患者数量逐年迅速增加,但骨质疏松诊断方面的专家数量却远不能满足医疗发展的需要,同时骨质疏松防治知识尚未得到普及,因此开发骨质疏松诊断系统将有助于解决该问题。

由于某些原因,有些病人的病历数据存在不完整性,假如按传统的方法进行处理是很难实现,但采用神经网络使系统具有较强的容错性,对最终结果的准确性影响不大。

基于神经网络的医疗诊断系统通过病历学习获取诊断知识并按自然联想推理产生诊断结果,这是一般的医疗诊断系统没有做到的。本文是基于LabVIEW8.6平台实现与专家数据库的调用,以及与MATLAB7.0的数据交换,并在MATLAB7.0中实现BP网络的设计,最终以不断完善诊断系统的专家数据库为目的,实现更准确到位,更有效的治疗病患。

2 骨质疏松疾病诊断系统原理

通过LabSQL直接录入专家诊断过的病例数据,一方面通过系统的ODBC数据源管理存入ACCESS专家数据库,以便以后查询;另一方面,再将专家数据输入到神经网络中,训练网络结构,逼近真实的专家推理。然后用要诊断的病例样本经过训练好的BP网络,得出骨质疏松诊断结果,将诊断误差小的结果经过LabSQL存入ACCESS专家数据库中,从而使系统专家数据库达到完善和更新的功能。其原理步骤如图1所示。

3 基于LabVIEW的数据库访问

通过LabVIEW开发的免费数据库访问工具包LabSQL来实现数据库的访问。LabSQL是一个免费、多数据库、跨平台的LabVIEW数据库访问工具包,支持 Windows操作系统的任何基于ODBC(数据源管理)的数据库,通过Microsoft ADO(Microsoft Active Data Object)控件及LabSQL语言实现数据库的访问,将复杂的底层ADO和LabSQL语言操作封装成一系列LabSQL VIs模块,以便于软件模块化的设计[1]。LabSQL优点是容易理解、操作简单,对不熟悉SQL语言的用户也能很方便的使用,只需进行简单的编程,就能在LaVIEW中实现数据库访问[2]。利用LabSQL在数据库操作中可实现应用程序和数据库之间的数据交互传递。一般的简单操作步骤如图2所示。

基于LabVIEW8.6环境下的编程运行后,数据可保存在ACCESS数据库中。

LabSQL和数据库之间是通过ODBC相连接,需要在ODBC中指定数据源名称与驱动程序。因而在使用LabSQL之前,第一需要在Windows操作系统的ODBC数据源中创建一个DSN(data source name,数据源名)。LabSQL和数据库之间的连接是建立在DSN基础之上。其连接流程如图3所示。

4 LabVIEW与MATLAB的混合编程原理

利用MATLAB的神经网络工具设计学习机,再把MATLAB和LABVIEW结合起来,不仅可以提高诊断系统推理的可靠度,还可以提高开发效率,增强可维护性[3]。LabVIEW与MATLAB的混合编程,通常用LabVIEW设计用户图形界面,负责数据采集;MATLAB在后台提供大型算法供LabVIEW调用。如图4所示。

5 基于MATLAB的BP神经网络模型的建立

5.1 BP神经网络诊断模型

Hecht Nielson证明,一个3层的B网络可以完成任意N维到M维的映射,当各个节点均采用S型函数f(x)=1/(1+e-x)时,一个隐含层就足以实现任意判决分类问题[4]。所以,此BP子网采用单隐层的激励函数为S型函数的神经网络结构。

世界卫生组织(WHO)建议骨质疏松的诊断标准为骨密度值小于-2.5个标准差(SD)[5]。骨质疏松程度诊断的3个必要步骤是:(1)临床症状问诊;(2)胸腰椎骨密度分析;(3)股骨颈骨密度分析[6]。所以本诊断系统选用性别、身高、体重、临床症状问诊、胸腰椎骨密度及股骨颈骨密度作为性能指标。

问诊的目的在于考察与骨质疏松直接相关的不良生活习惯,根据其重要性评估骨质疏松发生的可能性,患者所需回答的问题包括如下具体内容:

(1)是否经常腰背痛;

(2)是否身高明显降低;

(3)是否长期嗜酒;

(4)是否吸烟史长且吸烟量大;

(5)是否经常消化不良;

(6)自身是否曾发生非创伤性骨折史。

患者需对如上问题作答,回答结果为“是”则记为“1”,回答结果为“否”则记为“0”,若(1)或(2)两项中有一项回答结果为“是”,则问诊结果直接判定为骨量减少,无需借鉴其他问题的回答结果,并且将1作为系统的输入,如果该患者对上述问题回答的结果所得总分大于3,则记为该患者患有骨质疏松病的一个可能性分析指标,对于该诊断系统,用1作为系统的输入,否则用0作为系统的输入。表1为部分骨质疏松病情诊断指标体系的样本特征信息。

表1 部分骨质疏松病情诊断指标体系的样本特征信息

由表1可见,输入患者数据有8个,输出为1个,据此分析诊断知识结构可得:本系统BP神经网络诊断结构模型应为3层BP神经网络,有8个输入神经元和1个输出神经元。根据式Hn=2n1+1,并考虑到使网络收敛速度快同时对测试样本的识别效果较好,可将隐含层神经元数目设计为17个,患者病情程度子网输出有1个节点。输出结果表示:0~0.33的值内为正常,0.33~0.66的值内为骨量减少,0.66~1的值内为骨质疏松,大于1为严重骨质疏松。

5.2 仿真分析

仿真基于MATLAB7.0神经网络工具箱的环境下实现,在每一层的传递函数分别是:纯线性传递函数 pureline、正切sigmoid传递函数tansig及对数sigmoid传递函数logsig,学习函数用自适应学习速率动量梯度下降函数traingdx,性能函数则采用均方误差函数mse[7]。从经过数据归一化处理的150个代表病例样本当中选择90个作为正常的训练样本,构成样本库其余的31个作为测试样本,另29个作为变量样本(主要目的是防止训练中出现过拟合状态),经过BP神经网络的1000次迭代学习。从而网络性能目标设为0.001,和学习速率设为0.01,及动量常数为0.9,再以此对全体样本进行训练。经过训练样本训练好BP网络后,测试样本结果如图5所示。从图上可知病人病情的真实值和诊断值的误差大多数不大,有少量误差可能是由于选取的学习样本的数量少或是网络层数和隐含层神经元数的选取的影响。总得来说此BP网络的构建和训练是成功的。

神经网络通过样本的学习来获取知识,网络稳定后,把领域专家求解问题的知识和经验分布在网络的互连结构及权值参数上,最终得到一组参数和两个邻接矩阵,构成神经网络库。样本库和神经网络库组成了系统的知识库。

6 结语

本文基于LabVIEW8.6的平台,实现专家数据库的调用,以及与MATLAB7.0的数据交换,并在MATLAB7.0中实现BP网络的设计。所采用的BP神经网络方法是一种非线性映射方法,它只须将处理过的数据输入到网络中,通过MATLAB7.0的神经网络工具箱计算即可得到诊断结果,不用人为地确定权重,从而可以减少诊断过程中的人为因素,提高诊断的可靠性,使诊断结果更有效、更客观。但是它同时也存在着一些缺点,如所选取的学习样本的数量在很大程度上影响着神经网络模型的学习性能,还有网络层数和隐含层神经元数的选取也将影响整个网络的学习能力和学习效率等等。LabVIEW与MATLAB的混合编程,是可以节约开发成本,但它会使整个系统运行速度慢,所以本系统还有待改进。随着BP网络模型在骨质疏松诊断分类这一领域的深入研究与应用,相信基于LabVIEW与MATLAB神经网络工具箱的BP网络模型将成为骨质疏松诊断系统建立的有效途径。

[1]秘晓元,张彦斌.LABVIEW中利用 LABSQL对数据库访问技术的探讨[J].自动化与仪器仪表,2004(6):54-56.

[2]关旭,张春梅,王尚锦.虚拟仪器软件LABVIEW和数据采集[J].微机发展,2004(3):77-79.

[3]裴峰,汪翠英.利用COM技术的LABVIEW与 MATLAB的无缝集成[J].仪器仪表用户,2005,12(2):97-99.

[4]Hunt,H.Jetal.Neural networks control system,Automatics,1992(6):1083-1112.Oganov VS,Rakhmanov AS,et a1.The state of human bone tissue during space flight[J].Acta Astronaut,1991,23:129-133.

[5]林守清.骨质疏松病因分析[J].当代医学,2000,6(11):46-50.

[6]Chen Tianping,Chen Hong.Approximations of continuous functions by neural networks with application to dynamic system.IEEE Transition Neural Networks,1993,4(6)910-918.

猜你喜欢

诊断系统数据源骨质
关注健康 远离骨质疏松
中老年骨质疏松无声息的流行
骨质疏松怎样选择中成药
CTCS2-200H型列控车载设备运用状态在线诊断系统的研究与应用
列控车载设备智能监测诊断系统开发探讨
区间轨道电路智能诊断系统的探讨
信号集中监测智能预警及诊断系统的设计与实现
“骨康操”预防骨质疏松
Web 大数据系统数据源选择*
基于不同网络数据源的期刊评价研究