1、 一般而言,ANN,ANN与经典计算方法相比并非优越,只有当常规方法解决不了或效果不佳时ANNANN方法才能显示出其优越性。尤其对问题的机理不甚了解或不能用数学模型表示的系统,如故障诊断、特征提取和预测等问题,ANN,ANN往往是最有利的工具。另一方面,ANN,ANN对处理大量原始数据而不能用规则或公式描述的问题,表现出极大灵活性和自适应性。人工神经网络1人工神经网络例 1981年生物学家格若根(W Grogan)和维什(WWirth)发现了两类蚊子(或飞蠓midges)他们测量了这两类蚊子每个个体的翼长和触角长,数据如下:翼长 触角长 类别 1.64 1.38 Af 1.82 1.38 Af
2、 1.90 1.38 Af 1.70 1.40 Af 1.82 1.48 Af 1.82 1.54 Af 2.08 1.56 Af翼长 触角长 类别1.78 1.14 Apf1.96 1.18 Apf1.86 1.20 Apf1.72 1.24 Af2.00 1.26 Apf2.00 1.28 Apf1.96 1.30 Apf1.74 1.36 Af2p问:如果抓到三只新的蚊子,它们的触角长和翼长分别为(l.24,1.80);(l.28,1.84);(1.40,2.04)问它们应分别属于哪一个种类?解法一:把翼长作纵坐标,触角长作横坐标;那么每个蚊子的翼长和触角决定了坐标平面的一个点.其中 6
3、个蚊子属于 APf类;用黑点“”表示;9个蚊子属 Af类;用小圆圈“。”表示得到的结果见图1 图1飞蠓的触角长和翼长 3p思路:作一直线将两类飞蠓分开 例如;取A(1.44,2.10)和 B(1.10,1.16),过A B两点作一条直线:y 1.47x -0.017其中X表示触角长;y表示翼长 分类规则:设一个蚊子的数据为(x,y)如果y1.47x -0.017,则判断蚊子属Apf类;如果y1.47x -0.017;则判断蚊子属Af类 4p分类结果:(1.24(1.24,1.80)1.80),(1.28(1.28,1.84)1.84)属于AfAf类;(1.40(1.40,2.042.04)属于
4、 ApfApf类5缺陷:根据什么原则确定分类直线?若取A=(1.46,2.10),B=(1.1,1.6)不变,则分类直线变为 y=1.39x+0.071分类结果变为:(1.24,1.80),(1.40,2.04)属于Apf类;(1.28,1.84)属于Af类 哪一分类直线才是正确的呢?因此如何来确定这个判别直线是一个值得研究的问题一般地讲,应该充分利用已知的数据信息来确定判别直线6p再如,如下的情形已经不能用分类直线的办法:新思路:将问题看作一个系统,飞蠓的数据作为输入,飞蠓的类型作为输出,研究输入与输出的关系。7BPBP神经网络模型与学习算法8.前馈神经网络模型p三层前向网络9l(1 1)是
5、否存在一个BPBP神经网络能够逼近给定的样本或者函数。两个基本问题l(2 2)如何调整BPBP神经网络的连接权,使网络的输入与输出与给定的样本相同。u 10pRumelhartRumelhart,McClellandMcClelland于19851985年提出了BPBP网络的误差反向后传BP(Back Propagation)BP(Back Propagation)学习算法pBPBP算法基本原理利用输出后的误差来估计输出层的直接前导层的误差,再用这个误差估计更前一层的误差,如此一层一层的反传下去,就获得了所有其他各层的误差估计。J.McClelland David Rumelhart 11BP
6、BP神经网络模型p激活函数必须处处可导一般都使用S S型函数 p使用S S型激活函数时BPBP网络输入与输出关系输入输出12BPBP神经网络模型输出的导数根据S S型激活函数的图形可知,对神经网络进行训练,应该将netnet的值尽量控制在收敛比较快的范围内 13BPBP网络的标准学习算法p学习的过程:神经网络在外界输入样本的刺激下不断改变网络的连接权值,以使网络的输出不断地接近期望的输出。p学习的本质:对各连接权值的动态调整p学习规则:权值调整规则,即在学习过程中网络中各神经元的连接权变化所依据的一定的调整规则。14BPBP网络的标准学习算法-算法思想p学习的类型:有导师学习p核心思想:将输出
7、误差以某种形式通过隐层向输入层逐层反传p学习的过程:信号的正向传播 误差的反向传播将误差分摊给各层的所有单元各层单元的误差信号修正各单元权值15BPBP网络的标准学习算法-学习过程p正向传播:输入样本输入层各隐层输出层p判断是否转入反向传播阶段:若输出层的实际输出与期望的输出(教师信号)不符p误差反传误差以某种形式在各层表示修正各层单元的权值p网络输出的误差减少到可接受的程度进行到预先设定的学习次数为止16BPBP网络的标准学习算法 p网络结构输入层有n个神经元,隐含层有p个神经元,输出层有q个神经元p变量定义输入向量;隐含层输入向量;隐含层输出向量;输出层输入向量;输出层输出向量;期望输出向
8、量;17BPBP网络的标准学习算法输入层与中间层的连接权值:隐含层与输出层的连接权值:隐含层各神经元的阈值:输出层各神经元的阈值:样本数据个数:激活函数:误差函数:18BPBP网络的标准学习算法p第一步,网络初始化 给各连接权值分别赋一个区间(-1,1)内的随机数,设定误差函数e,给定计算精度值 和最大学习次数M。p第二步,随机选取第 个输入样本及对应期望输出 19BPBP网络的标准学习算法p第三步,计算隐含层各神经元的输入和输出20BPBP网络的标准学习算法p第四步,利用网络期望输出和实际输出,计算误差函数对输出层的各神经元的偏导数 。21BPBP网络的标准学习算法p第五步,利用隐含层到输出
9、层的连接权值、输出层的 和隐含层的输出计算误差函数对隐含层各神经元的偏导数 。22BPBP网络的标准学习算法23BPBP网络的标准学习算法p第六步,利用输出层各神经元的 和隐含层各神经元的输出来修正连接权值 。24BPBP网络的标准学习算法p第七步,利用隐含层各神经元的 和输入层各神经元的输入修正连接权。25BPBP网络的标准学习算法p第八步,计算全局误差p第九步,判断网络误差是否满足要求。当误差达到预设精度或学习次数大于设定的最大次数,则结束算法。否则,选取下一个学习样本及对应的期望输出,返回到第三步,进入下一轮学习。26BPBP网络的标准学习算法pBPBP算法直观解释情况一直观表达 当误差
10、对权值的偏导数大于零时,权值调整量为负,实际输出大于期望输出,权值向减少方向调整,使得实际输出与期望输出的差减少。whoe0,此时who027BPBP网络的标准学习算法pBPBP算法直观解释情况二直观表达当误差对权值的偏导数小于零时,权值调整量为正,实际输出少于期望输出,权值向增大方向调整,使得实际输出与期望输出的差减少。e0who28(1 1)隐层数及隐层神经元数的确定:目前尚无理论指导。(2 2)初始权值的设置:一般以一个均值为0 0的随机分布设置网络的初始权值。(3 3)训练数据预处理:线性的特征比例变换,将所有的特征变换到00,11或者-1-1,11区间内,使得在每个训练集上,每个特征
11、的均值为0 0,并且具有相同的方差。(4 4)后处理过程:当应用神经网络进行分类操作时,通常将输出值编码成所谓的名义变量,具体的值对应类别标号。n BP BP算法的设计 29303132BP神经网络在模式识别中的应用 模式识别研究用计算机模拟生物、人的感知,对模式信息,如图像、语音等,进行识别和分类。传统人工智能的研究部分地显示了人脑的归纳、推理等智能。但是,对于人类底层的智能,如视觉、听觉、触觉等方面,现代计算机系统的信息处理能力还不如一个幼儿园的孩子。神经网络模型模拟了人脑神经系统的特点:处理单元的广泛连接;并行分布式信息储存、处理;自适应学习能力等。神经网络模式识别方法具有较强的容错能力
12、、自适应学习能力、并行信息处理能力。33BP神经网络在模式识别中的应用例 设计一个三层BP网络对数字0至9进行分类。每个数字用9 7的网格表示,灰色像素代表0,黑色像素代表1。将每个网格表示为0,1的长位串。位映射由左上角开始向下直到网格的整个一列,然后重复其他列。选择BP网络结构为63-6-9。97个输入结点,对应上述网格的映射。9个输出结点对应10种分类。使用的学习步长为0.3。训练600个周期,如果输出结点的值大于0.9,则取为ON,如果输出结点的值小于0.1,则取为OFF。34 测试结果表明:除了8以外,所有被测的数字都能够被正确地识别。对于数字8,神经网络的第6个结点的输出值为0.5
13、3,第8个结点的输出值为0.41,表明第8个样本是模糊的,可能是数字6,也可能是数字8,但也不完全确信是两者之一。BP神经网络在模式识别中的应用当训练成功后,对如图所示测试数据进行测试。测试数据都有一个或者多个位丢失。35BPBP神经网络的特点p非线性映射能力能学习和存贮大量输入-输出模式映射关系,而无需事先了解描述这种映射关系的数学方程。只要能提供足够多的样本模式对供网络进行学习训练,它便能完成由n n维输入空间到m m维输出空间的非线性映射。p泛化能力当向网络输入训练时未曾见过的非样本数据时,网络也能完成由输入空间向输出空间的正确映射。这种能力称为泛化能力。(overfiting,(ove
14、rfiting,书呆子现象)p容错能力输入样本中带有较大的误差甚至个别错误对网络的输入输出规律影响很小。36BPBP神经网络学习算法的MATLABMATLAB实现 pMATLABMATLAB中BPBP神经网络的重要函数和基本功能 函 数 名功 能newff()生成一个前馈BP网络tansig()双曲正切S型(Tan-Sigmoid)传输函数logsig()对数S型(Log-Sigmoid)传输函数traingd()梯度下降BP训练函数37BPBP神经网络学习算法的MATLABMATLAB实现pMATLABMATLAB中BPBP神经网络的重要函数和基本功能newff()功能 建立一个前向BPBP
15、网络格式 net=newff(PRnet=newff(PR,S1 S2.SN1S1 S2.SN1,TF1 TF1 TF2.TFN1TF2.TFN1,BTFBTF,BLFBLF,PF)PF)说明 netnet为创建的新BPBP神经网络;PRPR为网络输入取向量取值范围的矩阵;S1 S2S1 S2SNlSNl表示网络隐含层和输出层神经元的个数;TFl TF2TFl TF2TFN1TFN1表示网络隐含层和输出层的传输函数,默认为tansigtansig;BTFBTF表示网络的训练函数,默认为trainlmtrainlm;BLFBLF表示网络的权值学习函数,默认为learngdmlearngdm;PF
16、PF表示性能数,默认为msemse。38BPBP神经网络学习算法的MATLABMATLAB实现pMATLABMATLAB中BPBP神经网络的重要函数和基本功能tansig()功能 正切sigmoidsigmoid激活函数格式 a=tansig(n)a=tansig(n)说明 双曲正切SigmoidSigmoid函数把神经元的输入范围从(-(-,+)+)映射到(-1(-1,1)1)。它是可导函数,适用于BPBP训练的神经元。logsig()功能 对数SigmoidSigmoid激活函数格式 a=logsig(N)a=logsig(N)说明对数SigmoidSigmoid函数把神经元的输入范围从(
17、-(-,+)+)映射到(0(0,1)1)。它是可导函数,适用于BPBP训练的神经元。39BPBP神经网络学习算法的MATLABMATLAB实现p例2-32-3,下表为某药品的销售情况,现构建一个如下的三层BPBP神经网络对药品的销售进行预测:输入层有三个结点,隐含层结点数为5 5,隐含层的激活函数为tansigtansig;输出层结点数为1 1个,输出层的激活函数为logsiglogsig,并利用此网络对药品的销售量进行预测,预测方法采用滚动预测方式,即用前三个月的销售量来预测第四个月的销售量,如用1 1、2 2、3 3月的销售量为输入预测第4 4个月的销售量,用2 2、3 3、4 4月的销售
18、量为输入预测第5 5个月的销售量.如此反复直至满足预测精度要求为止。月份123456销量205623952600229816341600月份789101112销量18731478190015002046155640BPBP神经网络学习算法的MATLABMATLAB实现%以每三个月的销售量经归一化处理后作为输入pP=0.5152P=0.51520.81730.81731.0000;1.0000;0.8173 0.81731.00001.00000.7308;0.7308;1.0000 1.00000.73080.73080.1390;0.1390;0.7308 0.73080.13900.139
19、00.1087;0.1087;0.1390 0.13900.10870.10870.3520;0.3520;0.1087 0.10870.35200.35200.0000;0.0000;%以第四个月的销售量归一化处理后作为目标向量pT=0.7308 0.1390 0.1087 0.3520 0.0000 0.3761;T=0.7308 0.1390 0.1087 0.3520 0.0000 0.3761;%创建一个BP神经网络,每一个输入向量的取值范围为0,1,隐含层有5个神经%元,输出层有一个神经元,隐含层的激活函数为tansig,输出层的激活函数为%logsig,训练函数为梯度下降函数,即
20、2.3.2节中所描述的标准学习算法pnet=newff(0 1;0 1;0 1,5,1,tansig,logsig,traingd);net=newff(0 1;0 1;0 1,5,1,tansig,logsig,traingd);pnet.trainParam.epochs=15000;net.trainParam.epochs=15000;pnet.trainParam.goal=0.01;net.trainParam.goal=0.01;%设置学习速率为0.1pLP.lr=0.1;LP.lr=0.1;pnet=train(net,P,T);net=train(net,P,T);414243BPBP神经网络学习算法的MATLABMATLAB实现p由对比图可以看出预测效果与实际存在一定误差,此误差可以通过增加运行步数和提高预设误差精度业进一步缩小44小结pBPBP算法背景pBPBP神经网络模型pBPBP算法基本思想推导过程实现pBPBP神经网络的MATLABMATLAB函数pBPBP神经网络的应用实例pBPBP神经网络与感知器神经网络的对比45作业 8-18-1、8-28-246