BP神经网络原理及应用数学建模工作室房恩岳2012.11.07Contents神经网络概述BP神经网络应用实例在matlab中的实现BP网络模型改进神经网络简介什么是神经网络?人类的神经网络神经网络(NNs)它是一种模拟动物神经网络行为特征,进行分布式并行信息处理的算法。这种网络依靠系统的复杂程度,通过调整内部大量节点之间相互连接的关系,从而达到处理信息的目的。神经网络基础知识构成:大量简单的基本元件——神经元相互连接工作原理:模拟生物的神经处理信息的方式功能:进行信息的并行处理和非线性转化特点:比较轻松地实现非线性映射过程具有大规模的计算能力神经网络的本质神经网络的本质就是利用计算机语言模拟人类大脑做决定的过程做决定距离味道价格生物神经元结构:树突细胞核细胞体轴突突触神经末梢那怎样用机器语言来模拟呢?神经元结构模型x1x2xjx3xniyiijxj为输入信号,为阈值,表示与神经元xj连接的权值yi表示输出值iijijjx判断是否大于阀值i什么是阀值?临界值。比如有一头驴,往它身上压稻草,一根一根地压,当压到N根时,还没有被压倒,又压了一根,倒了,这时所有压在驴身上的稻草的多少,就是压倒这头驴的阈值。神经网络是模仿大脑的神经元,当外界刺激达到一定的阀值时,神经元才会受刺激,影响下一个神经元。判断是否大于阀值i若大于阀值,则此神经元接受此信息,输出若小于阀值,则此神经元不接受此信息的传递niijjx1ii)(1piijjiwxfyniijjx1niijjx1系统本身/黑盒子知道不知道y=x^2机场输入:x输出:y几种代表性的网络模型单层前向神经网络——线性网络阶跃网络多层前向神经网络(反推学习规则即BP神经网络)Elman网络、Hopfield网络、双向联想记忆网络、自组织竞争网络等等神经网络能干什么?运用这些网络模型可实现函数逼近、数据聚类、模式分类、优化计算等功能。因此,神经网络广泛应用于人工智能、自动控制、机器人、统计学等领域的信息处理中。虽然神经网络的应用很广,但是在具体的使用过程中到底应当选择哪种网络结构比较合适是值得考虑的。这就需要我们对各种神经网络结构有一个较全面的认识应用范围医学:疾病识别图像:识别、去噪、增强、配准、融合金融:股票和有价证券的预测分析、资本收益的预测和分析、风险管理、信用评估等等神经网络BP(Back-Propagation)神经网络BP神经网络是一种按误差逆传播算法训练的多层前馈网络,是目前应用最广泛的神经网络模型之一。BP网络能学习和存贮大量的输入-输出模式映射关系,而无需事前揭示描述这种映射关系的数学方程。它的学习规则是使用最速下降法,通过反向传播来不断调整网络的权值和阈值,使网络的误差平方和最小。BP神经网络模型拓扑结构包括输入层(input)隐层(hidelayer)和输出层(outputlayer)BP神经网络特点:多层前馈神经网络,信号向前传播,误差向后传播。结构:输入层输出层中间层ijk输入层输出层中间层ijkjikjix中间层:输入输出pijiijxu1)(jjufv输入层输出层中间层ijkjikjix输出层:输入输出njkjjkvU1)(kkUfV传递函数阈值型线性型S型0ix0ix2xxi1xxi21xxxi01)(xf01)(baxxfii2)(11)(cxiiexf传递函数(激活函数)logsig(S型函数):nexf11)(MATLAB按此函数计算:调用格式:A=logsig(N)如:n=-10:0.1:10;a=logsig(n)plot(n,a)gridon图形如下:-10-8-6-4-2024681000.10.20.30.40.50.60.70.80.91tansig(双曲正切S型传递函数):调用格式:A=tansig(n)112)(2nexf如:n=-10:0.1:10a=tansig(n)plot(n,a)gridon如右图所示-10-8-6-4-20246810-1-0.8-0.6-0.4-0.200.20.40.60.81BP神经网络原理基本BP算法包括两个方面:信号的前向传播和误差的反向传播。即计算实际输出时按从输入到输出的方向进行,而权值和阈值的修正从输出到输入的方向进行。利用输出后的误差来估计输出层的直接前一层的误差,再用这个误差估计更前一层的误差,如此一层一层的反传下去,就获得了所有其他各层的误差估计。BP神经网络工作原理误差向后传播给定输入向量和期望输出求隐层输出层各单元输出求期望输出与实际输出的偏差ee满足需求?全部e满足需求初始化结束计算隐层误差求误差梯度更新权值YYN输入层输出层隐含层BP神经网络工作流程1.网络初始化:根据训练数据确定网络的输入神经元数n,隐含神经元数l,输出神经元数m,初始化各层神经元之间的连接权值和,初始化隐含层和输出层的阈值a和b,给定学习速率和神经元传递函数。2.隐含层输出计算:根据输入向量X,输入层和隐含层连接权值以及隐含层阈值a,计算隐含层输出Hwijwjkwij3.输出层输出计算。根据隐含层输出的H,连接权值和阈值b,计算BP神经网络的预测输出O.4.误差计算根据预测输出O和期望输出Y计算网络预测误差e5.权值更新根据网络误差更新网络权值,6.阈值更新,根据网络误差网络e,神经元阈值a,b7.判断算法迭代是否结束,若没有结束返回步骤2wijwijwjk正向传播:输入样本---输入层---各隐层---输出层判断是否转入反向传播阶段:若输出层的实际输出与期望的输出(教师信号)不符误差反传误差以某种形式在各层表示----修正各层单元的权值网络输出的误差减少到可接受的程度进行到预先设定的学习次数为止BP网络的标准学习算法-学习过程BP标准算法步骤网络结构输入层有n个神经元,隐含层有p个神经元,输出层有q个神经元变量定义输入向量:隐含层输入向量:隐含层输出向量:输出层输入向量:输出层输出向量:期望输出向量:12,,,nxxxx12,,,phihihihi12,,,phohohoho12,,,qyiyiyiyi12,,,qyoyoyoyo12,,,qdddodBP标准算法步骤变量定义输入层与中间层的连接权值:隐含层与输出层的连接权值:隐含层各神经元的阈值:输出层各神经元的阈值:样本数据个数:激活函数:误差函数:ihwhowhbob1,2,kmf()211(()())2qoooedkyokBP标准算法步骤1.网络初始化给各连接权值分别赋一个区间(-1,1)内的随机数,设定误差函数e,给定计算精度值和最大学习次数M。2.随机选取一个输入样本及对应期望输出))(,),(),(()(21kxkxkxkxn))(,),(),(()(21kdkdkdkdqoBP标准算法步骤3.计算隐含层和输出层各神经元的输入和输出BP标准算法步骤4.利用网络期望输出和实际输出,计算误差函数对输出层的各神经元的偏导数。BP标准算法步骤5.利用隐含层到输出层的连接权值、输出层的输出和隐含层的输出,计算误差函数对隐含层各神经元的偏导数。BP标准算法步骤BP标准算法步骤6.利用输出层各神经元的和隐含层各神经元的输出来修正连接权值。BP标准算法步骤7.利用隐含层各神经元的和输入层各神经元的输入修正连接权。BP标准算法步骤8.计算全局误差9.判断网络误差是否满足要求。当误差达到预设精度或学习次数大于设定的最大次数,则结束算法。否则,选取下一个学习样本及对应的期望输出,返回到第三步,进入下一轮学习。mkqoookykdmE112))()((21梯度下降法)(E0情况一、直观表达当误差对权值的偏导数大于零时,权值调整量为负,实际输出大于期望输出,权值向减少方向调整,使得实际输出与期望输出的差减少。whohoewe0,此时Δwho0BP标准算法直观解释情况二、直观表达当误差对权值的偏导数小于零时,权值调整量为正,实际输出少于期望输出,权值向增大方向调整,使得实际输出与期望输出的差减少。hoewe0,此时Δwho0whoBP标准算法直观解释应用实例分类识别数据预测医学诊断蠓虫的分类识别思路101或oy102或oy1、触角长和翼长作为输入信息,分别记x1,x2目标输出:(1,0)、(0,1)。Af类记为(1,0),Apf类记为(0,1)。输出层有两个神经元oy输入层输出层中间层ihohiohix2、通过已知样本训练出合适的权值使输出为(0,1)或(1,0)。ohhi、3、将待区分的蠓虫数据输入网络,求值。)(kdohiw权值求法:向后传播法理想输出Af类(1,0),Apf类(0,1)记为则有误差:使得E(w)最小的作为所需的权值qoookykd12))()((21)E(ohw运用神经网络进行预测例:现给出一药品商店一年当中12个月的药品销售量(单位:箱)如下:月份123456销量205623952600229816341600月份789101112销量187314781900150020461556训练一个BP网络,用当前的所有数据预测下一个月的药品销售量。抛开神经网络,对于预测问题我们会首先想到线性拟合的方法首先我们看一下这些数据的离散分布图0246810121400160018002000220024002600但线性拟合有它的局限性,从图中可以明显看出月份与药品销量不存在线性关系,对于离散程度特别高的数据,它们不存在线性关系,所以用线性拟合做出来的误差会很大对于预测问题我们还可以用灰色系统、时间序列来预测思路二我们用前三个月的销售量预测下一个月的销售量,也就是用1-3月的销售量预测第4个月的销售量,用2-4个月的销售量预测第5个月的销售量,如此循环下去,直到用9-11月预测12月份的销售量。这样训练BP神经网络后,就可以用10-12月的数据预测来年一月的销售量。谵妄的诊断谵妄是由于各种原因引起的急性脑器质性综合症,其特点是急性发病,意识水平变化,病程波动,定向力、注意力、思维、精神运动、行为和情感改变。根据国外1980年以后的有关谵妄研究文献的报道,谵妄的发病率为4%~25%。目前对谵妄的发病机制还了解不多,诊断的方式常采用多个指标综合评价。如对老年人谵妄,通常采用检查表的方式确诊,检查表中的11个项目包含:急性起病:病人的精神状况有急性变化的证据吗?注意障碍:患者的注意力难以集中吗?思维混乱:患者的思维是凌乱或是不连贯吗?意识水平的改变:总体上看,您如何评价该患者的意识水平?定向障碍:在会面的任何时间患者存在定向障碍吗?记忆力减退:在面谈时患者表现出记忆方面的问题吗?知觉障碍:患者有知觉障碍的证据吗?精神运动性兴奋:面谈时患者的行为活动有不正常的增加吗?精神运动性迟缓:面谈时患者有运动行为水平的异常减少吗?波动性:患者的精神状况(注意力、思维、定向、记忆力)在面谈前或者在面谈中有波动吗?睡眠-觉醒周期的改变:患者有睡眠-觉醒周期紊乱的证据吗?谵妄的诊断针对以上11个问题,医生对病人进行观察和提问,每项分4个等级打分:不存在—1分;轻度存在—2分;中度存在—3分;严重存在—4分。数据为一个医生对96名测试人员的观察和提问,并通过计分方式记录下来的直观诊断。诊断标准为:22分以上可诊断为谵妄,在量表诊断一列中记为Y(否则记为N)。这样的标准是否合理?谵妄的诊断序号起病注意思维意识定向记忆错觉兴奋迟滞波动睡眠22分标准量表诊断13322212313325Y24443333414436Y33322332213428Y…………961222111311217N谵妄的诊断实际上已经知道,前48个数据来自临床诊断的病人,后48个数据来自正常人。可以看出,量表诊断一共出了10例误诊病