BP学习算法
合集下载
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第六步,判断是否大于最大迭代次数,若大于转至第八步, 若不大于,对输入样本,反向计算每层神经元的局部梯度。 其中
pp (n) y p (n)(1 y p (n))(d p (n) y p (n)), p 1,2,...,P
p jJ (n) f (u J ( n )) p (n)w jp (n), j 1,2,...J j p 1 J p
MATLAB中BP神经网络的重要函数和基本功能 tansig()
功能 正切sigmoid激活函数 Hale Waihona Puke Baidu 格式 a = tansig(n) 说明 双曲正切Sigmoid函数把神经元的输入范围从(-∞,+∞)
映射到(-1,1)。它是可导函数,适用于BP训练的神经元。
logsig()
功能 对数Sigmoid激活函数 格式 a = logsig(N) 说明对数Sigmoid函数把神经元的输入范围从(-∞,+∞)映射
w11 (n) w12 (n)...w1P (n) w (n) w (n)...w (n) 22 2P ,为第n次迭代隐含层J与输出层之间的的权值向量。 WJP (n) 21 . w ( n ) w ( n )... w ( n ) J2 JP J1
j 1,2,...,M ; p 1,2,...,I
第八步,判断是否学完所有的训练样本,是则结束,否则 转至第三步。
神经网络学习的目的就是对某一特定的输入产生一个希望的 输出,这就需要网络不断的调整连接弧权值.一般来说,BP算法主要有以下几个步 骤: (1)初始化网络权值Wij、阈值θj,、学习因子η。 (2)对一些指标量纲不统一的训练样本我们可以对其进行归一化处理使其转化为统一 量纲的数据;但如果量纲统一与否对训练学习并无影响时,可以不作处理. (3)如果任意设置网络初始权值Wij 、阈值θj 、学习因子η ,那么对每个输入模式P, 网络实际输出(θpi)与期望输出(ypj)误差为:
六、误差E(n)的判断 顺序方式: E(n)
批处理方式:每个训练周期的平均误差Eav其变化量在0.1%1%之间。 七、训练样本的输入
在第一步设置时,一般是同一类的训练样本其期望输出相同。
八、输入信号归一化
使所有样本的输入信号其均值接近零或与其标准方差相比比 较小。归一化输入信号应注意: (1)用主向量分析法使训练样本的输入信号互不相关。 (2)归一化互不相关的输入信号,使得他们的方差基本相 同,从而是不同权值的学习速度基本相同。
二、当神经元的激励函数是sigmoid函数时,
应设期望值输出为相应的小数。
三、BP算法训练网络的方式:顺序方式和批
处理方式。
顺序方式:临时存储空间小,训练速度快 批处理方式:精确的计算梯度向量,误差收敛条件简单,易 与并行处理。 1 N 1 N P 2 Eav Ek ekp N k 1 2 N K 1 p 1
Yk (n) yk1 (n), yk 2 (n),...,ykp (n) , (k 1,2,...,N ) ,为第n次迭代是网络的实际输出。
dk dk1, dk 2 ,...,dkp , (k 1,2,...,N )
,为期望输出。
为学习效率。 n为迭代次数。
第二步,初始化,赋给 WM 1 (0),WIJ (0),WJP (0) 各一个较小的随机非零值,n=0。
第三步,随机输入样本 X k 第四步,对输入样本
X k ,前向计算BP网络每层神经元的输入信号u和输出信号v。
p 其中 vp (n) ykp (n), p 1,2....p
第五步,由期望值输出 dk 和上一步求得的实际输出 Yk (n) 计算误差 E(n), 判断是否满足要求,若满足转至第八步;不满足转至第六步。
其中: apj即是节点i的输出,又是节点j的输入; (5)对各连接权值Wjt按下面的公式进行修正:
其中:
BP学习注意的问题
一、BP学习时权值初始值的选择
初始值应选为均匀分布的小数经验值,大概为(-2.4/F,2.4/F) 之间。并将初始权值设为随机数。 用matlab可用以下语句
W1( 0) =rand( , )
则总误差为:
如果总误差IEI≤£时,e>0,则学习成功,算法结束;否则,进行下一步.
(4)对样本集中各个样本依次重复(4),(5)步,然后转入步3. 设学习样本集包括M个样本模式(xk,yk),设节点i是节点j的上一层节点;Wji为 节点i,J之间的连接权值; θj为节点j的阈值.对第P(P=1,2,⋯,M)个学习样 本(xk,yk) ,对应j的输入总和记为apj输 出记为QpJ,则:
九、在学习过程或中可以利用out(.)的先验
知识,加快学习效率。
BP神经网络的特点
非线性映射能力
能学习和存贮大量输入-输出模式映射关系,而无需事先了解描述 这种映射关系的数学方程。只要能提供足够多的样本模式对供网 络进行学习训练,它便能完成由n维输入空间到m维输出空间的非 线性映射。
泛化能力
判断是否转入反向传播阶段: 若输出层的实际输出与期望的输出(导师信号)不符
误差反传 误差以某种形式在各层表示----修正各层单元的权值
网络输出的误差减少到可接受的程度
进行到预先设定的学习次数为止
BP学习的具体算法步骤
第一步:设置变量和参量
X k xk1 , xk 2 ,...,xkm , (k 1,2,...,N ) ,为输入向量,或训练样本,N为训练样本的个数。
iI (n) f (uiI (n)) jJ (n) wij (n),i 1,2,...,I
j 1
第七步,按下式计算权值修正量,并修正权值;n=n+1,转至 第四步。
P wjp (n 1) wjp (n) wjp (n) j 1,2,...,J ; p 1,2,...,P wjp (n) p (n)v J j (n)
wij (n) jJ (n)viI (n) wij (n 1) wij (n) wij (n) j 1,2,...,I ; p 1,2,...,J
wmi (n) iI (n) xkm (n) wmi (n 1) wmi (n) wmi (n)
BP网络的标准学习算法-算法思想
学习的类型:有导师学习 核心思想: 将输出误差以某种形式通过隐层向输入层逐层反传
将误差分摊给各层的所有 单元---各层单元的误 差信号
学习的过程:
修正各单元权 值
信号的正向传播
误差的反向传播
BP网络的标准学习算法-学习过程
正向传播: 输入样本---输入层---各隐层---输出层
BP学习算法
-------尹阳阳,魏永强,陈泽浩,
贾炎超,刘志鹏
反向传播算法人工神经网络(BP人工神经网络)是80年代初发展起来的人工神 经网络中最有实用价值的部分之一。早在1969年,感知器的提出者 M. Misky 和S. Papert 在他们的Perceptron 专著中指出:简单的线性感知器只 能解决线性可分样本的分类问题。简单的线性感知器仅有一层计算单元,而 要实现对复杂函数的逼近,必须采用多层前馈网络。于1988年Rumelhart 和 Mcclalland 提出了多层前馈网络的反向传播算法(BP算法),解决了感知器不 能解决的多层网络学习算法的问题,其关键是引入了反向传播的误差信号来 解决学习问题。 反向传播算法在多层前馈神经网络上学习,这种神经网络 的一个例子如图所示:
MATLAB中BP神经网络的重要函数和基本功能
newff()
功能 建立一个前向BP网络
格式 net = newff(PR,[S1 S2...SN1],{TF1
TF2...TFN1},BTF,BLF,PF) 说明 net为创建的新BP神经网络;PR为网络输入 取向量取值范围的矩阵;[S1 S2…SNl]表示网络隐 含层和输出层神经元的个数;{TFl TF2…TFN1}表 示网络隐含层和输出层的传输函数,默认为 ‘tansig’;BTF表示网络的训练函数,默认为 ‘trainlm’;BLF表示网络的权值学习函数,默认为 ‘learngdm’;PF表示性能数,默认为‘mse’。
当向网络输入训练时未曾见过的非样本数据时,网络也能完成由 输入空间向输出空间的正确映射。这种能力称为泛化能力。
容错能力
输入样本中带有较大的误差甚至个别错误对网络的输入输出规律影 响很小。
BP神经网络学习算法的MATLAB实现
MATLAB中BP神经网络的重要函数和基
本功能
函数名 newff() tansig() logsig() traingd() 功 能 生成一个前馈BP网络 双曲正切S型(Tan-Sigmoid)传输函数 对数S型(Log-Sigmoid)传输函数 梯度下降BP训练函数
w11 (n) w12 (n)...w1I (n) w (n) w (n)...w (n) 22 2I 为第n次迭代输入层与隐含层I之间的的权值向量。 WMI (n) 21 . w ( n ) w ( n )... w ( n ) M2 MI M1
w11 (n) w12 (n)...w1J (n) w (n) w (n)...w (n) 22 2J ,为第n次迭代隐含层I与隐含层J之间的的权值向量。 WIJ (n) 21 . w ( n ) w ( n )... w ( n ) I2 IJ I1
含有两个隐含层的BP网络
Wmi Wij Wjp
x1
Y1
x2
Y2
xm
i=(1,2,….J) j=(1,2,…J)
yp
BP网络的标准学习算法
学习的过程:
神经网络在外界输入样本的刺激下不断改变网络的连接权 值,以使网络的输出不断地接近期望的输出。
学习的本质:
对各连接权值的动态调整
学习规则:
权值调整规则,即在学习过程中网络中各神经元的连接权 变化所依据的一定的调整规则。
到(0,1)。它是可导函数,适用于BP训练的神经元。
谢谢大家!
四、学习步长 的选择
过大或过小都不好,关系着权值的变化和BP的收敛速度,过 大会引起振荡。通常调整 值使网络中和各神经元的学习速 度相差不多。还可以通过加入“动量项”的方法。
五、局部梯度的计算,需要激励函数的导数。
通常选奇函数作为激励函数,非线性的sigmoid函数,有两 种形式:逻辑函数和双曲正切函数