5.第6章 BP神经网络
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
(1)需要的参数较多,且参数的选择没有有效的方法。隐含
层结点个数。
(2)容易陷入局部最优。 (3)样本依赖性。如果样本集合代表性差、矛盾样本多、存在
冗余样本,网络就很难达到预期的性能
(4)初始权重敏感性。训练的第一步是给定一个较小的随机
初始权重,由于权重是随机给定的,BP网络往往具有不可重现性。
5.BP网络相关函数详解
BP神经网络来说,由于传递函数都是可微的,因此能满足最速 下降法的使用条件。
2.BP网络的学习算法
最速下降BP法
X1 X2
. . . . . .
mi
K1
ij
1.工作信号正向传播
Y1 YJ
1 J 2 en ej n 2 j 1
K2
2.误差信号反向传播
XM
输入层
ij n Jj vIi n
n 1 e n n 1
本次权值的更新方向和幅度不但与本次计算所得的梯度有关,还与 上一次更新的方向和幅度有关 (1)如果前后两次计算所得的梯度方向相同,得到的权值较大,可 以加速收敛过程 。 (2)如果前后两次计算所得梯度方向相反,则说明两个位置之间可 能存在一个极小值,可以得到一个较小的步长,更容易找到最小值 点,而不会陷入来回振荡
KI
输出层
隐含层
隐含层传递函数为Sigmoid函数, 输出层传递函数为线性函数
权值调整量=
学习率 * 局部梯度 * 上一层输出信号
2.BP网络的学习算法
当输出层传递函数为线性函数时,输出层与隐含层之间权值调整的 规则类似于线性神经网络的权值调整规则。
BP网络的复杂之处在于,隐含层与隐含层之间、隐含层与输入层之 间调整权值时,局部梯度的计算需要用到上一步计算的结果。前一层的 局部梯度是后一层局部梯度的加权和。 因此,BP网络学习权值时只能从后向前依次计算。
f n
e n
1 e
n 2
1 1 1 f n 1 f n n n 1 e 1 e
% logsig函数 % logsig函数的导数
>> dy=dlogsig(x,y); >> subplot(211) >> plot(x,y); >> title('logsig') >> subplot(212); >> plot(x,dy); >> title('dlogsig')
F :权值输入端连接的神经元个数
3.设计BP网络的方法
确定以上参数后,将训练数据进行归一化处理,并输入网络中进 行学习,若网络成功收敛,即可得到所需的神经网络。
4.BP神经网络的局限性
BP网络具有实现任何复杂非线性映射的能力,特别适合求 解内部机制复杂的问题 ,但BP网络也具有一些难以克服的 局限性
1.BP神经网络的结构
X1 Y1 X2
. . . . . .
YN
XN
输入层 隐藏层 输出层
网络由多层构成,层与层之间全连接,同一层之间的神经元无 连接 。
包含一个多多个隐层,可以实现复杂的映射关系。
1.BP神经网络的结构
BP网络的传递函数必须可微。BP网络一般使 用Sigmoid函数或线性函数作为传递函数。
2.BP网络的学习算法
学习率可变的BP算法: 当误差以减小的方式趋于目标时,说明修正方向是正 确的,可以增加学习率; 当误差增加超过一定范围时,说明前一步修正进行地 不正确,应减小步长,并撤销前一步修正过程。
kinc n e n 1 e n n 1 kdec n e n 1 e n
第6章 BP神经网络
编 者
Outline
1.BP神经网络的结构 2.BP网络的学习算法 3.设计BP网络的方法 4.BP神经网络的局限性 5.BP网络相关函数详解 6.BP神经网络应用实例
1.BP神经网络的结构
BP神经网络是包含多个隐含层的网络,具备处理线性不可 分问题的能力。
误差反向传播算法(Error Back Propagtion,BP),解决了 多层神经网络的学习问题。
是一种多层前向网络,又叫多层感知器 。 BP网络是前向神经网络的核心部分,也是整个人工神经网络 体系中的精华,广泛应用于分类识别、逼近、回归、压缩等领域。 在实际应用中,大约80%的神经网络模型采取了BP网络或BP网 络的变化形式。
2
2
根据梯度值可以再函数中画出一系列的等值线或等 值面,在等值线或等值面上函数值相等。梯度下降法相 当于沿着垂直于等值线方向向最小值所在位置移动。
2.BP网络的学习算法
(1)目标函数必须可微 。 (2)如果最小值附近比较平坦,算法会在最小值附近停留很久, 收敛缓慢。
“之”字形下降
(3)对于包含多个极小值的函数,所获得的结果依赖初始值。算 法有可能陷入局部极小值点,而没有达到全局最小值点。
Sigmoid函数是光滑、可微的函数,在分类时它比线性函数更 精确,容错性较好。 将输入从负无穷到正无穷的范围映射到0~1或-1~1区间内,具 有非线性的放大功能。
1.BP神经网络的结构
X1
BP网络采用误差反向传播算法 (Back-Propagation Algorithm)进行学习。 在BP网络中,数据从输入层经隐含层逐层 向后传播,训练网络权值时,则沿着减少 误差的方向,从输出层经过中间各层逐层 向前修正网络的连接权值。
BP神经网络属于多层前向网络,工作信号始终正向流动,没有反馈结构。
2.BP网络的学习算法
BP学习算法的原理与LMS算法比较类似,属于最速下降 法。
最速下降法
最速下降法可以求某指标(目标函数)的极小值,若将 目标函数取为均方误差,就得到了LMS算法。 对于实值函数 F x ,如果在某点 x 0处有定义且可微,则 函数在该点处沿着梯度相反的方向 F x0 下降最快。因此, 使用梯度下降法时,应首先计算函数在某点处的梯度,再沿 着梯度的反方向以一定的步长调整自变量的值。
S:标量或向量,用于指定隐含层神经元个数,若隐含层多于一层,则写成行向量 的形式。
旧版语法格式net=newff(P,N,TF,BTF) : P表示输入向量的典型值, N为各层神经元的个数, TF为表示传输函数的细胞数组,
BTF为训练函数
串行方式 。在线方式,网络每获得一个新样本,就计算一次 误差并更新权值,直到样本输入完毕。 随机输入样本,不容易 陷入局部最优陷阱。 批量方式 :离线方式。网络获得所有的训练样本,计算所有 样本均方误差的和作为总误差 。 容易并行化,速度快。
2.BP网络的学习算法
动量BP法
在标准BP算法的权值更新阶段引入动量因子 , 使权值修正值具有一定惯性:
函数名称 logsig tansig 功能 Log-Sigmoid函数 Tan-Sigmoid函数
newff
feedforwardnet newcf cascadeforwardnet newfftd
创建一个BP网络
创建一个BP网络(推荐使用 ) 创建级联的前向神经网络 创建级联的前向神经网络( 推荐使用) 创建前馈输入延迟的BP网络
% Tag-Sigmoid函数
>> title('Tan-sig 函数') >> xlabel('x') >> ylabel('y') >> grid on
5.BP网络相关函数详解
dlogsig/dtansig——Sigmoid函数的导数
1 f n 1 e n
>> x=-4:.1:4; >> y=logsig(x);
Tan-Sigmoid Function
Log-Sigmoid Function 1.5
1.5
1 f x 1 e x
1
1
0.5
0.5
0
y
0
y
-4 -2 0 x 2 4 6
-0.5
-0.5
-1
-1
-1.5 -6
-1.5 -6
-4
-2
0 x
2
4
6
Log-Sigmoid
Tan-Sigmoid
5.BP网络相关函数详解
tansig——Tan-Sigmoid传输函数 tansig 是双曲正切Sigmoid函数,调用形式与logsig函 数相同。取值范围: 1,1
2 tansig n 1 2 n 1 e
>> x=-4:.1:4;
>> y=tansig(x);
>> plot(x,y,'^-r')
拟牛顿法 。牛顿法具有收敛快的优点,但需要计算误 差性能函数的二阶导数,计算较为复杂。拟牛顿法只需要知 道目标函数的梯度,通过测量梯度的变化进行迭代,收敛速 度大大优于最速下降法。拟牛顿法有DFP方法、BFGS方法、 SR1方法和Broyden族方法。
C
i 0
n
Hale Waihona Puke Baidu
i M
k
3.设计BP网络的方法
Y1 X2
. . . . . .
YN
XN
输入层 隐藏层 输出层
“误差反向传播” :误差信号反向传播。修正权值时,网络根据误差从 后向前逐层进行修正。 “反馈神经网络” :输出层的输出值又连接到输入神经元作为下一次计 算的输入,如此循环迭代,直到网络的输出值进入稳定状态为止。在本书后面 的章节中会专门介绍反馈神经网络,包括Hopfield网络、Elman网络等。
i C M k i 0 n
样本数
M log 2 n
M nm a
3.设计BP网络的方法
输出层神经元个数 输出层神经元的个数同样需要根据从实际问题中得到的抽象 模型来确定。在模式分类问题中,如果共有 n 种类别,则输出可 以采用n个神经元 。
也可以将节点个数设计为 log 2 n 个, x 表示最小的不小于 的整数。 由于输出共有 4 种情况,因此采用二维输出即可覆盖整个输出空 间,00、01、10和11分别表示一种类别。 传递函数的选择 一般隐含层使用Sigmoid函数,而输出层使用线性函数。如果输 出层也采用Sigmoid函数,输出值将会被限制在 0~1或-1~1之间。
5.BP网络相关函数详解
logsig——Log-Sigmoid传输函数 Log-Sigmoid函数的特点是 , 范围的数据被映射到区间 0,1
1 logsig n 1 e n
可以使用下面的代码将神经网络节点的传 输函数定义为Log-Sigmoid函数: net.layers{i}.transferFcn=’logsig’;
5.BP网络相关函数详解
newff——创建一个BP网络: 新版语法net=newff(P,T,S) P:R*Q1矩阵,表示创建的神经网络中,输入层有R个神经元。每行对应一个神经 元输入数据的典型值,实际应用中常取其最大最小值。 T:SN*Q2矩阵,表示创建的网络有SN个输出层节点,每行是输出值的典型值
x
3.设计BP网络的方法
训练方法的选择 使用LM算法收敛速度最快,均方误差也较小。 LM 算法对于模式识别相关问题的处理能力较弱,且需要 较大的存储空间
模式识别问题,使用RPROP算法能收到较好的效果 SCG算法对于模式识别和函数逼近问题都有较好的 性能表现。 初始权值的确定
通常将初始权值定义为较小的非零随机值,经验值为 2.4 / F ,2.4 / F
BP网络的设计主要包括网络层数、输入层节点数、隐含层节 点数、输出层节点数及传输函数、训练方法、训练参数的设 置等几个方面。 1.网络层数。对于大部分应用场合,单个隐含层即可满足需要
2.输入层节点数。输入层节点数取决于输入向量的维数。 如果输入的是的图像,则输入向量应为图像中所有的像素形成的 4096 维向量。 如果待解决的问题是二元函数拟合,则输入向量应为二维向量。 3.隐含层节点数 。较多的隐含层节点数可以带来更好的性能,但可能 导致训练时间过长 。经验公式: 输入层结点数
x1 x0 F x0
当步长足够小时
F x1 F x0
求得函数最小值
反复迭代 F xn1 F xn L F x1 F x0
2.BP网络的学习算法
最速下降法 实例:求函数的最小值
z x 2 y / 2 1.2