基于BP神经网络原理的医疗辅助平台
作者: 赵文龙 马沐光 颜弋乔
摘要:针对患者就医前无法预估自身疾病,对检查注意事项准备困难等问题,该文设计一款就医辅助平台,通过预测疾病,给予检查项目建议,指出检查注意事项,帮助患者做好就医准备。该文基于BP神经网络模型,构造用户特征模型,建立一个分块处理主页信息的辅助医疗平台,对患者疾病类型进行预测,指导患者就医。通过测试数据的测试,该模型对于疾病预测准确值可达74%,若以输出可能性最高的前五种疾病作为判断,准确度可达89%。由于实验数据经过理想化处理,该数据集与真实情况存在一定偏差。该平台构想可成为患者就医看病过程中重要的一环,帮助患者在检查前有更充分的准备;同时,该构想可为医院实现迅速分诊提供思路。
关键词:就医辅助平台;神经网络算法;智能导向;基于用户体验的应用优化
中图分类号:R-056 文献标识码:A
文章编号:1009-3044(2022)02-0084-04
现如今,医疗卫生行业存在医疗资源紧缺和分布不均的问题。患者问诊前首先需要对自己的病情有一定的认知,然后选择相应的检查科室,并对有可能的检查项目做好相关准备。而相当一部分患者对自身病情缺乏全面的了解,需要花费大量的时间提前准备。针对此类问题,医疗辅助平台凭借其便捷的操作,在一定程度上帮助患者预测疾病类型,为就医提供建议。
早在1966年,Ledley 和 Lusted[1]就提出了机器诊断的思想。1972年,Willcox et al[2]等人还使用贝叶斯理论来识别细菌疾病。Abeel T[3]通过整合的特征选择技术和支持向量机分类算法进行疾病诊断。Chrysostomos D.Stylios[4]通过人工智能,实现对老年人病症进行快速诊断。在国内,梁建庆等人[5]通过神经网络,设计基于中医核心思维的诊疗系统。李强等人[6]基于神经网络模型,利用患者疾病数据开发远程医疗指导平台。崔莉耀等人[7]利用卷积神经网络进行疾病预测来实现在线网络医疗指导。张强强等人[8]利用卷积神经网络提取关键字并在SVM中进行疾病预测。
而现实生活中,在线医疗辅助平台几乎都是人工辅助的,现有的医疗指导系统仍然不足[7]。例如,利用丁香网进行专家网络会诊,采用人工方式帮助病人初步诊断疾病,给予相关建议。但是,人工网上诊断并不能全天候给予及时建议,且需要支付较高的人工费用。本文基于前人的研究对神经网络进行标注序列化,利用词嵌入在提取训练数据模型上的优势,设计了一款辅助医疗平台[9]。相较于将姓名年龄等特征同时内置到计算模型,考虑到现实中的平台建设,通过创建人物角色模型的方式描述用户需求,对设计目标人群形象、需求和价值观进行一种概括化、视觉化的呈现。用户角色画像将逐步分层、清晰、量化,为产品快速了解用户提供导向性和根据性[10]。本平台从患者的病症出发,基于神经网络预测患者的疾病种类,给出检查项目和检查科室建议,并告知患者检查前的注意事项,提供一种便捷、低成本的预测方法;同时根据市场定位,优化流程,使患者使用便捷,更好地帮助患者为就诊做准备。
1 BP神经网络的模型构建
1.1 BP神经网络模型概述
神经网络算法[11]是对人脑的神经元之间传送信息的形式进行模拟,通过输入层、隐层和输出层这些层次结构,对数据进行调整、评估和分析计算,得到的一类具有学习、记忆、预测和模式识别等功能的智能算法。对于非线性系统,利用BP神经网络可以很好地完成系统内各神经元之间权重值的调整工作。其学习过程由信号的正向传播与误差的反向传播两个过程组成。正向传播时,输入样本从输入层传入,经各隐含层处理后,传向输出层,若输出层的实际输出与期望的输出不合要求,则转入误差和的反向传播阶段。误差反向传播是将输出误差和以某种形式通过隐含层向输入层逐层反向传播,并将误差和分摊给各层的所有单元,从而获得各层单元的误差信号,此误差信号即作为修正单元的依据。这种信号在正向传播与误差反向传播的各层权值调整过程中不断重复地进行。权值不断调整过程也就是网络的学习训练过程。此过程一直进行到网络输出的误差和减小到可接受的程度或进行到预先设定的学习次数为止[11],其流程图如图1。
1.2 疾病预测模型构建
1.2.1 数据说明
为了更直观地表示算法对数据的学习筛选功能,应选取患病人群较为广泛、病症较为常见、症状相对多样的病症类别作为数据样本。这里挑选了30余种呼吸内科相关疾病,并依据医疗数据库中患者常见的疾病症状进行归纳整理和适当简化,选取了每种疾病最为典型,判断依据最充分的五种病症,综合疾病症状出现的概率后模拟实际情况中所收集的3000组病人病症数据,组成数据集,随机选取2700组数据为训练组,另外300组为测试组。
1.2.2 数据预处理
通过TensorFlow的jieba分词将病人疾病特征和疾病名称进行拆词,将每个单独词块使用北京师范大学中文信息研究所与中国人民大学DBIIR实验室研究提供的开源“Chinese-word-vectors” 工具转为词向量,将词向量不足的数据后增添零向量,使每个病人的特征向量值相等。
1.2.3 数据归一化处理
对预处理后的数据标准化处理后进行放大,可得到较好的预测结果,其公式如下:
[z=x-μσ] (1)
其中xi为输入变量,i=1,2,...n,N为变量数目,μ为均值σ为标准值,z为最终结果。
[μ=1Ni=1N(xi)] (2)
[σ=1Ni=1N(xi-μ)2] (3)
1.2.4 模型构建
本研究选取Sigmoid函数作为激活函数[12],记为:
[f(x)=11+e-x] (4)
设输入层有n个神经元,隐含层有p个神经元,输出层有q个神经元,定义如下:
隐含层变量为:
[hj,j=1,2,3,...,p] (5)
输出层变量为:
[yk,k=1,2,3,...,q] (6)
期望值变量为:
[dk,k=1,2,3,...,q] (7)
其中权值为W,偏置为a,b。
在误差正向传播过程中:
对于隐含层:
[hj=f(j=1pWijXI+aj)] (8)
对于输出层:
[yk=f(k=1qhjWjk+bk)] (9)
本模型采用均方差误差函数:
[E=12k=1q(dk-yk)2] (10)
在误差反向传播过程中:
[Wij=Wij-y∂E∂hxi] (11)
[Wjk=Wjk-y∂E∂yyi] (12)
[aj=aj-y∂E∂h] (13)
[bk=bk-y∂E∂y] (14)
输出层各节点所收到的总输入变化时单样本误差变化率:
[∂E∂y=yk(1-yk)(yk-dk)] (15)
隐含层误差变化率:
[∂E∂h=hj(1-hj)k=1qWij(dk-yk)] (16)
输入层结构图如图2。
2 平台设计
面对复杂的使用场景、市场产品的严重同质化以及在线和离线医疗场景的碎片化使得产品本身的用户体验变得越来越重要。作为医疗辅助系统,本平台不独立设置完全的网上就诊流程而主要为线下就诊提供更好的就诊体验。平台同时在主页信息结构、用户角色模型创建以及数据反馈机制上进行了优化设计。