1
模式识别与智能计算的MATLAB实现
1.5.7 3.7 人工神经网络技术在科学研究中的应用

3.7 人工神经网络技术在科学研究中的应用

人工神经网络在故障的诊断、特征的提取和预测以及非线性系统的自适应控制以及不能用规则或公式描述的大量原始数据的处理等方面具有比经典计算方法优越的性能,并且有极强的灵活性和自适应性。

在实际应用中,面对一个实际问题,如要用人工神经网络求解,首先应根据问题的特点,确定网络模型,再通过网络仿真分析,分析确定网络是否适合实际问题的特点。

(1)信息表达方式

各种应用领域的信息有不同的物理意义和表示方法,为此要将这些不同物理意义和表示方法的信息转化为网络所能表达并能处理的形式。不同应用领域的各种数据形式一般有以下几种:

·已知数据样本;

·已知一些相互关系不明的数据样本;

·输入—输出模式为连续量、离散量;

·具有平移、旋转、伸缩等变化模式。

(2)网络模型选择

也即确定激活函数、连接方式、各神经元的相互作用等;当然也可以针对问题的特点,对原始网络模型进行变形、扩充等处理。

(3)网络参数选择

确定输入、输出神经元的数目以及多层网的层数和隐含层神经元的数目等。

(4)学习训练算法选择

确定网络学习时的学习规则及改进学习规则。在训练时,还要结合实际问题考虑网络的初始化。

(5)系统仿真的性能对比

将应用神经网络解决的领域问题与其他采用不同方法的仿真系统的效果进行比较,以检验方法的准确度和解决问题的精度。

例3.1 新疆伊犁河雅马渡23年实测年径流y与其相应的4个预测因子数据见表3.3,现对该站的年径流进行预测。

表3.3 新疆伊犁河雅马渡实测年径流

alt

表中a1、a2、a3、a4四个预测因子,分别为前一年11月到当年3月伊犁气象站的降雨量(mm)、前一年8月欧亚地区月平均纬向环流指数、前一年5月欧亚地区径向环流指数和前一年6月2800MHz的太阳射电流量(10-22W/m2Hz)。

:利用BP神经网络进行预测。

在进行BP神经网络的设计时,应注意以下几个问题:

①网络的层数。一般三层网络结构就可以逼近任何有理函数。增加网络层数虽然可以提高计算精度,减少误差,但同时也使网络复杂化,增加网络的训练时间。如果实在想增加层数,也应优先增加隐含层的神经元数。

②隐含层的神经单元数。网络训练精度的提高,可以通过采用一个隐含层而增加神经元数的方法来获得。这在结构上比增加更多的隐含层简单得多。在具体设计上可以使隐含层是输入层的2倍,然后再适当加一点余量。

③初始权值的选取。一般取初始权值是(-1,1)的随机数。

④学习速率。学习速率决定每一次循环训练所产生的权值变化量。高的学习速率可能导致系统的不稳定性,但低的学习速率导致较长的训练时间,可能收敛较慢。一般取0.01~0.8。可以通过比较不同的速率所得到误差选择合适的值。

⑤误差的选取。在网络的训练过程中,误差的选取也应当通过对比训练后确定一个合适的值,也即相对于所需要的隐含层的结点数来确定。

alt

自己可以调节不同的参数,看误差的大小。本次的预测结果如图3.7所示。

alt

图3.7 计算结果图

因为在本题中只有一个输出,19个训练样本,所以设隐含层为40,输出层为1。另外要注意的是,数据矩阵是以n×m格式输入的,其中n是特征值,m是样本数。

例3.2 测定了18个芳香腈化合物对发光菌毒性的大小及某些理化性能参数,如表3.4所列。请根据结构性能关系,预测三个未知毒性化合物的类别。

表3.4 芳香腈类化合物的生物活性测定值与理化参数

alt

:可以用多种神经网络方法求解。

(1)利用BP网络

alt

即毒性等级为一、二类。很明显,BP网络的误差较大,这主要与训练样本的代表性有关。训练样本值越均匀分布,数量越多,越有利于提高预测精度。

(2)利用概率神经网络

alt

限于篇幅,其他神经网络的计算就不再列出。

例3.3 设计一个自适应线性网络,并对输入信号进行预测。输入为一线性调频信号,信号的采样时间为2s,采样频率为1000Hz,起始到信号的瞬时为0Hz,1s时的瞬时频率为150Hz。

alt

alt

图3.8 信号与网络预测及误差图

从图中的误差曲线可见,在预测的初始阶段,误差较大,但经过一段时间(5个信号)后,误差几乎趋于零,这是因为在初始阶段,网络的输入需要5个延迟信号,输入不完整,因此不可避免地出现初始误差。

例3.4 探寻自变量和因变量间的关系是科学研究经常会遇到的问题。但有时由于这两者的关系比较复杂,常常不能用合适的数学解析式表示,而只能描绘出它们之间的关系曲线,此时可以利用人工神经网络技术对函数进行逼近以代替拟合回归分析。例如,某自变量与因变量间有如下的关系,试求x为1.7时的因变量的值。

alt

alt

对结果可绘制出图3.9,从中可看出计算值非常接近函数曲线。

alt

图3.9 自变量与因变量间的关系曲线

例3.5 利用滴定法测定酸或碱的含量是一种常用的化学分析方法。但如果酸或碱的强度太低,会导致终点时指示剂变化不明显,从而引起较大的误差。例如,某一产品是由三种化合物混合而成的,其质量检验操作规程采用酸碱滴定法。但由于指示剂在终点附近的变化不明显,且各化合物的酸碱强度相差不大,所以此法的测定误差较大。现拟采用BP人工神经网络法测定。用精密的酸度计测定不同浓度的标准样品的酸碱滴定曲线,提取曲线的特征值和样品的标准浓度作为网络的输入,如有表3.5所列的实验结果,据此求未知样品的浓度。

表3.5 不同浓度标准样品的滴定曲线

alt

alt

:用BP网络求解。

alt

例3.6 如某产品的工艺流程由工艺A、工艺B、工艺C和工艺D串联而成,其中,工艺A是必备设备,而其他工艺根据具体情况确定取舍。调查6家工厂,其工艺组合情况如表3.6所列。据此建立投资费用的数学模型。

表3.6 废水处理工艺组合情况

alt

:可以用多种方法求解,现利用人工神经网络求解。

首先对表中数据进行处理,以适应人工神经网络处理。

设1=“有”,0=“无”,并对处理量标准化处理后,作为神经网络输入和输出参数。

alt

预测精度比较理想。

例3.7 BP人工神经网络是用途最广泛的一种网络,但网络的学习算法存在训练速度慢,易陷入局域极小值和全局搜索能力弱等缺点;而遗传算法不要求目标函数具有连续性,而且它的搜索具有全局性,因此,容易得到全局最优解,或性能很好的次优解。因此,与遗传算法结合,可以改善人工神经网络方法的精度。

现应用遗传算法优化人工神经网络的权值。其基本过程是,首先随机产生神经网络的连接权重矩阵并表示为遗传算法的基因串,然后根据实际输出和期望输出对目前的权重进行评价,计算评价值,再进行遗传算法的基因交换和变异操作,产生新的权重,直到实际输出与期望值之间的误差达到满意的结果。

现有一两层网络,其网络的隐含层各神经元的激活函数为双曲正切型,输出层各神经元的激活函数为线性函数,隐含层有5个神经元,并且有如下21组单输入矢量和相对应的目标矢量,试用遗传算法对其权重进行优化。

alt

:首先编写目标函数并以文件名myf_3存盘。

alt

然后打开遗传算法的GUI:

alt

在GUI的fitness function窗口输入@myf_3,在number of variables窗口输入变量数目16(根据各矩阵的大小而定),Stopping criteria选项中设置generations为5000,fitness limit为0.01,stall generationd为350,stall time limit为150,其他参数选缺省值,然后单击Start运行遗传算法,得到如图3.10所示的结果。

alt

图3.10 遗传算法运行结果

alt

其中,第1~5个为w1,第6~10个为w2,第11~15个为b1,第16个为b2

从运行结果可看出,与单纯神经网络方法相比,遗传算法的运行时间要短得多,其收敛速率由快到慢,在generations(遗传代数)为2000以后,函数的变化较小,所以运行时其值及可设置较小些,并且如果初始种群用权重和阈值初始矩阵代替,收敛速率会更快。遗传算法和神经网络计算结果的曲线如图3.11所示。

alt

图3.11 遗传算法和神经网络结果曲线

例3.8 对表3.7的某海洋冰情等级序列用RBF网络进行预测。

表3.7 某海洋冰情等级序列实测值

alt

:首先用自相关分析技术确定RBF网络模型的输入、输出向量。设冰情等级序列{x*(i)}延迟k步的自相关系数R(k)为

alt

其中,n为时间序列的容量,k=1,2,…,nk<[n/10]或[n/4]。R(nk)的估计精度随nk的增加而降低,因此nk应取较小的数值。

当自相关系数

alt

时,推断时序延迟k步相关性显著,否则不显著,其中分位值uα/2可从正态分布表中查得。

设最大相关性延迟步数为m,则对于n个容量的时间序列,其RBF网络训练样本的输入、输出向量为以下n-m组:

alt=[xm+1,xm+2,…,xn],  alt=[ym+1,ym+2,…,yn

其中,xi=[x*(i-m),…,x*(i-1)]T,yi=x*(i)。

然后用newrb函数设计一个满足一定精度要求的RBF网络:

alt

其中,g、s分别为均方误差和RBF的分布。

对表3.7中数据计算各阶自相关系数,可得到如下数据:

alt

即只有R(1)、R(3)和R(4)是显著的,所以取m=4。据此可得出网络的输入及输出向量。

取1996—1992年的数据作为训练样本,预测1993年的冰情等级。

alt

b=1.7566,实际值为1.5,能满足预测要求。

例3.9 环境质量综合评价的方法有很多,如多目标决策—理想区间法、层次分析法、模糊综合评价法等,每一种方法都有各自的特点。现利用RBF网络对某地区的大气环境质量进行综合评价,所有的数据见表3.8和表3.9。

表3.8 评价标准

alt

表3.9 各季度单元中各评价指标实测浓度值

alt

:由评价标准表中的数据,建立网络训练样本的输入、输出向量。对于n个评价等级(或评价单元、备选方案)、m评价指标的综合评价问题,其输入、输出向量为

x=[x1,x2,…,xn],  y=[1,2,…,n]

其中,xi=[ai1,xi2,…,ximTalt。fmax(j)为第j个指标的最大值,alt表示第i个评价等级的第j个评价指标值。aijalt的归一化值。i=1,2,…,n;j=1,2,…,m。

alt

例3.10 为了解某河段As、Pb污染状况,设在甲、乙两地监测,采样测得这两种元素在水中和底泥中的浓度(见表3.10)。依据这些数据利用对向传播网络(Counter Propagation Network,CPN)判别下列未知样本是从哪个区域采得的。

表3.10 两组已知样品原始数据 mg/kg

alt

alt

:在MATLAB中,没有关于CPN网络的函数,需要自己编写。

alt

以下为CPN函数。

alt

例3.11 在实际研究中,自变量的筛选是一个非常重要的问题。试用神经网络方法对表3.11数据中的自变量进行筛选,以便更好地进行结构—活性分析。

表3.11 烷烃的色谱保留时间与结构参数的关系

alt

alt

:利用神经网络筛选自变量,是通过平均影响值(Mean Impact Value,MIV)指标完成的。MIV指标是用来确定输入神经元对输出神经元影响大小的一个指标,其符号代表相关的方向,绝对值大小代表影响的相对重要性。具体计算过程如下:在网络训练结束后,将训练样本P中的每一变量特征在其原值的基础上分别加10%/减10%,构成新的两个训练样本P1和P2,将P1和P2分别作为仿真样本利用已建成的网络进行仿真,得到两个仿真结果A1和A2,并求出它们的差值,即为变动该自变量后对输出产生的影响变化值(即MIV)。最后将MIV按观察例数平均得出该自变量对于应变量—网络输出的MIV。按照相同的步骤,依次计算出各个自变量的MIV值,然后根据MIV绝对值的大小为各自变量排序,得到各自变量对网络输出影响相对重要性的位次表,从而判断出输入特征对于网络结果的影响程度,即实现变量的筛选。

alt

即可以选第1、3、4、6、8个变量。

alt

例3.12 小波神经网络(Wavelet Neural Network,WNN)是20世纪90年代兴起的一种数学建模分析方法,是结合小波变换与人工神经网络的思想形成的,即用非线性小波基取代了通常的非线性Sigmoid函数,已有效地应用于信号处理、数据压缩、故障诊断等众多领域。

小波神经网络具有比小波更多的自由度,使其具有更灵活有效的函数逼近能力,并且由于其建模算法不同于普通神经网络模型的BP算法,所以可以有效地克服普通人工神经网络模型所固有的缺陷,用其所建预测模型可以取得更好的预测效果。

试用小波神经网络预测下列时间序列:

alt

:由于该序列信息较少,所以设计单输入/单输出的连续小波神经网络图,即用小波级数的有限项目来拟合时间序列函数:

alt

其中,alt为拟合的时间序列;wk、bk、ak分别为权重系数、小波基的平移因子和伸缩因子;L为小波基的个数。

用遗传算法或其他优化方法,确定最佳的wk、bk、ak和L值,其中小波基函数采用Morlet母小波函数。图3.12为分别用2个和3个小波基函数拟合的结果。可以看出,用2个小波基函数就可以取得较好的结果,而且也可以看出前几个时间点的拟合效果差,有延迟效应。

alt

图3.12 小波神经网络拟合结果

各参数值分别为:w1=196.3378,w2=227.7606,b1=12.4169,b2=12.9191,a1=-13.4431,a2=-34.5013。

例3.13 品种区域试验是作物育种过程中的一个重要环节,其评价结果是否准确可靠,往往决定着育种工作的成败。因此,长期以来,为了寻求科学合理的评价方法,人们提出了不少富有新意的好方法,例如方差分析法、联合方差分析法、稳定性分析法、品种分级分析法、非平衡资料的参数统计法、秩次分析法,等等。然而,由于它们均局限于对产量一个性状的分析,因此当时代发展对作物品种提出高产、优质、抗病、抗虫等多目标的需求时,上述方法便显得不足。试利用Hopfiled神经网络法对其进行分类。数据见表3.12。

表3.12 2001—2002年度河南省小麦高肥冬水组区域试验结果(安阳点)

alt

alt

(数据来源:郭瑞林,张进忠,张爱芹.作物品种多维物元分析法[J].数学的实践与认识,2006,36(1):116—121)


:由于离散型Hopfiled神经网络神经元的状态只有1和-1两种情况,所以将评价指标映射为神经元的状态时,需要将其进行编码。其规则是:当大于或等于某个等级的指标值时,对应的神经元状态设为1,否则为-1。

在本例中,用前9个样品组成三个等级的评价标准集,后一个样品作为测试。将前9个样品的指标进行平均,得到表3.13所列的3个等级评价指标。

表3.13 等级评价指标

alt

alt

从结果看,虽然没有稳定在1和-1这些点上,但也可以基本肯定为较差。网络稳定性差,主要是因为标准样本太少,特别是较好的样本只有一个,所以测试样本的第8、9个指标值与较好的标准较为接近。

例3.14 为了方便用户快速地利用神经网络解决各种实际问题,较高版本的MATLAB提供了一个神经网络图形用户界面(GUI)。试利用此GUI对表3.14中的数据进行模式识别。

表3.14 煤样各指标的实测数据

alt

:基于神经网络的GUI有神经网络拟合工具图形界面(nftool)、神经网络模式识别工具箱图形界面(nprtool)和神经网络聚类工具箱图形界面(nctool)。本题先用nctool对数据进行聚类,然后再利用nprtool进行分析。

①打开神经网络聚类工具箱图形界面:

alt

出现如图3.13所示的对话框。在此界面中,MATLAB利用自组织特征映射网络(SOM)进行数据的聚类,它使用了batch算法,使用的是trainubwb和learnsomb函数。

alt

图3.13 神经网络聚类工具箱

单击Next按钮,进行数据导入界面,在此可以从文件或命令窗口中导入所要分析的数据,注意数据导入格式要符合神经网络计算的要求。由于SOM网络是无导师、无监督的分类网络,不需要输入目标输出。单击数据导入界面中的Next按钮,进入网络选择界面。

需要选择竞争层相关参数,默认值为10,说明竞争层有10×10个神经单元。单击此对话框中的Next按钮,进入网络训练界面。单击Train便对网络进行训练。

在网络训练后,进入网络再训练及查看结果界面,可以使用对话框右侧的Plot SOM Neighbor Distance/Plot SOM Weight Planes/Plot SOM Sample Hits/Plot SOM Weight Positions按钮查看聚类的效果。由于每次训练次数固定200次,所以有可能训练效果不佳,可以单击Retrain对网络再进行训练。如果对结果满意,则单击界面中的Next按钮,进入网络评估界面。通过单击此界面中相应的按钮,可以再进入训练或网络参数界面。

单击Next按钮,进入网络保存界面。在此可以保存计算结果,并将结果以相应的名字存入命令窗口中。

对于本题,竞争层采用12个神经元,训练600次,可以得到如图3.14所示的结果。可以看出样品可以分成6类,比实际情况要分得细。

alt

图3.14 分类情况

②用来进行模式识别的是一个两层的前向型神经网络,隐含层和输出层神经元使用的是Sigmoid函数,训练使用的是trainscg算法。

打开模式识别工具箱图形界面:

alt

出现如图3.15所示的图形。

alt

图3.15

单击Next按钮,进入数据导入界面,导入输入数据及目标数据。要注意目标数值应是二值类型,对于本例为alt,分别代表1、2和3类。并且输入数据和目标数据的格式相同时,才能进入验证和测试样本。在此界面对输入的样本进行训练、验证和测试样本选择,可以选择不同的比例。然后单击Next按钮,进入网络选择界面,在此设置隐含层数目,默认为20。

单击Next按钮,进入网络训练界面。单击Retrain按钮,便可以对网络进行训练和查看训练结果。单击Next按钮,进入网络评估界面,在此可以再训练或进入下一界面进行网络保存。以相应名字将结果输入到命令窗口,便可以查看分类结果及对未知样本进行预测。对于本例为

alt