bp神经网络与风险评估模型应用

  • 格式:doc
  • 大小:123.50 KB
  • 文档页数:4

bp神经网络与风险评估模型

风险预测体系

1评估目的

开展对住院病人医疗风险评估工作,主要从三方面进行:医疗质量,护理质量以及管理质量。目的是为了对住院病人可能存在的医疗风险进行客观、合理的阶段性评价,使医务人员获得住院病人综合、全面的反馈信息,以便于及时调整诊疗方案,提高医疗服务质量。

2评估对象

评估对象分别为在院住院病人。

3评估指标

表1医疗风险评估指标体系

变量 风险因子 分值 说明

x1 疾病严重程度 5 主要指入院时病人的身体状况

x2 病人现状 5 病人目前的身体状况

x3 手术、治疗情况 10 手术等级评分或给药情况

x4 护理质量 7 护理质量评分

x5 病人知晓情况 3 相关告知是否充分

x6 内置物情况 3 相关内置物是否有质量问题

x7 病人性质 3 是否医保、能否报销费用

x8 有无并发症 5 有无并发症,影响是否严重

BP神经网络的基本原理

BP〔Back-Propagation〕神经网络也称为后向传播神经网络[4]。是一种具有三层或三层以上的阶层型神经网络。典型的网络是三层、前馈的阶层网络,即:输入层、隐含层(也称中间层)、输出层。相邻层之间的各神经元实现全连接,即下一层的每一个神经元与上一层的每个神经元都实现全连接,而且每层各神经元之间无连接。

BP算法是通过迭代地处理一组训练样本,将每个样本的网络预测与实际知道的分类标号比较,进行学习。对于每个训练样本,修改权值,使得网络预测值和实际值之间的均方误差最小。这种修改“后向”进行。即由输出层,经由每个隐藏层,到第一个隐藏层,如此反复。经过一组样本数据进行训练后,权将最终收敛,学习过程停止。算法如表2所示。

表2 BP算法表示

算法 后向传播。使用后向传播算法的神经网络分类学习。

输入 训练样本samples,学习率1,多层前馈网络network。

输出 一个训练的、对样本分类的神经网络。

方法 初始化network的权和偏置。

While 终止条件不满足{

for samples中的毎个训练样本X{

//向前传播输入

for隐藏层或输出层每个单元j{

Ij=∑iWijOi+Bj ; //相对于前一层i,计算单元j的净输入

Oj=1/(1+e-Ij);} //计算毎个单元j的输出

//后向传播误差

for 输出层毎个单元j

Errj= Oj (1- Oi)(Tj- Oi); //计算误差

for 由最后一个到第一个隐藏层,对于隐藏层毎个单元j

Errj= Oi (1- Oi) ∑kErrkWjk ;//计算关于下一个较高层k的误差

for network 中毎个每个权Wij{

△Wij=(1)ErrjOj ; //权增值

Wij=Wij+△Wij ; } //权更新

for network 中毎个每个权Bj{

△Bj=(1)Errj ; //偏值增值

Bj= Bj+△Bj ; } //偏值更新

}}

风险预测模型构建

定义BP网络拓扑结构

(1)输入层节点的选择

前面我们分析了对医疗风险预测的指标体系,风险因子的指标为8个(X1-X8),将这8个评价指标作为网络的输入节点n=8。

(2)输出层节点的选择

根据评价体系要求,我们将评价结果作为网络的输出,因此取输出层节点数m=1。

(3)网络隐含层数的确定

在合理的结构和恰当的权值条件下,3层BP网络可以逼近任意的连续函数,因此,我们选取结构相对简单的3层BP网络。

(4)隐藏层节点的选择

于三层网络来说,输入层和输出层的节点数都可由问题本身定义,主要需要确定的是隐藏层节点的个数。目前来说,并没有确定最佳的隐藏层节点个数的理论方法,通常由经验或试验来确定。例如,由两个隐藏层节点开始,逐渐曾加隐藏层节点的个数(不超过输入节点的个数〉,直至达到较佳效果;或者以相反的方向进行,先给定一个较大的隐藏层节点数,再慢慢减少其个数。根据前一种方法,经试验,可以得出隐含层节点个数8=5。通过以上分析得到如图1所示的BP网络拓扑结构。

BP网络学习算法

BP神经网络的学习过程描述如下: 输入层 隐藏层 输出层

图1 BP网络拓扑结构

(1)初始化权及学习参数。网络的权被初始化为很小的随机数,例如:由-1.0到1.0,或由-0.5到0.5;每个单元有一个偏置,偏置赋予(-2/n,2/n)之间的随机数;学习率为1;目标误差为0.001。

(2)向前传播输入。在这一步,计算隐藏层和输出层每个单元的净输入和输出。首先,训练样本提供给网络的输入层。对于输入层的单元j,它的输出等于它的输入,即对于单元j,Oj=Ij。然后,隐藏层和输出层的每个单元的净输入用其输入的线性组合计算〔如公式4.2.1所示〕。

ijijijBOWI (4.2.1)

其中,Wij是由上一层的单元i到单元j的连接权;Oi是上一层单元i的输出;而Bj是单元j的偏置。隐藏层和输出层的每个单元取其净输入,然后将一个Logistic函数作用于它。给定单元j的净输入Ij,则单元j的输出Oj用下式计算。

)e1/(1Oj-Ij (4.2.2)

〔3〉后向传播误差。通过更新权和偏置以反映网络预测的误差,向后传播误差。对于输出层单元j,误差Errj用下式计算:

)O -)(TO -(1 O Ejjjjrrj (4.2.3)

其中Oj是单元j的实际输出,而Tj是j基于给定训练样本的已知类标号的真正输出。这里Oj (1-

Oj)是Logistic函数的导数。为计算隐藏层单元j的误差,考虑下一层中连接j的单元的误差加权和。隐藏层单元j的误差由下式计算:

kjkrrkjjrrjWE )O -(1 O E (4.2.4)

其中,Wjk是由下一较高层中单元k到单元j的连接权,而Errk是单元k的误差。

更新权和偏置,以反映传播的误差。权和偏置由如下几个公式更新:

jrrjjiOEW)1( (4.2.5) ijijijWWW (4.2.6)

rrjjEB)1( (4.2.7) jjjB B B (4.2.8)

其中,△Wij是权Wij的改变,1是学习率,△Bj是偏置Bj的改变。

(4)反复迭代至训练停止。第一个样本经上面训练后,再选取第二个样本进行训练,重复以上步骤,直至所有样本全部训练结束达到误差允许值,神经网络预测模型建立。

BP网络模型的实现

表3 网络训练结果与实际结果比较 序号 网络训练值 实际评价值 等级

1 0.821 0.8 良

2 0.392 0.4 优

3 0.496 0.5 优

4 0.866 0.9 优

5 0.441 0.4 及格

6 0.311 0.3 良

7 0.805 0.8 优

8 0.693 0.7 优

9 0.611 0.6 良

10 0.715 0.7 良

„ „ „ „

基于以上分析建立的网络模型和学习算法,我们选用高性能的数值计算可视化软件Matlab7.0,建立三层BP神经网络,输入层神经元8个,隐藏层神经元5个,输出层神经元1个,学习率为1,目标误差为0.001。在这里我们对湖州第一医院肾内科、心内科和腹部微创外科住院病人进行风险评估,形成45条样本数据,其中三分之二的数据用做神经网络训练学习,三分之一的数据用于对网络模型进行测试。为避免风险因子值相差过大,从而影响评估结果,对样本矩阵进行归一化处理。采用Matlab神经网络工具箱学习训练网络,得到神经网络评价模型,通过对测试数据的验证,结果比较满意,测试结果与专家评价结果比较见表3所示(这里给出部分数据〉。