1、智能算法(Intelligent Algorithm)2主要内容主要内容q人工神经网络(Artificial Neural Network,ANN)q模拟退火(Simulated Annealing,SA)q遗传算法(Genetic Algorithm,GA)3人工神经网络参考文献人工神经网络参考文献q陈念贻,钦佩,陈瑞亮,陆文聪,模式识别方法在化学化工中的应用,科陈念贻,钦佩,陈瑞亮,陆文聪,模式识别方法在化学化工中的应用,科学出版社,北京,学出版社,北京,2000。q从爽,面向从爽,面向MATLAB工具箱的神经网络理论与应用,中国科学技术出版工具箱的神经网络理论与应用,中国科学技术出版社,
2、合肥,社,合肥,1998。q焦李成,神经网络计算,西安电子科技大学出版社,西安,焦李成,神经网络计算,西安电子科技大学出版社,西安,1993。q王永骥,涂健,神经元网络控制,机械工业出版社,北京,王永骥,涂健,神经元网络控制,机械工业出版社,北京,1998。qBishop,C.(1995).Neural Networks for Pattern Recognition.Oxford:University Press.qCarling,A.(1992).Introducing Neural Networks.Wilmslow,UK:Sigma Press.qFausett,L.(1994).Fu
3、ndamentals of Neural Networks.New York:Prentice HallqHaykin,S.(1994).Neural Networks:A Comprehensive Foundation.New York:Macmillan Publishing.qPatterson,D.(1996).Artificial Neural Networks.Singapore:Prentice Hall.4生物神经元及神经网络生物神经元及神经网络神经元对信息的接受和传递都是通过突触来进行的。单个神经元可以从别神经元对信息的接受和传递都是通过突触来进行的。单个神经元可以从别的细
4、胞接受多个输入。由于输入分布于不同的部位,对神经元影响的比例的细胞接受多个输入。由于输入分布于不同的部位,对神经元影响的比例(权重权重)是不相同的。另外,各突触输入抵达神经元的先后时间也不一祥。是不相同的。另外,各突触输入抵达神经元的先后时间也不一祥。因此,一个神经元接受的信息,在时间和空间上常呈现出一种复杂多变的因此,一个神经元接受的信息,在时间和空间上常呈现出一种复杂多变的形式,需要神经元对它们进行积累和整合加工,从而决定其输出的时机和形式,需要神经元对它们进行积累和整合加工,从而决定其输出的时机和强度。正是神经元这种整合作用,才使得亿万个神经元在神经系统中有条强度。正是神经元这种整合作用
5、,才使得亿万个神经元在神经系统中有条不紊、夜以继日地处理各种复杂的信息,执行着生物中枢神经系统的各种不紊、夜以继日地处理各种复杂的信息,执行着生物中枢神经系统的各种信息处理功能。多个神经元以突触联接形成了一个神经网络。信息处理功能。多个神经元以突触联接形成了一个神经网络。5一、人工神经网络一、人工神经网络q什么是人工神经网络?什么是人工神经网络?它就是在对大脑的生理研究的基础上,它就是在对大脑的生理研究的基础上,用模拟生物神经元的某些基本功能元件(即人工神经元),用模拟生物神经元的某些基本功能元件(即人工神经元),按各种不同的联结方式组织起来的一个网络。按各种不同的联结方式组织起来的一个网络。
6、q其其目的目的在于模拟大脑的某些机理与机制,实现某个方面的功在于模拟大脑的某些机理与机制,实现某个方面的功能,可以用在模仿视觉、模式识别、函数逼近、模式识别、能,可以用在模仿视觉、模式识别、函数逼近、模式识别、分类和数据压缩等领域,是近年来人工智能计算的一个重要分类和数据压缩等领域,是近年来人工智能计算的一个重要学科分支。学科分支。q人工神经网络有多种形式,其中反向传播人工神经网络人工神经网络有多种形式,其中反向传播人工神经网络(Back-Propagation Artificial Network,简称简称BP网络网络)是一种广是一种广泛使用的神经网络模型,它充分体现了人工神经网络的特点。泛
7、使用的神经网络模型,它充分体现了人工神经网络的特点。BP网络是一种对非线性可微分函数进行权值训练的多层网络,网络是一种对非线性可微分函数进行权值训练的多层网络,在人工神经网络的实际应用中,在人工神经网络的实际应用中,8090的人工神经网络的人工神经网络模型是采用模型是采用BP网络或它的变化形式。网络或它的变化形式。61.1 BP神经网络神经网络q神经元的结构神经元的结构 神经元是人工神经网络的基本处理单元,它一般为多输入神经元是人工神经网络的基本处理单元,它一般为多输入/单输出的非单输出的非线性元件。神经元输出除受输入信号的影响外,还受神经元内部其它线性元件。神经元输出除受输入信号的影响外,还
8、受神经元内部其它因素的制约,因此在人工神经元的建模中,常常加一额外输入信号,因素的制约,因此在人工神经元的建模中,常常加一额外输入信号,称为偏差称为偏差(bais),并取值为,并取值为1。输入分量输入分量权值分量权值分量 神经元的输出神经元的输出 偏差权值偏差权值 激活函数激活函数 输入分量通过与它相乘的权值分量输入分量通过与它相乘的权值分量相连,求和后与偏差权值共同构成相连,求和后与偏差权值共同构成激活函数的输入激活函数的输入。)(1bpwfajrjj7偏差偏差神经元的输出为:神经元的输出为:)(1bpwfajrjj偏差偏差b被简单地加在被简单地加在jrjjwp1上,作为激活函数的一个输入分
9、量。上,作为激活函数的一个输入分量。偏差的重要作用,它使得激活函数的图偏差的重要作用,它使得激活函数的图形可以左右移动,这样可增加网络解决形可以左右移动,这样可增加网络解决问题的能力。问题的能力。8激活函数激活函数q激活函数具有模拟生物神经元的非线性特性。激活函数具有模拟生物神经元的非线性特性。Sigmoid函数:函数:双曲正切双曲正切tanh函数:函数:xexf11)(xxxxeeeexf)(SigmoidSigmoid函数和双曲正切函数和双曲正切tanhtanh函数都是单调上升函数,函数都是单调上升函数,其极值分别为其极值分别为0 0、1 1和和1 1、1 1,且都是可微的。,且都是可微的
10、。9激活函数的一阶导数激活函数的一阶导数q在在BP神经网络训练算法中,要用到激活函数的一阶导数。神经网络训练算法中,要用到激活函数的一阶导数。Sigmoid函数的导数:函数的导数:双曲正切双曲正切tanh函数的导数:函数的导数:)(1)(11111)(xfxfeexfxx)(11)(22xfeeeexfxxxxq由此可以看出,由于激活函数的特点,用神经网络计算时,由此可以看出,由于激活函数的特点,用神经网络计算时,需对输入和输出的值进行调整。需对输入和输出的值进行调整。激活函数是采用激活函数是采用Sigmoid函数时,输入和输出的值应函数时,输入和输出的值应在在0,1之间;之间;激活函数是双曲
11、正切激活函数是双曲正切tanh函数时,输入和输出的值范函数时,输入和输出的值范围则在围则在1,1之间。之间。101.2 BP网络的模型结构网络的模型结构 qBP网络是一种在输入层和输出层之间具有一层或多层隐层的网络是一种在输入层和输出层之间具有一层或多层隐层的网络模型,而其典型的结构为有一隐层、包含输入层和输出网络模型,而其典型的结构为有一隐层、包含输入层和输出层的三层网络模型。典型层的三层网络模型。典型BP网络的结构示意图如下:网络的结构示意图如下:网络的输入模式网络的输入模式向量为向量为P,有,有r个个输入神经元,对输入神经元,对应输入模式向量应输入模式向量的每个元素。的每个元素。隐层内有
12、隐层内有s1个神个神经元,对应隐层经元,对应隐层输出是输出是a1。网络的输出为网络的输出为a2,有有s2个神经元,个神经元,而目标输出为而目标输出为T。三层三层BPBP神经网络不同层神经元之间实现权重连接,神经网络不同层神经元之间实现权重连接,而每层内各个神经元之间不连接而每层内各个神经元之间不连接。11BP网络的四个计算过程网络的四个计算过程q输入模式由输入层经隐含层向输出层的输入模式由输入层经隐含层向输出层的“模式正向传播模式正向传播”过程;(神经元的激活过程;(神经元的激活值从输入层经隐含层向输出层传播,在输值从输入层经隐含层向输出层传播,在输出层各神经元获得网络响应。)出层各神经元获得
13、网络响应。)q网络实际输出与希望输出的误差信号由输网络实际输出与希望输出的误差信号由输出层经隐含层向输入层逐层修正连接权和出层经隐含层向输入层逐层修正连接权和阂值的阂值的“误差反向传播误差反向传播”过程;过程;q由由“模式正向传播模式正向传播”过程与过程与“误差反向传误差反向传播播”过程的反复交替进行的网络学习训练过程的反复交替进行的网络学习训练过程;过程;q网络全局误差趋向极小的学习收敛过程。网络全局误差趋向极小的学习收敛过程。(网络对输入模式响应的正确率也不断增(网络对输入模式响应的正确率也不断增加。加。)12BP网络的计算过程的简单描述(网络的计算过程的简单描述(1)rijbijijbw
14、pwfa1)11(111,2,1sj11)212(22sjkbjkjkbwawfa2,2,1skq模式正向传播过程模式正向传播过程隐含层中第隐含层中第j个神经元的输出为:个神经元的输出为:输出层中第输出层中第k个神经元的输出为:个神经元的输出为:q误差反向传播过程误差反向传播过程定义误差函数为:定义误差函数为:212)2(21skkkatE神经网络学习的过程就是通过调整权值,使误差神经网络学习的过程就是通过调整权值,使误差E E最小,最小,此时可利用最速下降法求权值及误差的反向传播。此时可利用最速下降法求权值及误差的反向传播。13BP网络的计算过程的简单描述(网络的计算过程的简单描述(2)隐含
15、层中第隐含层中第j个神经元的输出的权值变化为:个神经元的输出的权值变化为:jkkkjkkkjkjafatwaaEwEw12)2(22222 2)2(222fatwaaEwEwkkkbkkkbkb对第对第i个输入到隐含层中第个输入到隐含层中第j个神经元输出的权值变化为:个神经元输出的权值变化为:ikjskkkjijjkkjijipfwfatwaaaaEwEw 122)2(111221121122)2(112221 fwfatwaaaaEwEwkjskkkjbjjkkjbjb修正后的新权重调整为:修正后的新权重调整为:pnpnpWWW1称为学称为学习系数,习系数,值在值在0,10,1之间。之间。1
16、4加快加快BP网络训练速度的方法网络训练速度的方法 qBP网络得到了广泛的应用,但也存在自身的不足与限制,主网络得到了广泛的应用,但也存在自身的不足与限制,主要表现在网络训练需较长时间和网络有可能达到局部最小。要表现在网络训练需较长时间和网络有可能达到局部最小。据此,据此,BP网络有各种改进方法,以加快训练速度,避免陷入网络有各种改进方法,以加快训练速度,避免陷入局部极小。局部极小。q主要的改进方法有:主要的改进方法有:增加动量项,以平滑权的变化,一种常用形式是:增加动量项,以平滑权的变化,一种常用形式是:)(11npnppnpnpWWWWW为动量因子,值在为动量因子,值在0,10,1之间,之
17、间,n n为迭代次数。为迭代次数。采用二阶学习算法。前面的基于函数梯度的算法属于一阶采用二阶学习算法。前面的基于函数梯度的算法属于一阶算法,缺点就是在极值点附近收敛速度慢。采用二阶算法,算法,缺点就是在极值点附近收敛速度慢。采用二阶算法,如牛顿法、共轭梯度法等,将有较快的收敛速度。如牛顿法、共轭梯度法等,将有较快的收敛速度。模拟退火法。模拟退火法。151.4 BP神经网络计算(神经网络计算(1)q网络的层数:网络的层数:在运用在运用BP神经网络时,神经网络时,最多采用的是具有一层或两层隐层的网络最多采用的是具有一层或两层隐层的网络。具有偏差和至少一个具有偏差和至少一个S型隐层的网络,可以近似任
18、何函数,这已成为设型隐层的网络,可以近似任何函数,这已成为设计计BP神经网络的原则。神经网络的原则。网络计算精度的提高,可以通过采用一个隐层,而网络计算精度的提高,可以通过采用一个隐层,而增加隐层神经元数增加隐层神经元数的方法来获得,这也就是通常用一隐层、包含输入层和输出层的三层的方法来获得,这也就是通常用一隐层、包含输入层和输出层的三层BP网络模型的原因。网络模型的原因。q神经元数:神经元数:输入和输出的神经元数可以根据需要求解的问题和数据所表示的方式输入和输出的神经元数可以根据需要求解的问题和数据所表示的方式来确定。问题确定后,输入层与输出层的神经元数也就随之定了。来确定。问题确定后,输入
19、层与输出层的神经元数也就随之定了。隐层神经元数的选择有较广的范围:隐层神经元数的选择有较广的范围:当隐层神经元数较少时,误差下降到一定程度后会变化很小;当隐层神经元数较少时,误差下降到一定程度后会变化很小;当隐层神经元数过多时,不仅网络训练时间长,还会出现过拟合问题,降当隐层神经元数过多时,不仅网络训练时间长,还会出现过拟合问题,降低神经网络的预测功能。低神经网络的预测功能。通常隐层神经元数的选择原则是:在能解决问题的前提下,再通常隐层神经元数的选择原则是:在能解决问题的前提下,再加上加上1到到2个神经元个神经元以加快误差的下降速度即可。以加快误差的下降速度即可。16BP神经网络计算(神经网络
20、计算(2)q初始权值的选取初始权值的选取 权重初始值的选取,对网络训练学习是否达到局部最小,是否能够收权重初始值的选取,对网络训练学习是否达到局部最小,是否能够收敛以及训练时间的长短有很大的关系。敛以及训练时间的长短有很大的关系。如果初始权值太大,使得加和后的值落在激活函数的饱和区,从而导如果初始权值太大,使得加和后的值落在激活函数的饱和区,从而导致激活函数的导数非常小,在计算权值修正时,调整值接近零,网络致激活函数的导数非常小,在计算权值修正时,调整值接近零,网络的学习训练几乎处在停止状态。的学习训练几乎处在停止状态。所以一般总是希望经过初始权值计算后每个神经元的输出值都接近零,所以一般总是
21、希望经过初始权值计算后每个神经元的输出值都接近零,这样可以保证每个神经元的权值都能在激活函数变化最大之处进行调这样可以保证每个神经元的权值都能在激活函数变化最大之处进行调节。节。一般来说,一般来说,初始权值取初始权值取-1,1之间的随机数之间的随机数是较好的选择。是较好的选择。17BP神经网络计算(神经网络计算(3)q学习速率学习速率学习速率决定每一次循环训练中所产生的权值变化量。学习速率决定每一次循环训练中所产生的权值变化量。大的学习速率可能导致系统的不稳定;大的学习速率可能导致系统的不稳定;但小的学习速率导致较长的训练时间,可能收敛很慢,不过能保证网络但小的学习速率导致较长的训练时间,可能
22、收敛很慢,不过能保证网络的误差值不跳出误差表面的低谷而最终趋于最小误差值。的误差值不跳出误差表面的低谷而最终趋于最小误差值。所以在一般情况下,倾向于选取较小的学习速率以保证系统的稳定性。所以在一般情况下,倾向于选取较小的学习速率以保证系统的稳定性。学习速率的选取范围在学习速率的选取范围在0.010.8之间之间。在一个神经网络的计算过程中,使网络经过几个不同的学习速率的训在一个神经网络的计算过程中,使网络经过几个不同的学习速率的训练,通过观察每一次训练后的误差平方和的下降速率来判断所选定的练,通过观察每一次训练后的误差平方和的下降速率来判断所选定的学习速率是否合适。学习速率是否合适。如果误差平方
23、和下降很快,则说明学习速率合适如果误差平方和下降很快,则说明学习速率合适若误差平方和出现振荡现象,则说明学习速率过大。若误差平方和出现振荡现象,则说明学习速率过大。对于每一个具体网络都存在一个合适的学习速率。但对于较复杂网络,对于每一个具体网络都存在一个合适的学习速率。但对于较复杂网络,在误差曲面的不同部位可能需要不同的学习速率。为了减少寻找学习在误差曲面的不同部位可能需要不同的学习速率。为了减少寻找学习速率的训练次数以及训练时间,比较合适的方法是采用变化的学习速速率的训练次数以及训练时间,比较合适的方法是采用变化的学习速率,使网络的训练在不同的阶段自动设置不同学习速率的大小。率,使网络的训练
24、在不同的阶段自动设置不同学习速率的大小。18BP神经网络计算程序神经网络计算程序BATCHNET简介简介qBATCHNET是一个是一个 BP神经网络计算的神经网络计算的DOS程序,程序由程序,程序由batchnet.exe和和weights.exe两个可执行文件构成。两个可执行文件构成。batchnet为网络训练和预测程序,激活函数为为网络训练和预测程序,激活函数为Sigmoid函数,输入输出函数,输入输出样本值范围为样本值范围为0,1。weights程序产生初始权值。程序产生初始权值。q批处理程序批处理程序demo.bat batchnet-e10 d1.0e-5 demo.run 说明:说
25、明:-e10 表示网络每迭代表示网络每迭代1010步后显示误差;步后显示误差;d1.0e-5 表示网络训练误差;表示网络训练误差;demo.rundemo.run 求解问题的网络参数文件,由求解问题的网络参数文件,由batchnetbatchnet调用,调用,文件名可改,但扩展名文件名可改,但扩展名runrun不能变不能变。19BP神经网络计算程序神经网络计算程序BATCHNET简介简介q网络参数文件网络参数文件demo.run的格式的格式 4train.out train.err train.pat weights.wts train.wts 100 1000 9 4 2 0.15 0.07
26、5test.out test.err test.pat train.wts test.wts 166 1 9 4 2 0.15 0.075train.out train.err train.pat train.wts train.wts 100 1000 9 4 2 0.15 0.075test.out test.err test.pat train.wts test.wts 166 1 9 4 2 0.15 0.075 NumfOut fErr fPat fWts fWtso nPats nIter nInp nHid nOut eta alphaNum 运行次数,本例为运行次数,本例为4;
27、fOut 网络计算结果输出文件,输出;网络计算结果输出文件,输出;fErr 网络计算误差文件,输出;网络计算误差文件,输出;fPat 训练学习样本文件,输入;训练学习样本文件,输入;fWts 问题的初始权值文件,输入,由程序问题的初始权值文件,输入,由程序weights产产生;生;fWtso 训练后的权值文件,输出;训练后的权值文件,输出;nPats 训练样本数,本例为训练样本数,本例为100;nIter 训练迭代次数,本例为训练迭代次数,本例为1000;nInp 输入层神经元数目,本例为输入层神经元数目,本例为9;nHid 隐层神经元数目,本例为隐层神经元数目,本例为4;nOut 输出层神经
28、元数目,本例为输出层神经元数目,本例为2;eta 学习速率,本例为学习速率,本例为0.15;alpha 动量因子,本例为动量因子,本例为0.075。表示用表示用BPBP神经网络先对神经网络先对100100对输对输入输出样本进行学习训练入输出样本进行学习训练10001000次,次,预测预测166166个样本一次,然后继续个样本一次,然后继续学习训练学习训练10001000次后再进行一次预次后再进行一次预测。测。BatchnetBatchnet如只计算一次,则如只计算一次,则不对连接权重进行更新。不对连接权重进行更新。20BP神经网络计算程序神经网络计算程序BATCHNET简介简介q程序程序wei
29、ghts的运行的运行:weights int_num nInp nHid nOut ran_wts 说明:说明:int_numint_num 任一任一6 6位整数;位整数;nInpnInp 输入层神经元数目;输入层神经元数目;nHidnHid 隐层神经元数目;隐层神经元数目;nOutnOut 输出层神经元数目,这输出层神经元数目,这3 3个参数同个参数同runrun程序中的程序中的相一致;相一致;ran_wtsran_wts 初始权值取值范围,实数初始权值取值范围,实数1.1.表示取值范围表示取值范围在在-1,1-1,1之间。之间。Weights 123456 9 4 2 1.021BP神经网
30、络计算程序神经网络计算程序BATCHNET简介简介q训练样本文件训练样本文件fPat的格式:的格式:说明:说明:In_patIn_pat 样本的输入;样本的输入;Out_patOut_pat 对应的样本输出;对应的样本输出;Id Id 对应的样本标号;对应的样本标号;In_pat Out_pat Id0.363636 0.191667 0.7 0.75 0.666667 0.531225 0.0898333 0.0504219 0.6844341 0 12345670.327273 0.187501 0.733333 0.75 0.8 0.531038 0.0819442 0.0504219
31、0.8010571 0 1234567 22STATISTICA Neural Networks(SNN)简介简介q通过输入数值变量通过输入数值变量(自变量自变量)可以用神经网络来计算输出变量可以用神经网络来计算输出变量(应变量应变量),输出变量的类型可以是数值型的,也可以是非数值,输出变量的类型可以是数值型的,也可以是非数值型的。型的。q在在SNN中,求解问题可通过两种基本方式来进行:智能问题中,求解问题可通过两种基本方式来进行:智能问题求解器求解器(Intelligent Problem Solver)或程序的菜单。或程序的菜单。智能问题求解器引导使用者建立求解问题的神经网络。在智能问题求
32、智能问题求解器引导使用者建立求解问题的神经网络。在智能问题求解器中,有解器中,有基本型基本型和和高级型高级型两种模式可供选择。两种模式可供选择。基本型中,使用者只能控制设计神经网络中的几个关键点,包括问题基本型中,使用者只能控制设计神经网络中的几个关键点,包括问题类型类型(样本相互独立的标准型和变量预测值依赖先前值的时间序列样本相互独立的标准型和变量预测值依赖先前值的时间序列)、输出和输入变量、求解器筛选优化网络的计算时间控制、在网络设置输出和输入变量、求解器筛选优化网络的计算时间控制、在网络设置中需保存的网络情况以及需显示的结果与统计,其余的网络设计及计中需保存的网络情况以及需显示的结果与统
33、计,其余的网络设计及计算由求解器自动完成。基本型供对神经网络计算了解不多者使用。算由求解器自动完成。基本型供对神经网络计算了解不多者使用。高级型中,使用者能控制设计神经网络的各方面,包括网络训练、校高级型中,使用者能控制设计神经网络的各方面,包括网络训练、校验、测试时所用数据的分割、置信度的类型选择、选择需产生网络的验、测试时所用数据的分割、置信度的类型选择、选择需产生网络的类型及复杂程度等,供对神经网络计算较熟悉者使用。类型及复杂程度等,供对神经网络计算较熟悉者使用。23SNN中的神经网络方法中的神经网络方法 q多层网络多层网络(Multilayer Perceptrons);q径向基函数网
34、络径向基函数网络(Radial Basis Function Networks);q概率神经网络概率神经网络(Probabilistic Neural Networks);q通用回归神经网络通用回归神经网络(Generalized Regression Neural Networks);q线性网络线性网络(Linear Networks);qKohonen网络网络(Kohonen Networks);q神经网络的时间序列预测神经网络的时间序列预测(Time Series Prediction)。24SNN菜单菜单 命令汇总命令汇总25SNN处理数据需要注意的两个问题处理数据需要注意的两个问题
35、q数据的前处理与后处理数据的前处理与后处理 在处理实际问题的数据时,数据要进行匀整处理,这样的处理包括计在处理实际问题的数据时,数据要进行匀整处理,这样的处理包括计算前和计算后的处理。算前和计算后的处理。神经网络计算用的数据类型应该是数值型的,当有些问题的变量是多神经网络计算用的数据类型应该是数值型的,当有些问题的变量是多态的情况,如对与错等,这些变量在用神经网络处理时,也需将其数态的情况,如对与错等,这些变量在用神经网络处理时,也需将其数值化。值化。在在SNN中有中有Pre/post processing,可处理这些数据的变换问题,有时还,可处理这些数据的变换问题,有时还可以用可以用Opti
36、ons菜单中的菜单中的STATISTICA Transfer,使数据直接在,使数据直接在STATISTICA中处理。中处理。q过拟合问题过拟合问题 在用多项式拟合数据时,就会出现过拟合的情况。一个低阶多项式可在用多项式拟合数据时,就会出现过拟合的情况。一个低阶多项式可能做不到很好地拟合所有的数据点,而一个高阶的则可能做到,但实能做不到很好地拟合所有的数据点,而一个高阶的则可能做到,但实际上没有反映问题的性质。际上没有反映问题的性质。26SNN处理过拟合的方法处理过拟合的方法q神经网络计算有同样的问题,隐层神经元数太少,不能很好神经网络计算有同样的问题,隐层神经元数太少,不能很好地描述问题,神经
37、元数过多,会出现过拟合,因较大的神经地描述问题,神经元数过多,会出现过拟合,因较大的神经网络总能使误差减小。网络总能使误差减小。q解决过拟合的办法之一是用交替有效法解决过拟合的办法之一是用交替有效法(Cross-verification)。一些训练用样本不参加神经网络的学习训练,而是独立地在一些训练用样本不参加神经网络的学习训练,而是独立地在训练学习过程中用来校验。训练学习过程中用来校验。q当校验误差出现同训练学习误差不一样的情况,即不是随着当校验误差出现同训练学习误差不一样的情况,即不是随着训练学习的进行,训练误差不断减小,反而停止下降,开始训练学习的进行,训练误差不断减小,反而停止下降,开
38、始升高,表明网络有过拟合数据的情况,这时应减少隐层神经升高,表明网络有过拟合数据的情况,这时应减少隐层神经元数。元数。q在在SNN中智能问题求解器具有自动选择隐层神经元数的功能。中智能问题求解器具有自动选择隐层神经元数的功能。27SNN的求解过程的求解过程q在神经网络的研究和计算中,常能见到异或问题的求解与讨在神经网络的研究和计算中,常能见到异或问题的求解与讨论。这里以异或问题的求解为例介绍论。这里以异或问题的求解为例介绍SNN的求解过程,并对的求解过程,并对SNN智能问题求解器中的各项选择作一说明。智能问题求解器中的各项选择作一说明。FIRSTSECONDXOR000101011110异或问
39、题两个输入变量为二异或问题两个输入变量为二进制的数,其可能的取值及进制的数,其可能的取值及期望输出如右表所示:期望输出如右表所示:异或问题看起来简单,但具异或问题看起来简单,但具有复杂的特征,它不是线性有复杂的特征,它不是线性可分的,即不可能有一直线可分的,即不可能有一直线使同类在线的一边,如右图使同类在线的一边,如右图所示:所示:28SNN中的智能问题求解器使用步骤中的智能问题求解器使用步骤qStep 1:建立上述的数据文件建立上述的数据文件 输入变量类型输入变量类型(Input or Output)样本分组(样本分组(Training、Verification、Testing)29qSte
40、p 2:选择求解问题方式问题类型(选择求解问题方式问题类型(Basic or Advanced),),选择选择“Advanced”。30SNN中的智能问题求解器使用步骤中的智能问题求解器使用步骤qStep 3:选择问题类型(选择问题类型(Problem Type),选择),选择“Standard”。31SNN中的智能问题求解器使用步骤中的智能问题求解器使用步骤qStep 4:选择输出变量(选择输出变量(Output Variable Selection),选择),选择XOR变量作为输出变量。变量作为输出变量。32SNN中的智能问题求解器使用步骤中的智能问题求解器使用步骤qStep 5:选择输入
41、变量(选择输入变量(Input Variable Selection),选择变),选择变量量FIRST,SECOND作为输入变量。并关闭选项作为输入变量。并关闭选项“Search for an effective subset”。33SNN中的智能问题求解器使用步骤中的智能问题求解器使用步骤qStep 6:样本分组(样本分组(Division of cases)。控制训练)。控制训练(Training)、检验(、检验(Verification)和测试()和测试(Testing)样本的)样本的大小。大小。采用自定义分采用自定义分组样本组样本34SNN中的智能问题求解器使用步骤中的智能问题求解器使
42、用步骤qStep 7:选择网络类型(选择网络类型(Type of Network)。为比较网络,几)。为比较网络,几种网络都选,即线性、径向基函数种网络都选,即线性、径向基函数(RBF)、通用回归神经网络、通用回归神经网络(GRNN)、三层和四层、三层和四层MLP。35SNN中的智能问题求解器使用步骤中的智能问题求解器使用步骤qStep 8:控制网络隐层数目控制网络隐层数目(Hidden Units)。选择)。选择“Determine network complexity automatically”自动确定网络自动确定网络复杂性,忽略数值选定。复杂性,忽略数值选定。36SNN中的智能问题求解
43、器使用步骤中的智能问题求解器使用步骤qStep 9:网络设计过程网络设计过程(Duration of Design Process)。选择)。选择完全完全“Thorough”项项。37SNN中的智能问题求解器使用步骤中的智能问题求解器使用步骤qStep 10:希望保存最佳网络和在网络确定过程中增加网络大希望保存最佳网络和在网络确定过程中增加网络大小小(Saving Networks)。选择)。选择“Keep networks”和和“Increase”项。项。38SNN中的智能问题求解器使用步骤中的智能问题求解器使用步骤qStep 11:结果显示结果显示(Results Shown)。选择列表样
44、本结果)。选择列表样本结果“Datasheet”和统计结果汇总和统计结果汇总“Overall”。SNN计算完成计算完成后,给出多种结果。后,给出多种结果。39SNN的求解异或问题的结果的求解异或问题的结果Data Set Editor给给出了训练出了训练样本。样本。Run Data Set是训练是训练结果,有结果,有目标值、目标值、计算值和计算值和误差。误差。Regression Statistics是是最优网络计算的统计结最优网络计算的统计结果。果。Network Set Editor则是则是智能问题求智能问题求解器所用的解器所用的各种网络的各种网络的计算结果。计算结果。Network Il
45、lustration则是最优网则是最优网络的图示。络的图示。40SNN的求解异或问题的结果的求解异或问题的结果q计算结果表明了多层网络的隐层神经元数为计算结果表明了多层网络的隐层神经元数为5时,计算的误差时,计算的误差已达已达10-5,可以用来描述异或问题。,可以用来描述异或问题。q是否还有描述异或问题更好的网络结构呢?是否还有描述异或问题更好的网络结构呢?q隐层数为隐层数为4的的RBF网络,计算异或问题的误差达到网络,计算异或问题的误差达到10-15,比隐,比隐层神经元数为层神经元数为5的多层网络的计算误差要小的多层网络的计算误差要小10个数量级,完全个数量级,完全描述了异或问题。描述了异或
46、问题。411.4 关于关于ANN的进一步说明的进一步说明q选用合适的学习训练网络样本、优化网络结构、采选用合适的学习训练网络样本、优化网络结构、采用适当的学习训练方法就能得到包含学习训练样本用适当的学习训练方法就能得到包含学习训练样本范围的输入与输出关系。范围的输入与输出关系。q如果用于学习训练的样本不能充分反映体系的特性,如果用于学习训练的样本不能充分反映体系的特性,用用ANN也不能很好的描述与预测体系,所以有也不能很好的描述与预测体系,所以有“垃圾垃圾进,垃圾出;金子进,金子出进,垃圾出;金子进,金子出”之说。之说。q确定性模型的参数回归与确定性模型的参数回归与ANN之类的非确定性模型之类
47、的非确定性模型的不同特点。的不同特点。42确定性模型与非确定性模型的比较确定性模型与非确定性模型的比较q确定性模型的参数回归的特点:确定性模型的参数回归的特点:自变量与因变量之间有明确的函数关系,具有未知数值的自变量与因变量之间有明确的函数关系,具有未知数值的参数,需要通过自变量与因变量的数据组样本来回归估计,参数,需要通过自变量与因变量的数据组样本来回归估计,而且参数个数通常较少,具有明确的物理意义。而且参数个数通常较少,具有明确的物理意义。qANN之类的非确定性模型的特点:之类的非确定性模型的特点:无须针对问题提出明确的自变量与因变量之间的函数关系,无须针对问题提出明确的自变量与因变量之间
48、的函数关系,而函数关系用含有众多自由参数的模型回归拟合,但自由而函数关系用含有众多自由参数的模型回归拟合,但自由参数无明确的物理意义。参数无明确的物理意义。q因此,确定性模型回归的主要目标是得到模型的参因此,确定性模型回归的主要目标是得到模型的参数值。而非确定性模型计算的主要目标是得到输入数值。而非确定性模型计算的主要目标是得到输入与输出的关系。与输出的关系。43二、模拟退火法(二、模拟退火法(Simulated Annealing)q人工神经网络方法是用某种目标函数的全局极小作为算法搜人工神经网络方法是用某种目标函数的全局极小作为算法搜索和网络所要达到的目标。在学习或运行过程中,网络的误索和
49、网络所要达到的目标。在学习或运行过程中,网络的误差总是按其梯度下降的方向变化。当梯度趋于零时,网络的差总是按其梯度下降的方向变化。当梯度趋于零时,网络的学习或运行就停止了,所以这种算法往往会陷入局部最小而学习或运行就停止了,所以这种算法往往会陷入局部最小而达不到全局最小。达不到全局最小。q导致网络陷入局部最小的主要原因是网络误差按单方向减少,导致网络陷入局部最小的主要原因是网络误差按单方向减少,没有上升的过程。如果将误差的减少过程由没有上升的过程。如果将误差的减少过程由“总是按梯度下总是按梯度下降的方向变化降的方向变化”改为改为“大部分情况下按梯度下降的方向变大部分情况下按梯度下降的方向变化化
50、”,而有时按梯度上升的方向变化,这样就有可能跳出局,而有时按梯度上升的方向变化,这样就有可能跳出局部最小而达到全局最小部最小而达到全局最小(下图给出了梯度下降法下图给出了梯度下降法(a)和和SA方法方法(b)搜索途径搜索途径)。模拟退火算模拟退火算法的基本思法的基本思想想 44模拟退火法的起源模拟退火法的起源qSA算法是受金属冷却过程的启发,最早由算法是受金属冷却过程的启发,最早由Metropolis于于1953年提出来的。它具有灵活有效,能对问题进行全局优化。年提出来的。它具有灵活有效,能对问题进行全局优化。q金属中原子的能量与温度有关。原子能量高的时候,有能力金属中原子的能量与温度有关。原