BP神经网络模型及其应用_邢进良
- 格式:pdf
- 大小:561.86 KB
- 文档页数:5
TF 2,TFN }, BTF ) 其中 PR 为 R* 2维矩阵, 表示 R 为维输入矢
量中每维输入的最小值与最大值的范围; 若神经 网络有 N 层, 则 [ S1 S 2,SN ] 中各元素分别表示 各层神经元的数目; {TF 1 TF 2,TFN } 中各元素 分别表示各层神经元采用的传递函数; BTF 表示 神经网络训练时所 使用的训练函数。另外, new cf 可以创建一多层前馈 BP网络; new ff td可以创建一 前馈输入延迟 BP 网络。
E 隐 层: Dpj = Op j ( 1 - Opj ) Xji Dk j
Dpj的计算从输出层开始, 逐层向后进行;
图 2 - 2 BP 网络模型的算法框图 [ 5] 3、BP 神经网络设计的一般过程 3. 1. 生成 BP 神经网络 采用 newff 函数可以用来创建一前馈 BP 网 络。new ff 函数的常用格式为
Hj ( t + 1) = Hj GDj + A( Dj ( t) - Hj ( t - 1) ) 其中 G为学习速率, A为动量系数; p 步 6、判断误差函数 E是否收敛到所给学习 精度 E(E [ E? ), 若满足学习精度要求则结束学 习, 否则转步 2继续进行。[ 4] (参见图 2 - 2)
net. train. P aram. tim e
训练允许时间
Inf
net. tra in. P aram. m in_grad 训练中最小允许梯度值 Le - 6
3. 4. 网络训练 在设置完训练参数之后, 就可以调用 train 函 数对网络进行训练了。tra in函数的常用格式如下:
[ net, tr ] = tra in ( net, P, T ) 其中, P 为输入样本矢量集; T 为对应的目标
3. 2. 网络初始化 用小的随机数对每一层的权值 w 和偏差 b 初 始化, 以保证网络不被大的加权输入饱和。可以采 用 rands通过下列语句完成。 W = rand s( S, PR ) B = rand s(S ) 输入 S为神 经元个数; W 为随机权值矩阵; B 为阈值矩阵。 3. 3. 网络训练参数的设定 在 BP 神经网络生成和初始化以后, 即可利用 现有的 / 输入 ) ) ) 目标 0 样本矢量数据对网络进
No. 5 2007
表 2 - 1 几个主要的神经网络训练参数及含义
训练参数
参数含义
默认值
net. train. P aram. ep och
训练步骤
10 0
net. train. P aram. show 显示训练结果的间隔步骤 25
ne t. train. P aram. goal
训练目标误差
0
过修改各层神经元的权值, 逐次地向输入层传播
去进行计算, 再经过正向传播过程, 这两个过程的
反复运用, 使得误差信号最小。实际上, 误差达到
人们所希望的要求时, 网络 的学习过程就结 束。[ 3] (P 912; 66 )
)
设有 P 个 n维输入样本 Xp (P = 1, ,, P ) 和
)
相应的 m 维期望目标输出 tp ( p = 1, ,, P ), 若构
f (. ) 称为传递函数。
图 1 - 1 人工神经元模型 [ 2] 神经网络是由大量神经元广泛互连而成的网 络。根据连接方式的 不同, 神经网 络可分成两大 类: 没有反馈的向前网络和相互结合型网络。向前 网络由输入层、中间层和输出层组成, 中间层可有
若干层, 每一层的神经元只接受前一层神经元的 输出。而相互连接型网络中任意两个神经元之间 都有可能连接, 因此输入信号要在神经元之间反 复往返传递, 从某一初态开 始, 经过若干 次的变 化, 渐渐趋于某一稳定状态或进入周期振荡等其 他状态。
))
{ Xp, tp } 进行步 3一一步 5;
p 步 3、计算网络的实际输出及隐层神经元
的输出:
E Opj = f j (N e tpj ) = f ( Xji xi + Hj ) j
p 步 4、计算学习误差 Dpj; 输出层: Dp j = Op j ( 1 - Opj ) ( tpj - Opj )
行训练。BP 网络的训练通常采用 train 函数来完 成。针对不同问题, 在训练之前有必要对网络的训 练参数 net. train. P aram 进行适当的设置。表 2 - 1 为几个主要的神经网络训练参数及含义。
47
2007年 第 5期
沙洋师范高等专科学校学报 Journal of Shayang T eachers C ollege
图 1 - 2 PD P 模型下的人工神经网络模型 [ 2 ] 2、BP 神经网络的结构和算法 BP 神经网络是一种具有一个输入层, 一个或
多个隐层和一个输出层的多层网络。隐层和输出
层上的每个神经元都对应一个激发函数和一个阈
值。每一层上的神经元都通过权重与其相邻层上
的神经元互相连接。对于输入层上的神经元其阈
但是, 上图只是理想图像系统得到的结果, 实 际中的图像系统总会存在一些噪声干扰或者是非 线性因素, 实际得到的字母的网格图如图 4 - 2所 示。
图 4 - 2 带有噪声的字母 H 设计的网络要不仅能够对理想的输入向量进 行很好的分类, 也要对含有误差的输入向量有合 理的准确度。在本问题中, 把 35个 B ora l值作为 个具有 35个元素的输入向量。需要网络通过输出 一个具有 26个元素的输出向量来区分字母。这个 26元素向量的每 - 个代表着一个字母。在正常运 行的情况下, 对于一个输入字母, 网络要能输出一 个向量, 它的对应位置元素值为 1, 其他位置为 0。 例如, 字母 A 对应的向量, 其第一个位置的元素值 为 1(因为 A 是字母表中的第一个字目 ), 第 2- 26 个位置的元素值均为 0。 4. 2. 网络结构设计 网络的设计目标是为了使其输出矢量在正确 的位置上输出为 1, 而在其他位置上输出为 0。在 实际中, 网络不可能接收到一个理想的 B ora l向量 作为输入。为了使网络具有抗干扰能力, 网络还必 须能够有容错能力。 建立一个前馈 BP 神经网络 net, 网络结构为 35- 20一 26的结构, 即输入层 35个神经元输出层 26个神经元。隐含层取一层, 20个神经元。 4. 3. 网络的训练 输入层为 35个神经元, 即用 7 @ 5矩阵的 B ora 值表示每个数字, 用此 7 @ 5 = 35的元素组成的一 个字母的列矩阵, 那么 26个字母则分别由表示 26 个字母输入的列矩阵组成 35 @ 26的输入矩阵。然 后把这 26个 字母送入 名为 alphabet 的变量 中: a lp habet = [ lel, le2, , , le26]。 输出层为 26个神经元。因为目标矢量是希望 在每一个字母输入时, 在 26个字母中它所排顺序 的位置上输出为 1, 而在其他位置上的输出为 0。 因此, 取目标矩阵为对角线上为 1的 26 @ 26的单
=
1
1 + e-
x
。[ 5]
* 收稿日期: 2007- 05- 16 作者简介: 邢进良 ( 1960- ) , 男, 河 南省淅川县人, 沙洋师范 高等专 科学校 副教授, 主要 从事数学 应用及 数学教
育教学研究。
46
邢进良
BP 神经网络模型及其应用
p 步 5、更新权重和阈值: Xji ( t + 1) = Xji + GDjOpj + A( Xji ( t) - Xji ( t - 1) )
4 、利用 BP 神经网络进行字符识别 4. 1. 字母数字化过程 将实际问题抽象转化为神经网络可以接受的 数据输入, 经神经网络计算后, 再把网络的输出转 化为实际问题的解。把一个字母横向分为 7份, 纵 向分为 5份, 如图 4 - 1所示。
图 4 - 1理想字母 H 48
图中由╳表示的黑方格记为 1, 空白方格记为 0。这样每个字母都转化为一个 7 @ 5的 Boral 矩 阵。例如字母 E 所对应的 B ora l矩阵为 [ 1, 1, 1, 1, 1; 1, 0, 0, 0, 0; 1, 0, 0, 0, 0; 1, 1, 1, 1, 1; 1, 0, 0, 0, 0; 1, 0, 0, 0, 0; 1, 1, 1, 1, 1] 。
图 2 - 1 BP 网络模型结来自 [ 5]BP 算法所采用的学习 过程 (即权 值调整过
程 ) 由正向传播和反向传播组成。在正向传播过
程中, 每一层神经元的状态只影响到下一层神经
元网络。如果输出层不能得到期望输出, 就是实际
输出值与期望输出值之间有误差, 那么转入反向
传播过程, 将误差信号沿原来的连接通路返回, 通
值为零, 其输出等于输入。图 2 - 1给出了一个带 单隐层的二层 (不含输入层 )BP 神经网络的一般 结构。BP 神经网络隐层和输出层上的某神经元 j 的输出由下式确定:
E O j = fj (N etj ) = f j = ( Xjixi + Hi ) j
式中 fj (. ) 表示对应该神经元的激发函数; Hi j 表 示该神经元的阈值; xi表示对该神经元的输入; Xji 表示从神经元 j 到神经元 i 的连接权值; 激发函数 目前多采用连续可微非线性的 S igm o id 函数 f (x )
3. 5. 网络仿真 利用 sim 函数可以对训练后的网络进行仿真。 sim 函数的常用格式如下:
Y = sim ( net, P ) 3. 6. 数据预处理和后处理函数 为了提高神经网络的训练效率, 在某些情况 下需要对 " 输入 - 目标 " 样本集数据作必要的预 处理。如利用 prem nm x或 p restd函数可以对输入和 目标数据集进行 归一化处理, 使 其落入 [ - 1, 1] 区间; 利用 p rep ca 函数可以对输入样本集进行主 元分析, 以减小输入个样本矢量间的相关性, 从而 起到降维的目的; 利用 p ostreg 函数可对训练后网 络的实际输出和目标输出作线性回归分析, 以检 验神经网络的训练效果。