神经网络PPT
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
②Tansig双曲正切S型(sigmoid)传递函数。双曲正切sigmoid函数用 于将神经元的输入范围为(一∞,+ ∞)映射到(一1,+1)。正切sigmoid函 数是可微函数,因此很适合于利用BP算法训练神经网络。函数表达式为: tansig(n)=tanh(n) tansig(n)函数对网络输入矢量n的所有元素求正切sigmoid函数 tansig(z,b)函数用于成批处理矢量,并且提供阈值的情况,这时阈值 b与加权输入矩阵z是区分的,阈值矢量b加到z的每个矢量中去,以形成 网络的输入矩阵,然后利用正切sigmoid函数将网络输入转换成输出 tansig(p)函数中,P指出传递函数特性的名称,调用后可得到所询问 的特性,即 tansig(‘delta ‘)指出delta函数名称 tansig(‘init ‘)指出标准初始化函数名称 tansig(’name ‘)指出传递函数的全称 tansig(‘output ‘)指出包含传递函数最大和最小输出值的二元矢量
2)δ(Delta)函数 ①deltalin纯线性(purelin)神经元的δ函数。通常的反向传播算法(BP) 是利用网络误差平方和对网络各层输入的导数来调整其权值和阈值,从 而降低误差平方和。从网络误差矢量中可推导出输出层的误差导数或 δ(delta)矢量,隐层的δ矢量可由下一层的δ矢量导出,这种δ矢量的反向 传播正是BP算法的由来. deltalin(a)可计算出这一层输出对本层输出的导数,参数矩阵a为纯线 性层的输出矢量. deltalin(a,e)可计算出线性输出层的误差导数,参数矩阵a和e分别为 该层的输出矢量和误差. deltalin(a,d2,w2)可计算出线性隐层的误差导数,参数矩阵a为纯线 性层的输出矢量,d2为下一层的δ矢量,w2为与下一层的连接权值.
③logsig对数S型(sigmoid)传递函数。对数sigmoid函数用于将神经元 的输入范围(一∞ ,+ ∞)映射到(0,+1)的区间上,对数sigmoid函数是可微 函数,因此很适合于利用BP算法训练神经网络。函数表达式为:
1 log sig n 1 e n
logsig(n)函数对网络输入阵n的所有元素求对数logmoid函数. logsig(z,b)函数用于成批处理矢量,并且提供阈值的情况,这时阈值b 与加权输入矩阵Z是区分的,阈值矢量b加到Z的每个矢量中去,以形成网 络的输入矩阵,然后利用对数sigmoid函数将网络输入转换成输出. logsig(p)函数中,P指出传递函数特性的名称,调用后可得到所询问的 特性,即 logsig(’delta ‘)指出delta函数名称. logsig(‘init ‘)指出标准初始化函数名称. logsig(‘name ‘)指出传递函数的名称. logsig(‘output ‘)指出包含传递函数最大和最小输出值的二元矢量.
i
j
3)阀值修正
k 1 k
i i i
3、MATLAB神经网络工具箱中的BP网络
(1)BP网络中的神经元模型 下图给出了一个基本的神经元模型,它具有R个输入, 每个输入都通过一个适当的权值 与神经元相连,神经元 的输出可表示成
a
f p, b
BP网络中基本神 经元的激活函数必须 处处可微,所以,经 常使用的是S型的对 数或正切激活函数或 线性函数。
tp为可选训练参数,其作用是设定如何进行训练,具体如下: tp(1) 显示间隔次数,其缺省值为25; tp(2) 最大循环次数,其缺省值为100; tp(3) 目标误差,其缺省值为0.02; tp(4) 学习速率,其缺省值为0.01. 值得注意,当指定了tp参数时,任何缺省或NaN值都会自动取其缺省 值. 一旦训练达到了最大的训练次数,或者网络误差平方和降到期望误差之 下时,都会使网络停止学习。学习速率会影响权值与阈值更新的比例,较 小的学习速率会导致学习时间增长,但有时可避免训练过程发散. 调用trainbp函数可得到新的权值矩阵w、阈值矢量b、网络训练的实际训 练次数te及网络训练误差平方和的行矢量tr. 对于多层网络,在调用trainbp函数时,可得到各层的权值矩阵及各层的 阈值矢量.
(2)BP网络结构 典型的BP网络结构如下图。BP网络通常有一个或多个 隐层,隐层中的神经元均采用S型变换函数,输出层的神 经元采用纯线性变换函数。
(2)MATLAB中有关BP网络的重要函数 1)神经元上的传递函数
①purelin利用Widrow—Hoff或BP算法训练的神经元的传递函数经常 采用线性函数。神经元可采用的最简单的函数,即线性函数,它只是简单 地将神经元输入经阈值调整后传递到输出。 purelin(n)函数可得到输入矢量为n时网络层输出矩阵。 purelin(z,b)函数可用于成批处理矢量,并且提供阈值的情况。这时阈 值矢量b与加权输入距阵z是区分的。阈值矢量b加到z的每个矢量中去,以 形成网络的输人矩阵,调用后得到的结果为矩阵。 purelin(p)函数中,P指出传递函数特性的名称,调用后可得到所询问的 特性,即: purelin(’delta ‘)指出delta函数名称。 purelin(‘init’)指出标准初始化函数名称。 purelin(‘name ‘)指出传递函数的全称。 purelin(‘output ‘)指出包含传递函数最大和最小输出值的二元矢量。
2
(2)输出层(隐节点到输出节点间)的修正公式 1)误差控制 所有样本误差:
E ek , 其中一个样本误差
k 1 p
ek t l ol
l 1
n
k
k
2)误差公式: l tl ol ol 1 ol 3)权修正值: T li k 1 T li k l yi 其中k为迭代次数
(1)输出节点的输出计算公式 1)隐节点的输出:
f yi wij x j i f net i j
其中
net w x
i j ij j
i
2)输出节点的计算输出:
f f net l ol T li yi l i
其中
net T y
l i li i
l
3)输出节点的误差公式:
2 1 1 E t l ol t l 2 l 2 l
பைடு நூலகம்
f T li yi l i
2
1 tl 2 l
f f w x T li ij j i l j i
BP网络主要用于: 1)函数逼近:用输入矢量和相应的输出矢量训练一个网络 逼近一个函数; 2)模式识别:用一个特定的输出矢量将它与输入矢量联系 起来; 3)分类:把输人矢量以所定义的合适方式进行分类; 4)数据压缩:减少输出矢量维数以便于传输或存贮.
1、BP网络结构
1)多层网络结构 多层BP网络不仅有输入节点、输出节点,而且有一层 或多层隐节点,如下图:
②deltalog对数S型(logsig)神经元的δ函数。 deltalog(a)可计算出这一层输出对本层输出的导数,参数矩阵a为对数S型 层的输出矢量. deltalog(a,e)可计算出logsig输出层的误差导数,参数矩阵a和e分别为该 层的输出矢量和误差. dehalog(a,d2,w2)可计算出logsig隐层的误差导数,参数矩阵a为对数s型 层的输出矢量,d2为下一层的δ矢量,w2为与下一层的连接权值. ③deltatan正切S型(tansig)神经元的δ函数. deltatan(a)可计算出这一层输出对本层输出的导数,参数矩阵a为正切S型 层的输出矢量. dehatan(a,e)可计算出tansig输出层的误差导数,参数矩阵a和e分别为该 层的输出矢量和误差. deltatan(a,d2,w2)可计算出tansig隐层的误差导数,参数矩阵a为正切S 型层的输出矢量, d2为下一层的δ矢量,w2为与下一层的连接权值.
BP神经网络的讲解
BP神经网络
1986年Rumelhart等提出了多层前馈网络误差反向传播(Error Back Propa—gation,简称BP)算法,通过数学上的详细分析和完整 的推导,系统地解决了多层神经元网络中隐层单元连续权的学习问题, 从而用BP算法克服了简单感知器不能解决的XOR和其他一些问题。 因为多层前馈网络的训练经常采用误差反向传播算法,所以通常人们 都将多层前馈网络直接称为BP网络。由于BP算法得到广泛的使用, BP模型已成为神经网络的重要模式之一。 BP网络学习方法的基本思想是将训练过程分为两个阶段,第一阶 段正向传播,输入信息从输入层经隐含层单元处理后传向输出层,每 一层神经元的状态只影响下一层神经元状态。倘若在输出层得不到希 望的输出,则转入第二阶段反向传播,将误差信号沿原来的神经元连 接通路返回。通过修改各层神经元的权值,逐次地向输入层传播进行 计算。这样,反复地运用这两个过程,使得误差信号最小,最后使得 信号误差达到允许的范围之内,网络就结束学习训练过程。
3)基本函数 ①initff前向网络初始化. 语法格式: [ w,b]=initff(p,S,f) [w1,b1,w2,b2]=initff(p,s1,f1,S2,f2) [w1,b1,w2,b2,w3,b3]=initff(p,S1,f1,S2,f2,S3,f3) [w,b]=initff(p,S,t) [w1,b1,w2,b2]=initff(p,S1,f1,S2,t2) [w1,b1,w2,b2,w3,b33=initff(p,S1,f1,S2,f2,S3,t3) initff(p,S,f)可得到S个神经元的单层神经网络的权值和阈值,其中P 为输入矢量,f为神经网络层间神经元的传递函数。 值得注意:P中的每一行中必须包含网络期望输入的最大值和最小值,这样 才能合理地初始化权值和阈值. initff可对至多三层神经网络进行初始化,可得到每层的权值及阈值. 此外,initff也可用目标矢量t代替网络输出层的神经元数,这时输出层 的神经元数目就为t的行数.
②simuff前向网络仿真. 语法格式: simuff(p,w1,b1,f1) simuff(p,w1,b1,f1,w2,b2,f2) simuff(p,w1,b1,f1,w2,b2,f2,w3,b3,f3) 前向网络由一系列网络层组成,每一层都从前一层得到输入数据,simuff函 数可仿真至多三层的前向网络. ③trainbp利用BP算法训练前向网络. 语法格式: [w,b,te,tr]=trainbp(w,b,’f’,P,t,tp) [w1,b1,w2,b2,te,tr]=trainbp(w1,b1,’f1 ‘,w2,b2,’f2 ‘,P,t, tp) [w1,b1,w2,b2,w3,b3,te,tr]= trainbp(w1,b1,‘f1 ’,w2,b2, ‘f2’,w3,b3,‘f3 ’,P,t,tp) 利用BP算法训练前向网络,使网络完成函数逼近、矢量分类及模式识别。 [w,b,te,tr]=trainbp(w,b,’f ‘,P,t,tp)利用单层神经元连接的权值矩阵w, 阈值矢量b及传递函数f成批训练网络,使当输入矢量为P时,网络的输出为目标 矢量矩阵t.
其中p为样本数,n为输出节点数
4)阀值修正:
k 1 k n
l l l
(3)隐节点层(输入节点到隐节点间)的修正公式 1)误差控制
y 1 y T
i i i l i
ij ij
li
2)权值修正
k 1 k x
2)传递函数一般为(0,1)S型函数:
f ( x) 1 1 e
x
3)误差函数 对第P个样本误差计算公式为:
E
p
t pio pi
i
2
2
式中tpi,opi分别为期望和网络的计算 输出
2、BP网络学习公式
网络学习公式推导的指导思想是,对网络权值(ωij, Tli)的修正与阈值(θ)的修正,使误差函数(E)沿负梯度方 向下降。BP网络三层节点表示为,输入节点: xj ,隐节 点: yi ,输出节点: ol 输入节点与隐节点间的网络权值为ωij ,隐节点与输 出节点间的网络权值为Tli 。当输出节点的期望输出为tl时, BP模型的计算公式如下: