1、 一般而言一般而言, ANN, ANN与经典计算方法相比并非优越与经典计算方法相比并非优越, , 只有当常只有当常规方法解决不了或效果不佳时规方法解决不了或效果不佳时ANNANN方法才能显示出其优越性。方法才能显示出其优越性。尤其对问题的机理不甚了解或不能用数学模型表示的系统尤其对问题的机理不甚了解或不能用数学模型表示的系统, ,如故障诊断、特征提取和预测等问题如故障诊断、特征提取和预测等问题,ANN,ANN往往是最有利的往往是最有利的工具。另一方面工具。另一方面, ANN, ANN对处理大量原始数据而不能用规则或对处理大量原始数据而不能用规则或公式描述的问题公式描述的问题, , 表现出极大灵
2、活性和自适应性。表现出极大灵活性和自适应性。人工神经网络人工神经网络人工神经网络人工神经网络例例 1981年生物学家格若根(W Grogan)和维什(WWirth)发现了两类蚊子(或飞蠓midges)他们测量了这两类蚊子每个个体的翼长和触角长,数据如下:翼长 触角长 类别 1.64 1.38 Af 1.82 1.38 Af 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 Apf
3、2.00 1.28 Apf1.96 1.30 Apf1.74 1.36 Afp问:如果抓到三只新的蚊子,它们的触角长和问:如果抓到三只新的蚊子,它们的触角长和翼长分别为翼长分别为(l.24,1.80); (l.28,1.84);(;(1.40,2.04)问它们应分别属于哪一个种类?问它们应分别属于哪一个种类? 解法一: 把翼长作纵坐标,触角长作横坐标;那么每个蚊子的翼长和触角决定了坐标平面的一个点.其中 6个蚊子属于 APf类;用黑点“”表示;9个蚊子属 Af类;用小圆圈“。”表示 得到的结果见图1 图1飞蠓的触角长和翼长 p思路:思路:作一直线将两类飞蠓分开作一直线将两类飞蠓分开 例如;取A
4、(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类 p分类结果分类结果:(1.24(1.24,1.80)1.80),(1.28(1.28,1.84)1.84)属于属于AfAf类;类;(1.40(1.40,2.042.04)属于)属于 ApfApf类类缺陷:缺陷:根据什么原则确定分类直线?根据什么原则确定分类直线? 若取A=(1.46,2.10), B=(1
5、.1,1.6)不变,则分类直线变为 y=1.39x+0.071分类结果变为: (1.24,1.80), (1.40,2.04) 属于Apf类; (1.28,1.84)属于Af类 哪一分类直线才是正确的呢? 因此如何来确定这个判别直线是一个值得研究的问题一般地讲,应该充分利用已知的数据信息来确定判别直线p再如再如,如下的情形已经不能用分类直线的办法:,如下的情形已经不能用分类直线的办法: 新思路:将问题看作一个系统,飞蠓的数据作为输入,飞蠓的类型作为输出,研究输入与输出的关系。BPBP神经网络模型与学习算法神经网络模型与学习算法前馈神经网络模型前馈神经网络模型p三层前向网络三层前向网络l(1 1
6、)是否存在一个)是否存在一个BPBP神经网络能够逼近给定的样本或者函数。神经网络能够逼近给定的样本或者函数。 两个基本问题两个基本问题l( 2 2)如何调整)如何调整BPBP神经网络的连接权,使网络的输入与输出与神经网络的连接权,使网络的输入与输出与给定的样本相同。给定的样本相同。u pRumelhartRumelhart,McClellandMcClelland于于19851985年提出了年提出了BPBP网络的误差反网络的误差反向后传向后传BP(Back Propagation)BP(Back Propagation)学习算法学习算法pBPBP算法基本原理算法基本原理利用输出后的误差来估计输
7、出层的直接前导层的误差,再用这个误差估计更前一层的误差,如此一层一层的反传下去,就获得了所有其他各层的误差估计。 J. McClelland David Rumelhart BPBP神经网络模型神经网络模型p激活函数激活函数必须处处可导必须处处可导一般都使用一般都使用S S型函数型函数 p使用使用S S型激活函数型激活函数时时BPBP网络输入与输出关系网络输入与输出关系输入输入输出输出1122.nnnetx wx wx w1f()1enetynetBPBP神经网络模型神经网络模型输出的导数211f ()(1)1e(1e)-netnetnetyy根据根据S S型激活函数的图形可知型激活函数的图形
8、可知, ,对神经网络进行训练,应该将对神经网络进行训练,应该将netnet的值尽的值尽量控制在收敛比较快的范围内量控制在收敛比较快的范围内 BPBP网络的标准学习算法网络的标准学习算法p学习的过程:学习的过程:神经网络在外界输入样本的刺激下不断改变网络的连接权值,以使网络的输出不断地接近期望的输出。p学习的本质:学习的本质:对各连接权值的动态调整p学习规则:学习规则:权值调整规则,即在学习过程中网络中各神经元的连接权变化所依据的一定的调整规则。BPBP网络的标准学习算法网络的标准学习算法- -算法思想算法思想p学习的类型:有导师学习学习的类型:有导师学习p核心思想:核心思想: 将输出误差以某种
9、形式通过隐层向输入层逐层反传p学习的过程:学习的过程:信号的正向传播 误差的反向传播将误差分摊给各层的所有将误差分摊给各层的所有单元各层单元的误单元各层单元的误差信号差信号修正各单元权修正各单元权值值BPBP网络的标准学习算法网络的标准学习算法- -学习过程学习过程p正向传播:正向传播: 输入样本输入层各隐层输出层p判断是否转入反向传播阶段:判断是否转入反向传播阶段: 若输出层的实际输出与期望的输出(教师信号)不符p误差反传误差反传 误差以某种形式在各层表示修正各层单元的权值p网络输出的误差减少到可接受的程度网络输出的误差减少到可接受的程度进行到预先设定的学习次数为止进行到预先设定的学习次数为
10、止BPBP网络的标网络的标准学习算法准学习算法 p网络结构网络结构输入层有n个神经元,隐含层有p个神经元, 输出层有q个神经元p变量定义变量定义输入向量;隐含层输入向量;隐含层输出向量;输出层输入向量;输出层输出向量;期望输出向量; 12,nxxxx12,phihihihi12,pho hohoho12,qyiyiyiyi12,qyoyoyoyo12,qdddodBPBP网络的标网络的标准学习算法准学习算法输入层与中间层的连接权值:隐含层与输出层的连接权值:隐含层各神经元的阈值:输出层各神经元的阈值:样本数据个数:激活函数: 误差函数:ihwf( ) howhb1,2,kmob211( )(
11、)( )2qoooe kdkyo kBPBP网络的标准学习算法网络的标准学习算法p第一步,网络初始化第一步,网络初始化 给各连接权值分别赋一个区间(-1,1)内的随机数,设定误差函数e,给定计算精度值 和最大学习次数M。p第二步第二步, ,随机选取第随机选取第 个输入样本及对应个输入样本及对应期望输出期望输出 k12( )( ),( ),( )nkx kx kx kx12( )( ),( ),( )qkd kdkdkodBPBP网络的标准学习算法网络的标准学习算法p第三步,计算隐含层各神经元的输入和第三步,计算隐含层各神经元的输入和输出输出1( )( )1,2,nhihihihikw x kb
12、hp( )f( )1,2,hhho khi khp1( )( )1,2,pohohohyi kw ho kboq( )f( )1,2,ooyo kyi koqBPBP网络的标准学习算法网络的标准学习算法p第四步,利用网络期望输出和实际输出,第四步,利用网络期望输出和实际输出,计算误差函数对输出层的各神经元的偏导计算误差函数对输出层的各神经元的偏导数数 。 ohoohoeeyiwyiw( )( )( )phohoohhhohow ho kbyi kho kww211( ( )( )2( ( )( )( )( ( )( )f( )( )qooooooooooood kyo ked kyo k yo
13、 kyiyid kyo kyi kk( )okBPBP网络的标准学习算法网络的标准学习算法( )( )oohhoohoeeyik ho kwyiw 1( )( )( )( )( )hihhihnihihhiiihiheehikwhikww x kbhikx kwwp第五步,利用隐含层到输出层的连接权第五步,利用隐含层到输出层的连接权值、输出层的值、输出层的 和隐含层的输出计算误和隐含层的输出计算误差函数对隐含层各神经元的偏导数差函数对隐含层各神经元的偏导数 。 ( )hk( )okBPBP网络的标准学习算法网络的标准学习算法21212111( )( ) )( )2( )( )( )1( )f(
14、 ) )( )2( )( )1( )f( ) )( )2( )( )qoohohhhqoohohhqpohohohohhhd kyo keho khi kho khi kd kyi kho kho khi kd kw ho kbho kho khi k11( )( )( )f ( )( )( )f ( )( )qhooohoohqohohhoho kd kyo kyi kwhi kk whi kk BPBP网络的标准学习算法网络的标准学习算法p第六步,利用输出层各神经元的第六步,利用输出层各神经元的 和和隐含层各神经元的输出来修正连接权隐含层各神经元的输出来修正连接权值值 。 ( )( )(
15、)( )( )( )f ( )hoohhoooooewkk ho kwkd kyo kyi k ( )ok( )howk1( )( )NNhohoohwwk ho kBPBP网络的标准学习算法网络的标准学习算法p第七步,利用隐含层各神经元的第七步,利用隐含层各神经元的 和和输入层各神经元的输入修正连接权。输入层各神经元的输入修正连接权。 ( )hk1( )( )( ) ( )( )( ) ( )f( )hihhiihhihqhohohoeehi kw kk x kwhi kwkkwhi k1( ) ( )NNihihhiwwk x kBPBP网络的标准学习算法网络的标准学习算法p第八步,计算全
16、局误差第八步,计算全局误差p第九步,判断网络误差是否满足要求。当误差第九步,判断网络误差是否满足要求。当误差达到预设精度或学习次数大于设定的最大次数,达到预设精度或学习次数大于设定的最大次数,则结束算法。否则,选取下一个学习样本及对则结束算法。否则,选取下一个学习样本及对应的期望输出,返回到第三步,进入下一轮学应的期望输出,返回到第三步,进入下一轮学习。习。 2111( )( )2qmookoEdky kmBPBP网络的标准学习算法网络的标准学习算法pBPBP算法直观解释算法直观解释情况一直观表达 当误差对权值的偏当误差对权值的偏导数大于零时,权值导数大于零时,权值调整量为负,实际输调整量为负
17、,实际输出大于期望输出,出大于期望输出,权值向减少方向调整,权值向减少方向调整,使得实际输出与期望使得实际输出与期望输出的差减少。输出的差减少。whohoewe0,此时,此时who0BPBP网络的标准学习算法网络的标准学习算法pBPBP算法直观解释算法直观解释情况二直观表达当误差对权值的偏导数当误差对权值的偏导数小于零时,权值调整量小于零时,权值调整量为正,实际输出少于期为正,实际输出少于期望输出,权值向增大方向望输出,权值向增大方向调整,使得实际输出与期调整,使得实际输出与期望输出的差减少。望输出的差减少。hoewe0who(1 1) 隐层数及隐层神经元数的确定:目前尚无理论隐层数及隐层神经
18、元数的确定:目前尚无理论指导。指导。(2 2)初始权值的设置:一般以一个均值为)初始权值的设置:一般以一个均值为0 0的随机分的随机分布设置网络的初始权值。布设置网络的初始权值。 (3 3)训练数据预处理:线性的特征比例变换,将所有)训练数据预处理:线性的特征比例变换,将所有的特征变换到的特征变换到00,11或者或者-1-1,11区间内,使得在每个区间内,使得在每个训练集上,每个特征的均值为训练集上,每个特征的均值为0 0,并且具有相同的方差。,并且具有相同的方差。(4 4)后处理过程:当应用神经网络进行分类操作时,)后处理过程:当应用神经网络进行分类操作时,通常将输出值编码成所谓的名义变量,
19、具体的值对应通常将输出值编码成所谓的名义变量,具体的值对应类别标号。类别标号。n BP BP算法的设计算法的设计 33BP神经网络在模式识别中的应用 模式识别研究用计算机模拟生物、人的感知,模式识别研究用计算机模拟生物、人的感知,对模式信息,如图像、语音等,进行识别和分类。对模式信息,如图像、语音等,进行识别和分类。 传统人工智能的研究部分地显示了人脑的归纳、传统人工智能的研究部分地显示了人脑的归纳、推理等智能。但是,对于人类底层的智能,如视觉、推理等智能。但是,对于人类底层的智能,如视觉、听觉、触觉等方面,现代计算机系统的信息处理能听觉、触觉等方面,现代计算机系统的信息处理能力还不如一个幼儿
20、园的孩子。力还不如一个幼儿园的孩子。 神经网络模型模拟了人脑神经系统的特点:处神经网络模型模拟了人脑神经系统的特点:处理单元的广泛连接;并行分布式信息储存、处理;理单元的广泛连接;并行分布式信息储存、处理;自适应学习能力等。自适应学习能力等。 神经网络模式识别方法具有较强的容错能力、神经网络模式识别方法具有较强的容错能力、自适应学习能力、并行信息处理能力。自适应学习能力、并行信息处理能力。34BP神经网络在模式识别中的应用神经网络在模式识别中的应用例例 设计一个三层设计一个三层BP网络对数字网络对数字0至至9进行分类。进行分类。 每个数字用每个数字用9 7的网格表示,灰色像素代表的网格表示,灰
21、色像素代表0,黑色像,黑色像素代表素代表1。将每个网格表示为。将每个网格表示为0,1的长位串。位映射由左的长位串。位映射由左上角开始向下直到网格的整个一列,然后重复其他列。上角开始向下直到网格的整个一列,然后重复其他列。 选择选择BP网络结构为网络结构为63-6-9。97个输入结点,对应上述个输入结点,对应上述网格的映射。网格的映射。9个输出结点对应个输出结点对应10种分类。种分类。 使用的学习步长为使用的学习步长为0.3。训练。训练600个周期,如果输出结个周期,如果输出结点的值大于点的值大于0.9,则取为,则取为ON,如果输出结点的值小于,如果输出结点的值小于0.1,则取为则取为OFF。
22、35 测试结果表明:除了测试结果表明:除了8以外,所有被测的数字都能够被正确以外,所有被测的数字都能够被正确地识别。地识别。 对于数字对于数字8,神经网络的第,神经网络的第6个结点的输出值为个结点的输出值为0.53,第,第8个个结点的输出值为结点的输出值为0.41,表明第,表明第8个样本是模糊的,可能是数字个样本是模糊的,可能是数字6,也可能是数字,也可能是数字8,但也不完全确信是两者之一。,但也不完全确信是两者之一。 BP神经网络在模式识别中的应用神经网络在模式识别中的应用当训练成功后,对当训练成功后,对如图所示测试数据如图所示测试数据进行测试。测试数进行测试。测试数据都有一个或者多据都有一
23、个或者多个位丢失。个位丢失。BPBP神经网络的特点神经网络的特点p非线性映射能力非线性映射能力能学习和存贮大量输入能学习和存贮大量输入- -输出模式映射关系,而无需事输出模式映射关系,而无需事先了解描述这种映射关系的数学方程。只要能提供足够先了解描述这种映射关系的数学方程。只要能提供足够多的样本模式对供网络进行学习训练,它便能完成由多的样本模式对供网络进行学习训练,它便能完成由n n维输入空间到维输入空间到m m维输出空间的非线性映射。维输出空间的非线性映射。p泛化能力泛化能力当向网络输入训练时未曾见过的非样本数据时,网络也当向网络输入训练时未曾见过的非样本数据时,网络也能完成由输入空间向输出
24、空间的正确映射。这种能力称能完成由输入空间向输出空间的正确映射。这种能力称为泛化能力。为泛化能力。(overfiting, (overfiting, 书呆子现象书呆子现象) )p容错能力容错能力输入样本中带有较大的误差甚至个别错误对网络的输入输入样本中带有较大的误差甚至个别错误对网络的输入输出规律影响很小。输出规律影响很小。 BPBP神经网络学习算法的神经网络学习算法的MATLABMATLAB实现实现 pMATLABMATLAB中中BPBP神经网络的重要函数和基本神经网络的重要函数和基本功能功能 函函 数数 名名功功 能能newff()生成一个前馈生成一个前馈BP网络网络tansig()双曲正
25、切双曲正切S型型(Tan-Sigmoid)传输函数传输函数logsig()对数对数S型型(Log-Sigmoid)传输函数传输函数traingd()梯度下降梯度下降BP训练函数训练函数BPBP神经网络学习算法的神经网络学习算法的MATLABMATLAB实现实现pMATLABMATLAB中中BPBP神经网络的重要函数和基本功能神经网络的重要函数和基本功能newff()功能功能 建立一个前向建立一个前向BPBP网络网络格式格式 net = newff(PRnet = newff(PR,S1 S2.SN1S1 S2.SN1,TF1 TF1 TF2.TFN1TF2.TFN1,BTFBTF,BLFBLF
26、,PF)PF)说明说明 netnet为创建的新为创建的新BPBP神经网络;神经网络;PRPR为网络输入为网络输入取向量取值范围的矩阵;取向量取值范围的矩阵;S1 S2S1 S2SNlSNl表示网络表示网络隐含层和输出层神经元的个数;隐含层和输出层神经元的个数;TFl TF2TFl TF2TFN1TFN1表示网络隐含层和输出层的传输函数,默认为表示网络隐含层和输出层的传输函数,默认为tansigtansig;BTFBTF表示网络的训练函数,默认为表示网络的训练函数,默认为trainlmtrainlm;BLFBLF表示网络的权值学习函数,默认表示网络的权值学习函数,默认为为learngdmlear
27、ngdm;PFPF表示性能数,默认为表示性能数,默认为msemse。 BPBP神经网络学习算法的神经网络学习算法的MATLABMATLAB实现实现pMATLABMATLAB中中BPBP神经网络的重要函数和基本功能神经网络的重要函数和基本功能tansig()功能功能 正切正切sigmoidsigmoid激活函数激活函数格式格式 a = tansig(n)a = tansig(n)说明说明 双曲正切双曲正切SigmoidSigmoid函数把神经元的输入范围从函数把神经元的输入范围从(-(-,+)+)映射到映射到(-1(-1,1)1)。它是可导函数,适用于。它是可导函数,适用于BPBP训练的神经元。
28、训练的神经元。logsig()功能功能 对数对数SigmoidSigmoid激活函数激活函数格式格式 a = logsig(N)a = logsig(N)说明对数说明对数SigmoidSigmoid函数把神经元的输入范围从函数把神经元的输入范围从(-(-,+)+)映射映射到到(0(0,1)1)。它是可导函数,适用于。它是可导函数,适用于BPBP训练的神经元。训练的神经元。BPBP神经网络学习算法的神经网络学习算法的MATLABMATLAB实现实现p例例2-32-3,下表为某药品的销售情况,现构建一个如下的三层,下表为某药品的销售情况,现构建一个如下的三层BPBP神经神经网络对药品的销售进行预测
29、:输入层有三个结点,隐含层结点数网络对药品的销售进行预测:输入层有三个结点,隐含层结点数为为5 5,隐含层的激活函数为,隐含层的激活函数为tansigtansig;输出层结点数为;输出层结点数为1 1个,输出层个,输出层的激活函数为的激活函数为logsiglogsig,并利用此网络对药品的销售量进行预测,并利用此网络对药品的销售量进行预测,预测方法采用滚动预测方式,即用前三个月的销售量来预测第四预测方法采用滚动预测方式,即用前三个月的销售量来预测第四个月的销售量,如用个月的销售量,如用1 1、2 2、3 3月的销售量为输入预测第月的销售量为输入预测第4 4个月的销个月的销售量,用售量,用2 2
30、、3 3、4 4月的销售量为输入预测第月的销售量为输入预测第5 5个月的销售量个月的销售量. .如此反如此反复直至满足预测精度要求为止。复直至满足预测精度要求为止。 月份月份123456销量销量205623952600229816341600月份月份789101112销量销量187314781900150020461556BPBP神经网络学习算法的神经网络学习算法的MATLABMATLAB实现实现%以每三个月的销售量经归一化处理后作为输入p P=0.5152P=0.51520.81730.81731.0000 ;1.0000 ; 0.8173 0.81731.00001.00000.7308;
31、0.7308; 1.0000 1.00000.73080.73080.1390;0.1390; 0.7308 0.73080.13900.13900.1087;0.1087; 0.1390 0.13900.10870.10870.3520;0.3520; 0.1087 0.10870.35200.35200.0000;0.0000;%以第四个月的销售量归一化处理后作为目标向量p T=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神经网络,每一个输入向量的取
32、值范围为0 ,1,隐含层有5个神经%元,输出层有一个神经元,隐含层的激活函数为tansig,输出层的激活函数为%logsig,训练函数为梯度下降函数,即2.3.2节中所描述的标准学习算法p net=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);p net.trainParam.epochs=15000;net.trainParam.epochs=15000;p net.trainParam.goal=0.01;net.trainParam.goal=0.
33、01;%设置学习速率为0.1p LP.lr=0.1;LP.lr=0.1;p net=train(net,P,T); net=train(net,P,T); 05000100001500010-310-210-1100Best Training Performance is 0.018076 at epoch 15000Mean Squared Error (mse)15000 Epochs TrainBestGoal10-310-210-1100gradientGradient = 0.007442, at epoch 15000050001000015000-1-0.500.51val fa
34、il15000 EpochsValidation Checks = 0, at epoch 15000BPBP神经网络学习算法的神经网络学习算法的MATLABMATLAB实现实现p由对比图可以看出预测效果与实际存在一定误差,此误差可以通过由对比图可以看出预测效果与实际存在一定误差,此误差可以通过增加运行步数和提高预设误差精度业进一步缩小增加运行步数和提高预设误差精度业进一步缩小小结小结pBPBP算法背景算法背景pBPBP神经网络模型神经网络模型pBPBP算法算法基本思想推导过程实现pBPBP神经网络的神经网络的MATLABMATLAB函数函数pBPBP神经网络的应用实例神经网络的应用实例pBPBP神经网络与感知器神经网络的对比神经网络与感知器神经网络的对比作业作业 8-18-1、8-28-2此课件下载可自行编辑修改,供参考!感谢您的支持,我们努力做得更好!