郑州大学本科学位论文 2011年5月
Vjt(N?1)?Vjt(N)??dtkbj ?t(N?1)??t(N)??dtk 式中:N——学习次数。
k8、由ekj,ai,Wij和?j计算下一次的输入层和中间层之间的新连接权:
k Wij(N?1)?Wij(N)??ekjai
?j(N?1)??j(N)??ekj
9、随机选取下一个学习模式对提供给网络,返回到第3步,直至全部m个模式对训练完。
10、重新从m个学习模式对中随机选取一个模式对,返回到第3步,直至网络全局误差函数E小于预先设定的限定值(网络收敛)或学习回数大于预先设定的数值(网络无法收敛)。
11、学习结束
在以上的学习步骤中1~6为输入学习模式的“顺传播过程”,7~8为网络误差的“逆传播过程”,9~10则完成训练和收敛过程。BP网络学习过程框图如图3-6所示,根据框图及上述计算步骤可编程完成对BP神经网络的训练过程。
17 / 37
郑州大学本科学位论文 2011年5月
开始连接权及阈值初始化学习模式对提供给网络计算中间层各单元的输入输出计算输出层各单元的输入输出计算输出层各单元的校正误差计算中间层各单元的校正误差调整中间层至输出层之间的连接权及输出层各单元的输出阈值调整输入层到中间层之间的连接权及输出层各单元的输出阈值更新学习输入模式否全部模式训练完 更新学习次数否?或学习次数>N误差< 学习结束
图3-2-2-3 BP网络学习过程框图
18 / 37
郑州大学本科学位论文 2011年5月
3.3 BP神经网络设计基础
3.3.1 训练样本集的准备
训练数据的准备工作是网络设计与训练的基础,数据选择的合理性以及数据表示的合理性对于网络设计具有极为重要的影响。数据准备包括原始数据的收集、数据分析、变量选择和数据预处理等诸多步骤,如下:
一、输入输出量的选择
一个待建模系统的输入—输出就是神经网络的输入输出变量。这些变量可能是事先确定的,也可能不够明确,需要进行一番筛选。一般来讲,输出量代表系统要实现的功能目标,其选择确定相对容易一些,例如系统的性能指标,分类问题的类别归属,或非线性函数值等等。输入量必须选择那些对输出影响大且能够检测或提取的变量,此外还要求各输入变量之间互不相关或相关性很小,这是输入量选择的两条基本原则。如果对某个变量是否适合作网络输入没有把握,可分别训练含有和不含有该输入的两个网络,对其效果进行对比。
从输入、输出量的性质来看,可分为两类:一类是数值变量,一类是语言变量。数值变量的值是数值确定的连续量或离散量。语言变量是用自然语言表示的概念,其“语言值”是用自然语言表示的事物的各种属性。例如,颜色、性别、规模等等都是语言变量。其语言值可分别取为红、绿、蓝,男、女,大、中、小等。当选用语言变量作为网络的输入或输出变量时,需将其语言值转换为离散的数值量。
二、输入量的提取与表示
很多情况下,神经网络的输入量无法直接获得,常常需要用信号处理与特征提取技术从原始数据中提取能反映其特征的若干特征参数作为网络的输入,提取方法与待解决的问题密切相关,下面讨论典型的几种情况。
1、文字符号输入
在各类字符识别的应用中,均以字符为输入的原始对象。BP网络的输入层不能直接接受字符输入,必须先对其进行编码,变成网络可接受的形式。
2、曲线输入
多层感知器在模式识别类应用中常被用来识别各种设备输出的波形曲线,对于这类输入模式,常用的表示方法是提取波形在各区间分界点的值,以其作为网络输入向量的分量值。各输入分量的下标表示输入值在波形中的位置,因此分量的编号是严格有序的。
3、函数自变量输入
用多层前馈网建立系统的数学模型属于典型的非线性映射问题。一般当系统已有大量输入—输出数据对,建模的目的是提取其中隐含的映射规则(即函数关系)。这类应用的输入表示比较简单,一般有几个影响参数就设几个分量,1个输入分量对应一个输入层节点。
4、图像输入
当需要对物体的图像进行识别时,很少直接将每个像素点的灰度值作为网络的输入。因为图像的像素点常以万计,不适合作为网络的输入,而且难以从中提取有价值的输入—
19 / 37
郑州大学本科学位论文 2011年5月
输出规律。这类应用中,一般先根据识别的具体目的从图像中提取一些有用的特征参数,再根据这些参数对输出的贡献进行筛选。
三、输出量的表示
所谓输出量实际上是指为网络训练提供的期望输出,一个网络可以有多个输出变量,其表示方法通常比输入量容易很多,而且对网络的精度和训练时间影响也不大。输出量可以是数值变量,也可以是语言变量。对于数值类的输出量,可直接用数值量来表示,但由于网络实际输出只能是0~1或-1~1之间的数,所以需要将期望输出进行尺度变换处理,方法见四。下面是几种语言变量的表示方法。
1、“n中取1”表示法
分类问题的输出变量多用语言变量类型,如质量可分为优、良、中、差4个类别。“n中取1”是令输出向量的分量数等于类别数,输入样本被判为哪一类,对应的输出分量取1,其余n-1个分量全取0.例如,用0001、0010、0100和1000分别表示优、良、中、差4个类别。这种方法的优点是比较直观,当分类数不是太多时经常采用。
2、“n?1”表示法
“n中取1”表示法中没有用到编码全为0的情况,如果用n?1个全为0的输出向量表示某个类别,则可以节省一个输出节点。如上面提到的4个类别也可以用000、001、010和100表示。特别是当输出只有两种可能是,只用一个二进制数便可以表达清楚。如用0和1代表性别的男和女等。
3、数值表示法
二值分类只适于表示两类对立的分类,而对以有些渐进式的分类,可以将语言值转化为二值之间的数值表示。例如,质量的差与好可以用0和1表示,而较差和较好这样的渐进类别可用0和1之间的数值表示,如用0.25表示较差,0.5表示中等,0.75表示较好等等。数值的选择要注意保持由小到大的渐进关系,并要根据实际意义拉开距离。
四、输入输出数据的预处理 尺度变换也称归一化或标准化,是指通过变化处理将网络的输入、输出数据限制在[0,1]或[-1,1]区间内。进行尺度变换的主要原因有:(1)网络的各个输入数据常常具有不同的物理意义和不同的量纲,如某输入分量在0~1?10范围内变化,而另一输入分量则在0~1?10范围内变化。尺度变换使所有分量都在0~1或-1~1之间变化,从而使网络训练一开始就给各输入分量以同等重要的地位;(2)BP网的神经元均采用Sigmoid变换函数,变换后可防止因净输入的绝对值过大而使神经元输出饱和,继而使权值调整进入误差曲面的平坦区;(3)Sigmoid变换函数的输出在0~1或-1~1之间,作为教师信号的输出数据如不进行变换处理,势必使数值大的输出分量绝对误差大,数值小的输出分量绝对误差小,网络训练时只针对输出的总误差调整权值,其结果是在总误差中占份额小的输出分量相对误差较大,对输出量进行尺度变换后这个问题可迎刃而解。此外,当输入或输出向量的分量量纲不同时,应对不同的分量在其取值范围内分别进行变换;当各分量物理意义相同且为同一量纲时,应在整个数据范围内确定最大值xmax和最小值xmin,进行统一的变化处理。
将输入输出数据变换为[0,1]区间的值常用以下变换式
20 / 37
?55

