BP人工神经网络的应用及其实现技术
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
BP 算法框图如图 3 所示 . BP 算法很实用 ,在工业控制如 DC - DC 变换器的智能控制 [3 ] [4] 图像处理如手写体识别和图像压缩等方面已成功获得应用 . 但它也存在如下问题 : ( 1) 算法属于非线性优化法 ,存在局部最小值问题 . ( 2) 收敛速度慢 ,通常需要几千步迭代 . ( 3) 网络运行只是单向传播 ,无反馈 . ( 4) 网络的隐节点数无理论上指导 ,凭经验选取 . ( 5) 对新加入的样本要影响到已经学完的样本 、 刻划每个输入的特征数目必须相同.
的程序 ,软件执行文件为 Batchnet . exe ,它在 DOS 环境下运行 ,文件大小 34. 4k. 程序根据输入的样本对 网络进行训练 ,最后收敛后输出训练好的网络的所有权值. 原程序是在 80 × 87 仿真模式下编译的 ,我们 对它在 80 × 87 硬件模式下重新进行了编译 ,可以大大提高神经网络训练时的计算速度. 作者还给出了 一个用于进行权值随机初始化的程序 Weights. exe.
、 语音识别 、
目前已经出现了较多改进算法 ,其中 Leveberg2Marguarett 优化方法是最好的方法之一 .
[5]
2 应用 Batchnet 程序进行 BP 网络设计
Batchnet 是美国学者 Roy Dobbins 于 1990 年用 C 语言步编写的一个专用于设计标准的三层 BP 网络
为了便于操作 ,一般可编写一个批处理文件 ( ?. bat ) 如下 Batchnet - e10 ?. run
2. 4 用 Batchnet 分析 XOR 网络 ( 1) 网络参数的选取
对于前面所述的 XOR 网络选取有关参数如下 : 样本数 nPats = 20 ,迭代次数 nIter = 5000 ,隐层节点数 nHid = 2 ,输入层节点数 nInp = 2 ,输出层节 点数 nOut = 1 ,学习系数 eta = 0. 15 ,动量因子 alpha = 0. 075 ( 2) 初始权值的生成
2. 1 程序开关 (1) - e ?: 用于设定均方差
[6 ]
迭代输出显示的间隔 , 假定值为 100. (2) - d ?: 用于设置终止训 练的均方差 ,预定值为 0. 02 ,用 d0. 01 则均方差值为 0. 01.
2. 2 程序运行所需文件 (1) 输出文件 ( . out ) : 给出最
© 1994-2009 China Academic Journal Electronic Publishing House. All rights reserved. http://www.cnki.net
No. 4 ,2000 JOURNAL OF NAVAL UNIVERSITY OF ENGINEERING Sum No. 93 ・18 ・
路返回 ,即转入反向传播 ,通过修改各层神经元的权值 ,使得误差信号最小 . 为简单起见 ,考虑一个只有 一个输出 y 的 n 节点的网络 ,节点的作用函数为 Sigmoid 型 ,下面就逐个样本学习的情况来推导 BP 算 法 . 图 2 示出第 j 个单元接收到前一层信号并产 生误差信号的过程 . 在第 n 步迭代时 ,第 j 个单元受到的前一层信号 产生的净输入为
[1 ]
图1 XOR 函数的三层 NN 网络实现
部分组成 . 首先由正向传播过程开始 ,输入信息从输入层经隐单元层处理 ,并传向输出层 ,每一层神经元 的状态只影响下一层神经元的状态 . 如果在输出层不能得到预期的结果 ,则将输出误差沿原来的连接通
① ②
收稿日期 :2000 - 04 - 28 作者简介 : 单潮龙 (1964 - ) ,男 . 讲师 ,博士生 .
© 1994-2009 China Academic Journal Electronic Publishing House. All rights reserved. http://www.cnki.net
总第 93 期 海 军 工 程 大 学 学 报 2000 年第 4 期 ・1 9 ・
( 6) 输出权值文件 ( . wts) : 最后一次迭代后输出的权值文件 . 2. 3 程序用法
使用 Batchnet 程序前 ,需要事先编好运行文件 ,格式如下 :
fOur f Err fPat fWts fWtso nPats nIter nInp nHid nOut eta alpha
参数说明 : fOut — 输出节点文件 f Err — 误差输出文件
1 BP 人工神经网络及应用
反向传播学习算法人工神经网络 (BP 人工神经网络) 是 80 年代初发展起来的人工神经网络中最有 实用价值的部分之一 . 早在 1969 年 ,感知器的提出者 M. Misky 和 S. Papert 在他们的 Perceptron 专著中指 出 : 简单的线性感知器只能解决线性可分样本的分类问题 . 简单的线性感知器仅有一层计算单元 ,而要 实现对复杂函数的逼近 ,必须采用多层前馈网络 ,例如 ,我们考察 “异或”函数 ,若选用 M - P 模型 ,作 用函数为阈值函数 ,则其实现网络为三层前馈网络 ,包含有一层隐层 ,如图 1 所示 . 对这种多层网络 ,感知器无法解 决其隐层学习问题 , 限制了其发展 . 1988 年 Rumelhart 和 Mcclalland 提出 了多层前馈网络的反向传播算法 (BP 算法) , 解决了感知器不能解决的多 层网络学习算法的问题 ,其关键是引 入了反向传播的误差信号来解决学 习问题 . 算法的大致思路如下 : 对输入信号 ,首先向前传播到隐 节点 ,经过作用函数 ( 通常是 Sigmoid 函数) 后 , 再把隐节点输出信号传播 到输出节点 , 最后输出结果 . 算法的 学习过程由正向传播和反向传播两
=
e ∑
k k
( n) φ υ υ υ ′ w kjφ ′ ′ k ( k ( n) ) ・ j ( j ( n) ) = φ j ( j ( n) )
δ ( n) ・w ∑
k k
百度文库
kj
( n)
[2]
υ 可见 j 是一个隐单元时 ,δ ′ j ( n) 为 φ j ( j ( n ) ) 与后一层的 δ的加权和之积 .
后一 次 迭 代 后 每 个 输 出 节 点 的 值 ,对测试模式只有一次迭代 . (2) 误差文件 ( . err ) : 给出经 指定迭代后的均方差值 . (3) 样本文件 ( . pat ) : 训练样
图3 BP 算法框图
本文件 ,样本在 0 、 1 之间取值 . ( 4) 运行文件 ( . run) : 用于指定网络参数及训练任务 . ( 5) 输入权值文件 ( . wts) : 可人为给定也可用 weights. exe 产生随机的网络参数 .
用下面的指令 : weights. exe seed 2 2 1 生成的初始权值文件 xw. wts 为 0. 300000 0. 293664 0. 297620 0. 098907 0. 280041 0. 086566
fPat — 输入样本文件 fWtso — 权值文件输入 nIter — 迭代数目 ( 通常取 100~10 000) nHid — 隐层节点数 eta — 学习率 fWts — 权值文件输入 nPats — 要读入的样本数目 nInp — 输入层节点数 nOut — 输出节点数 alpha — 动量因子
© 1994-2009 China Academic Journal Electronic Publishing House. All rights reserved.
http://www.cnki.net
总第 93 期 海 军 工 程 大 学 学 报 2000 年第 4 期 ・1 7 ・
N
n=1
其中 ξ AN 为学习的目标函数 ,学习的目的是调整 w ji 使得ξ AN 达到最小 . ξ( n ) Π 当ξ wji = 0 ,5ξ( n) Π 5 wji ( n) → 0 ,而当 ξ 5 wji ( n ) | 增 AN 达到最小时 ,可认为 Δ AN 未达到最小时 ,| 5 大 ,则| △wji ( n) | 增大 ,| 5ξ( n) Π 5 wji ( n) | 减小 ,则 | △wji ( n ) | 减小 ,且 | △wji ( n ) | 按照 | 5ξ( n ) Π 5 wji ( n ) | 下降方向修正 . 设学习步长为 η,则由上分析可知 5 ej ( n) 5 yj ( n) 5υ ξ( n) j ( n) 5ξ( n) △wji ( n) = - η =- η ・ ・ ( ) ・ 5 wji ( n) 5 ej ( n) 5 yj ( n) 5υ n 5 wji ( n) j φ υ υ = - η ・ej ( n) ・( - 1) ・ ′ ej ( n) φ ′ j ( j ( n ) ) ・y j ( n ) = η j ( j ( n ) ) ・y j ( n ) υ υ 其中 δ ′ ′ j ( n ) = ej ( n ) φ j ( j ( n ) ) 称为局部梯度 ,为误差信号与 φ j ( j ( n ) ) 之积 . 下面分两种情况讨论 : ( 1) 当单元 j 是一个输出单元时 , δ υ δ ′ wji ( n) = η j ( n ) = ( dj ( n ) - y i ( n ) ) φ j ( j ( n) ) , △ j ( n) yj ( n) ( 2) 当单元 j 是一个隐单元 , k 为输出单元时 , ek ( n) = dk ( n) - y k ( n) = dk ( n) - φk (υ k ( n) ) , 5ξ( n) φ (υ ( ) ) 5ξ( n) φ (υ ( ) ) δ ′ n =- ∑ ek ( n ) ′ n j ( n) = j j 5 yj ( n) i j 5 yj ( n) k
单潮龙
1
①
②
,马伟明 ,贲可荣 ,张磊
2
3
4
( 1. 海军工程大学电气工程系 ,湖北 武汉 430033 ;2. 海军工程大学电力电子技术研究所 ,
湖北 武汉 430033 ;3. 海军工程大学管理工程系 ,湖北 武汉 430033 ; 4. 海军工程大学研究生 2 队 ,湖北 武汉 430033) 摘 要 : 简述了 BP 人工神经网络的算法原理 ,利用 Batchnet 程序对一个三层 BP 人工神经网 络进行了设计 ,应用 Matlab 中人工神经网络工具箱设计了一个用于函数逼近的 BP 人工神经 网络 ,最后 ,运用 Matlab 中可视化工具 Simulink 对一个 BP 人工神经网络例子进行了仿真 ,通过 例子 ,探讨了 BP 人工神经网络的应用并介绍目前几种实用的 BP 人工神经网络实现技术 . 关键词 : 反向传播学习算法 ; 人工神经网络 ; 仿真 ; 设计 ;Matlab ;Simulink 中图分类号 : TP183 文献标识码 : A
p
υ j ( n) =
i =0
∑w
ji
( n ) y i ( n)
经过作用函数 φj ( n ) 得到的单元 j 输出为 yj ( n ) υ =φ j ( j ( n ) ) ,该单元的误差信号为
ej ( n) = dj ( n) - yj ( n)
定义第 n 步迭代输出端总的平方误差为
2 图2 单元 j 的信号流图 ξ( n) = 1 ∑ e ( n) 2 j ∈c j 其中 C 包括所有的输出单元 . 设训练样本总数为 N ,则总的平方误差均值为 N 1 ξ ξ( n) AN = ∑
・16 ・
海 军 工 程 大 学 学 报 总第 93 期 2000 年第 4 期 JOURNAL OF NAVAL UNIVERSITY OF ENGINEERING
文章编号 :1009 - 3486 (2000) 04 - 0016 - 07
BP 人工神经网络的应用及其实现技术
的程序 ,软件执行文件为 Batchnet . exe ,它在 DOS 环境下运行 ,文件大小 34. 4k. 程序根据输入的样本对 网络进行训练 ,最后收敛后输出训练好的网络的所有权值. 原程序是在 80 × 87 仿真模式下编译的 ,我们 对它在 80 × 87 硬件模式下重新进行了编译 ,可以大大提高神经网络训练时的计算速度. 作者还给出了 一个用于进行权值随机初始化的程序 Weights. exe.
、 语音识别 、
目前已经出现了较多改进算法 ,其中 Leveberg2Marguarett 优化方法是最好的方法之一 .
[5]
2 应用 Batchnet 程序进行 BP 网络设计
Batchnet 是美国学者 Roy Dobbins 于 1990 年用 C 语言步编写的一个专用于设计标准的三层 BP 网络
为了便于操作 ,一般可编写一个批处理文件 ( ?. bat ) 如下 Batchnet - e10 ?. run
2. 4 用 Batchnet 分析 XOR 网络 ( 1) 网络参数的选取
对于前面所述的 XOR 网络选取有关参数如下 : 样本数 nPats = 20 ,迭代次数 nIter = 5000 ,隐层节点数 nHid = 2 ,输入层节点数 nInp = 2 ,输出层节 点数 nOut = 1 ,学习系数 eta = 0. 15 ,动量因子 alpha = 0. 075 ( 2) 初始权值的生成
2. 1 程序开关 (1) - e ?: 用于设定均方差
[6 ]
迭代输出显示的间隔 , 假定值为 100. (2) - d ?: 用于设置终止训 练的均方差 ,预定值为 0. 02 ,用 d0. 01 则均方差值为 0. 01.
2. 2 程序运行所需文件 (1) 输出文件 ( . out ) : 给出最
© 1994-2009 China Academic Journal Electronic Publishing House. All rights reserved. http://www.cnki.net
No. 4 ,2000 JOURNAL OF NAVAL UNIVERSITY OF ENGINEERING Sum No. 93 ・18 ・
路返回 ,即转入反向传播 ,通过修改各层神经元的权值 ,使得误差信号最小 . 为简单起见 ,考虑一个只有 一个输出 y 的 n 节点的网络 ,节点的作用函数为 Sigmoid 型 ,下面就逐个样本学习的情况来推导 BP 算 法 . 图 2 示出第 j 个单元接收到前一层信号并产 生误差信号的过程 . 在第 n 步迭代时 ,第 j 个单元受到的前一层信号 产生的净输入为
[1 ]
图1 XOR 函数的三层 NN 网络实现
部分组成 . 首先由正向传播过程开始 ,输入信息从输入层经隐单元层处理 ,并传向输出层 ,每一层神经元 的状态只影响下一层神经元的状态 . 如果在输出层不能得到预期的结果 ,则将输出误差沿原来的连接通
① ②
收稿日期 :2000 - 04 - 28 作者简介 : 单潮龙 (1964 - ) ,男 . 讲师 ,博士生 .
© 1994-2009 China Academic Journal Electronic Publishing House. All rights reserved. http://www.cnki.net
总第 93 期 海 军 工 程 大 学 学 报 2000 年第 4 期 ・1 9 ・
( 6) 输出权值文件 ( . wts) : 最后一次迭代后输出的权值文件 . 2. 3 程序用法
使用 Batchnet 程序前 ,需要事先编好运行文件 ,格式如下 :
fOur f Err fPat fWts fWtso nPats nIter nInp nHid nOut eta alpha
参数说明 : fOut — 输出节点文件 f Err — 误差输出文件
1 BP 人工神经网络及应用
反向传播学习算法人工神经网络 (BP 人工神经网络) 是 80 年代初发展起来的人工神经网络中最有 实用价值的部分之一 . 早在 1969 年 ,感知器的提出者 M. Misky 和 S. Papert 在他们的 Perceptron 专著中指 出 : 简单的线性感知器只能解决线性可分样本的分类问题 . 简单的线性感知器仅有一层计算单元 ,而要 实现对复杂函数的逼近 ,必须采用多层前馈网络 ,例如 ,我们考察 “异或”函数 ,若选用 M - P 模型 ,作 用函数为阈值函数 ,则其实现网络为三层前馈网络 ,包含有一层隐层 ,如图 1 所示 . 对这种多层网络 ,感知器无法解 决其隐层学习问题 , 限制了其发展 . 1988 年 Rumelhart 和 Mcclalland 提出 了多层前馈网络的反向传播算法 (BP 算法) , 解决了感知器不能解决的多 层网络学习算法的问题 ,其关键是引 入了反向传播的误差信号来解决学 习问题 . 算法的大致思路如下 : 对输入信号 ,首先向前传播到隐 节点 ,经过作用函数 ( 通常是 Sigmoid 函数) 后 , 再把隐节点输出信号传播 到输出节点 , 最后输出结果 . 算法的 学习过程由正向传播和反向传播两
=
e ∑
k k
( n) φ υ υ υ ′ w kjφ ′ ′ k ( k ( n) ) ・ j ( j ( n) ) = φ j ( j ( n) )
δ ( n) ・w ∑
k k
百度文库
kj
( n)
[2]
υ 可见 j 是一个隐单元时 ,δ ′ j ( n) 为 φ j ( j ( n ) ) 与后一层的 δ的加权和之积 .
后一 次 迭 代 后 每 个 输 出 节 点 的 值 ,对测试模式只有一次迭代 . (2) 误差文件 ( . err ) : 给出经 指定迭代后的均方差值 . (3) 样本文件 ( . pat ) : 训练样
图3 BP 算法框图
本文件 ,样本在 0 、 1 之间取值 . ( 4) 运行文件 ( . run) : 用于指定网络参数及训练任务 . ( 5) 输入权值文件 ( . wts) : 可人为给定也可用 weights. exe 产生随机的网络参数 .
用下面的指令 : weights. exe seed 2 2 1 生成的初始权值文件 xw. wts 为 0. 300000 0. 293664 0. 297620 0. 098907 0. 280041 0. 086566
fPat — 输入样本文件 fWtso — 权值文件输入 nIter — 迭代数目 ( 通常取 100~10 000) nHid — 隐层节点数 eta — 学习率 fWts — 权值文件输入 nPats — 要读入的样本数目 nInp — 输入层节点数 nOut — 输出节点数 alpha — 动量因子
© 1994-2009 China Academic Journal Electronic Publishing House. All rights reserved.
http://www.cnki.net
总第 93 期 海 军 工 程 大 学 学 报 2000 年第 4 期 ・1 7 ・
N
n=1
其中 ξ AN 为学习的目标函数 ,学习的目的是调整 w ji 使得ξ AN 达到最小 . ξ( n ) Π 当ξ wji = 0 ,5ξ( n) Π 5 wji ( n) → 0 ,而当 ξ 5 wji ( n ) | 增 AN 达到最小时 ,可认为 Δ AN 未达到最小时 ,| 5 大 ,则| △wji ( n) | 增大 ,| 5ξ( n) Π 5 wji ( n) | 减小 ,则 | △wji ( n ) | 减小 ,且 | △wji ( n ) | 按照 | 5ξ( n ) Π 5 wji ( n ) | 下降方向修正 . 设学习步长为 η,则由上分析可知 5 ej ( n) 5 yj ( n) 5υ ξ( n) j ( n) 5ξ( n) △wji ( n) = - η =- η ・ ・ ( ) ・ 5 wji ( n) 5 ej ( n) 5 yj ( n) 5υ n 5 wji ( n) j φ υ υ = - η ・ej ( n) ・( - 1) ・ ′ ej ( n) φ ′ j ( j ( n ) ) ・y j ( n ) = η j ( j ( n ) ) ・y j ( n ) υ υ 其中 δ ′ ′ j ( n ) = ej ( n ) φ j ( j ( n ) ) 称为局部梯度 ,为误差信号与 φ j ( j ( n ) ) 之积 . 下面分两种情况讨论 : ( 1) 当单元 j 是一个输出单元时 , δ υ δ ′ wji ( n) = η j ( n ) = ( dj ( n ) - y i ( n ) ) φ j ( j ( n) ) , △ j ( n) yj ( n) ( 2) 当单元 j 是一个隐单元 , k 为输出单元时 , ek ( n) = dk ( n) - y k ( n) = dk ( n) - φk (υ k ( n) ) , 5ξ( n) φ (υ ( ) ) 5ξ( n) φ (υ ( ) ) δ ′ n =- ∑ ek ( n ) ′ n j ( n) = j j 5 yj ( n) i j 5 yj ( n) k
单潮龙
1
①
②
,马伟明 ,贲可荣 ,张磊
2
3
4
( 1. 海军工程大学电气工程系 ,湖北 武汉 430033 ;2. 海军工程大学电力电子技术研究所 ,
湖北 武汉 430033 ;3. 海军工程大学管理工程系 ,湖北 武汉 430033 ; 4. 海军工程大学研究生 2 队 ,湖北 武汉 430033) 摘 要 : 简述了 BP 人工神经网络的算法原理 ,利用 Batchnet 程序对一个三层 BP 人工神经网 络进行了设计 ,应用 Matlab 中人工神经网络工具箱设计了一个用于函数逼近的 BP 人工神经 网络 ,最后 ,运用 Matlab 中可视化工具 Simulink 对一个 BP 人工神经网络例子进行了仿真 ,通过 例子 ,探讨了 BP 人工神经网络的应用并介绍目前几种实用的 BP 人工神经网络实现技术 . 关键词 : 反向传播学习算法 ; 人工神经网络 ; 仿真 ; 设计 ;Matlab ;Simulink 中图分类号 : TP183 文献标识码 : A
p
υ j ( n) =
i =0
∑w
ji
( n ) y i ( n)
经过作用函数 φj ( n ) 得到的单元 j 输出为 yj ( n ) υ =φ j ( j ( n ) ) ,该单元的误差信号为
ej ( n) = dj ( n) - yj ( n)
定义第 n 步迭代输出端总的平方误差为
2 图2 单元 j 的信号流图 ξ( n) = 1 ∑ e ( n) 2 j ∈c j 其中 C 包括所有的输出单元 . 设训练样本总数为 N ,则总的平方误差均值为 N 1 ξ ξ( n) AN = ∑
・16 ・
海 军 工 程 大 学 学 报 总第 93 期 2000 年第 4 期 JOURNAL OF NAVAL UNIVERSITY OF ENGINEERING
文章编号 :1009 - 3486 (2000) 04 - 0016 - 07
BP 人工神经网络的应用及其实现技术