当前位置:文档之家› 11-第三篇 第4章 如何组织神经网络

11-第三篇 第4章 如何组织神经网络

第四章 如何组织神经网络使用人工神经网络时,将面临神经网络结构参数的选择及样本数据的预备等问题。

尽管对人工神经网络作了大量研究工作,但至今仍没有一个通用的理论公式来指导这些参数的选择,这里对一些基本方法加以介绍。

4.1 输入和输出层的设计问题4.1.1 网络信息容量与训练样本数的匹配在用ANN 解决实际问题时,训练样本的数量在众多要求中往往难于确定,特别它还与网络参数相关,网络参数指输入层、隐层及输出层结点数。

对于确定的样本数,网络参数太少则不足以表达样本中蕴涵的全部规律;而网络参数太多,则由于样本信息少而得不到充分的训练。

多层前馈网络的分类逼近能力与网络的信息容量相关,如网络信息容量用网络的权值和阈值总数n w 表示,则训练样本数P 与给定的训练误差ε之间满足下面关系:εωn P ≈ 上式表明,网络的信息容量与训练样本数之间存在着合理匹配关系:当实际问题不能提供较多的样本时,为了使训练误差ε不至于过大,则需设法减少n w ,换言之,网络的权值和阈值总数不能太多,这等价于输入层、隐层及输出层结点数不能太多。

就输入层、输出层结点数不能太多而言,当问题的输入输出变量较多时,必须剔除那些相对不太重要的参数而选择那些重要的参数作为研究对象。

4.1.2 训练样本数据设计训练样本的合理选择,对网络具有重要的影响。

样本数据的准备工作是网络设计与训练的基础。

1、训练样本数据的要求及数量样本数据的多少与网络的训练时间有明显关系,除了考虑样本的数量外,还要考虑以下问题:(1)训练样本数据必须包括要研究问题的全部模式。

神经网络是靠样本数据来训练的,样本越全面,网络性能就越好。

(2)训练样本数据之间尽可能不相关或相关性小,否则网络没有泛化能力。

(3)输入变量必须选择那些对输出影响大,且能够控制或提取训练数据的变量。

(4)在训练样本数据中,还应适当地考虑随机噪声的影响。

例如在加工线上,用神经网络识别不合格零件,在训练网络时,必须用各种不合格尺寸及不合格形状的数据来训练网络。

(5)应注意在靠近分类边界处训练样本数据的选择。

在靠近边界的地方,噪声的影响容易造成网络的错误判断,因此要选用较多的训练样本数据。

(6)训练样本数据量较大时可避免过度训练,或称过度拟合。

(7)训练样本要进行筛选并避免人为因素的干扰,同时应注意训练样本中各种可能模式的平衡,不能偏重于某种类型。

1另外,为使网络学习到训练样本中蕴涵的知识,一般要采用大量的训练样本,使网络不至于只学到少量样本中不重要的特征。

训练样本数据量最好是网络的权重总数乘以2,这里不包括训练之后用于检验训练效果的检验样本数据。

2、输入变量的类型在设计网络之前,必须整理好训练样本数据,这些数据一般是无法直接获得,常常需要用信号处理与特征提取技术从原始数据中提取能反映其特征的参数作为网络输入数据。

一般的数据分为以下两种变量:(1)语言变量这类变量没有具体的数据,其测量值之间没有“大于”或“小于”等量的关系,赋予这类唯一的数学关系是“属于”还是“不属于”,“相同”或是“不相同”某一类别。

语言变量有性别、职业、形状、颜色,成绩等。

判别是否为语言变量,根据能否给此变量的值赋予顺序关系,如果能赋予就不属于这类变量。

例如,红、黄、蓝、黑四种颜色类别,可分别用0001,0010,0100,1000四个二进制代码表示,换言之,神经网络的输入变量有四个分量[x1,x2,x3,x4],当[x1,x2,x3,x4]=[0,0,0,1]时,输出变量y表示红色,其余类推。

语言变量实质上就是无顺序的离散变量。

(2)数值变量这类变量的数值具有一定的顺序关系,变量也具有顺序关系。

例如,产品质量用四等级来描述:差、较差,中等、好,可以用1、2、3、4分别表示。

状态是从小(差)到大(好),对应的数值也要保持由小到大的渐进关系。

数值变量实质上就是有顺序的离散变量。

3、输出量的表示:输出量指的是网络的输出,代表系统要实现的功能目标,其选择相对容易些。

输出量对网络的精度和时间影响不大,可以是数值或语言变量。

对于数值变量可以直接用数值表示,由于网络实际输出只能是0~1或-1~1之间的数,所以需将输出值进行标准化处理或称归一化处理。

对于语言变量直接采用二进制数表示法。

4.2 网络数据的准备数据准备是否得当,直接影响训练时间和网络的性能,下面对有共性的数据准备问题进行讨论。

4.2.1 数据的标准化数据的标准化,或叫归一化,是指网络的输入、输出各数值变量值都要限制在[0、1]或[-1、1]之间的意思。

当输入变量幅度很大,一个数据变量为106级而另一个数据变量为10-6级,从网络上通过调整权值的大小,针对变量重要程度,那么网络应该学会使前者的权值很小,而使后者的权值很大,但实际上很难办到。

因为要跨越这样大的范围,这对学习算法的要求是太高了。

事实上,许多学习算法对权值范围都有限制,不能适应如此宽的数据变化范围。

为此,我们通过将输入数据归一化到能使网络所有权值调整都在一个不大的范围之内,以此来减轻网络训练时的难度。

让各分量都在0~1或-1~1之间变化,也就是说从网络训练的开始,就给各输入分量以同等的地位。

标准化的另一个原因是,比如一个物品的重量以公斤计而另一物品的重量以市斤计,很明显这2两件物品所用的数据不同。

然而经过标准化处理后,数据就与所用的计量单位无关了。

对于BP 网络的神经元采用Sigmoid 转移函数,标准化后可防止因净输入的绝对值过大而使神经元输出饱和,继而使权值调整进入误差曲面的平坦区。

在Sigmoid 转移函数的输出在0~1或-1~1之间,作为导师信号的输出数据如不标准化处理,势必数值大的输出分量绝对误差也大,数值小的输出分量绝对误差也小。

网络训练时,只针对输出总误差凋整权值,其结果是在总误差中占份额小的量绝对误差小,而输出分量相对误差较大。

碰到这样的问题,只要对输出进行标准化处理就可解决了。

在输入与输出向量的各分量量纲不同时,应对不同分量在其取值范围内分别进行标准化。

当各个物意义相同,且为同一个量纲时,应在整个数据范围内确定最大值和最小值进行统一的变换处理。

将输入输出数据变换为[0,1]区间的值,常用以下方式变换:max x min x minmax min x x x x x i i −−= 其中,代表输入或输出数据,代表数据变化的最小值,代表数据的最大值。

i x min x max x 若将输入输出数据变换[-1,1]区间的值,常用以下方式变换)(212min max minmax x x x x x x x x m i i m −−=+=式中代表数据变化范围的中间值。

按上述方法变换后,处于中间值的原始数据转化为零,而最大值与最小值分别转换1和-1。

当输入或输出向量中的某个分量取值过于密集时,对其进行以上处理可将数据点拉开距离。

m x 4.2.2 数据的分布变换若某变量的分布是非正常的,那么标准化是一种线性变换,但不能改变其分布规律,也会给网络带来很多困难。

我们希望输入网络的样本尽量满足下列条件:(1)参数变化范围的一致性。

网络各输入参数的变化幅度应大致相同,而一般情况是,当某变量的数值较大时,它的变化也大,这样是不好的。

(2)样本分布的正常性。

由分析可知,具有平坦分布规律的样本更容易学习。

因此,要没法使样本的分布尽量匀称。

若将某变量样本分布画成曲线,便得知该变量是否需要作变换。

图4-1所示的样本分布曲线,就表明需要对该变量进行压缩性变换,以确保样本分布的正常性。

最常用的压缩变换是对数变换。

这里应该指出,变换可能为零值的情况下,应先对变量进行偏移处理,然后再进行压缩。

其它常用的压缩变换有平方根、立方根方法等。

设某变量x在1~10000间变化,若取其自然对数,则变化范围就压缩到0~6.9之间,若取立方根,使压缩到1~10之间,变换的目的在于压缩变化的幅度。

图4-1需要变换的样本分布曲线 34.3 网络初始权值的选择网络具有改变权值的能力,可对网络系统进行调节。

即使网络初始状态相同,在不同的训练期,由于网络权值不同,也会给出不同的结果。

由于权值的初始值是随机设定的,因此训练后得到的具有同样功能网络的权值也不尽相同,使其寻找输入变量对输出的影响变得更加困难。

欲判断输入因素对输出的影响,不要误以为绝对值大的输入因素就重要,而接近于零的因素不重要;也不要认为大权值所连接的输入因素就重要,而小权值所连接的因素就不一定重要。

即使某输入通过一个较大的权值连至隐结点,也不能肯定说明变量就是重要因素,因为有可能该隐结点与输出神经单元相连的权值小,也可能某输入与多个隐神经元间的权值均较大,但那些隐神经元以兴奋(正权值)和抑值(负权值)相互抵消的方法连到了输出结点,致使该输入因素对输出影响不大。

为啥较小的权值所连的输入因素不一定重要呢?因为同一输入经若干较小权值分别连至不同的隐神经元,而这些隐神经元的输出虽然其值都不大,但有可能相加起来形成一个可观的输出。

从神经元的转移函数来看,它是与零点对称的,如果每一个结点的净输入均在零点的附近,则其输出在转移函数的中点,这个位置不仅远离转移函数的两个饱和区,而且是变化最灵敏的区域,必然会使网络学习速度较快。

从净输入X j j W =s 可以看出,为了使各结点的初始净输入在零点附近,可采用两种方法:一种办法是使初始权值足够小;另一种办法是使初始值为+1和-1的权值数相等。

在应用中对隐层权值可采用前者方法,而对输出层可采用后者方法。

因为从隐层权值调整公式来看,如果输出层权值太小,会使隐层初期的调整量变小。

按以上方法设置的初始权值,可保证每个神经元一开始都工作在其转移函数变化最大的位置。

初始权重确定以后,相互连接的权值如何改变,是随学习的规则变化的,目的是调整权值以减小输出误差。

4.4 隐层数及隐层结点设计虽然对隐层数及隐层结点数等网络参数设计无通用规则指导,但在设计多层前馈网络时,经过大量的实践一般归纳了以下几点结论:(1) 对任何实际问题首先只用一个隐层;(2) 使用很少的隐层结点数;(3) 不断增加隐层结点数,直到获得满意性能为止,否则再考虑用两个隐层。

下面对隐层数与隐层结点数分别叙述。

4.4.1 隐层数的确定在设计多层神经网络时,首先考虑要采用几个隐层。

经学者研究证明,任意一个连续函数都可用只有一个隐层的网络以任意精度进行逼近,但由于某些先决条件难以满足,致使在应用时造成困难。

图4-2 锯齿波函数学者们通过分析研究曾得出过这样的结论:两个隐层的网络可以获得要求输入与输出是任意连续的函数关系,下面以连续锯齿形函数作为例子来说明。

将该曲线分成30个等距分开的点来训练隐层数及单元数不同的网络,其结果如表4-1。

4从表4-1可看出:当只有一个隐层时,隐层单元数从3增加到4时,出现一个跳跃,网络性能有明显改善,即各种误差均大幅下降。

相关主题