BP神经网络算法学习
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
y j f (s j )
Βιβλιοθήκη Baidu
• BP神经网络选取sigmoid函数作为转移函数是因为sigm oid函数的输出接近生物神经元的信号输出形式,能够 模拟生物神经元的非线性特征。同时,sigmoid函数具 有的非线性特征也能够增强神经网络的非线性映射能 力。
1 e
s j
Sigmoid函数特性
1.Sigmoid函数的输出曲线。 2.L2层各个处理单元的阈值 j 是为模拟生物神经元的动作电 位设置的。
BP算法存在的问题
• 学习算法的收敛速度慢。影响BP学习算法收 敛速度的关键之一就是学习速率。 • 存在局部极小点。影响Bp学习算法产生局部 极小点的关键因素之一是初始连接权值 。 • 隐含层层数及节点数的选取缺乏理论指导。 • 训练时学习新样本有遗忘旧样本的趋势。Bp 神经网络的学习与记忆具有不确定性。 针对Bp神经网络的这些问题,研究人员投入 了大量的精力,对其性能的改善进行了大量 的研究工作,并提出了许多改进方案。
• BP神经网络随着误差反向传播不断的进行修正, 从而不断提高对输入模式识别的正确率,因此, BP神经网络采用的学习算法称之为误差反向传 播算法,是一种误差函数按梯度下降的学习方 法。
误差反向传播神经网络处理单元模型
x1
x2 x3
w1 j
w2 j w3 j
j
j
yj
„
wnj
xn
L1 L2 图:BP神经网络的处理单元
误差反向传播神经网络结构
输入层节点 隐含层节点 输出层节点
输 入 信 号
输 出 结 果
修改权值阈值
修改权值阈值
教师信号
图:三层BP神经网络结构
误差反向传播神经网络结构
• BP神经网络的训练过程也就是“正向计算输 出——反向传播误差”的过程不断重复进行, 直至误差降低到可以接受的范围,BP神经网络 的学习训练过程也就随之结束。
误差反向传播学习算法的数学基础
• 同理,由输入层至隐含层之间的连接权值也应给予误差按梯度下 E k 降的原则,按照右式进行调整: wij wij 定义输出层各个神经元的校正误差
由上式和 可得
k
E k E k ctk d k k k ( ytk ctk ) f '(ltk ) lt ct lt
BP反向传播神经网络
管理学院 王萱
讲课目录
• • • • • • • 1.误差反向传播神经网络的提出 2.误差反向传播神经网络结构 3.误差反向传播神经网络处理单元模型 4.误差反向传播学习算法 5.误差反向传播学习算法的数学基础 6.误差反向传播学习算法的改进 7.小结
误差反向传播神经网络的提出
…
误差反向传播神经网络处理单元模型
• 连接权向量为W={wij}i=1,2,3,4,…n,j=1,2,…P。 • L1层的n个处理单元的输出构成了L2层各个处理单元的 T 输入列向量 X ( x1 ,, xi , xn )。 • L2层各个处理单元的阈值为 j ,j=1,2,……p。 n • L2层各个处理单元接收的输入加权和为S j xi wij , j i 1 j=1,2,…P。 • L2层各个处理单元的输出由转移函数决定。sigmoid函 数作为转移函数,数学表达式为 f ( x) 1 x ,L2层各 个处理单元的输出为 1 1 e
3.Sigmoid函数的一阶导数为
'
1 1 e x x f ( x) e (1) f ( x)[1 f ( x)] x 2 x x (1 e ) 1 e 1 e
误差反向传播学习算法
开始 连接权值及阈值初始化
1
调整隐含层至输出层之间的连接 权值及输出层各个单元的阈值
• 单层感知机模型及其学习算法的提出,曾经使人工神经网络的研究迈出了历 史性的一步,但它只能对线性分类模式进行识别,对非线性模式的识别则无 能为力。 • 造成单层感知机模型不具有非线性分类能力的主要原因是由于没有隐含层对 输入模式进行内部表示 ,在输入层和输出层之间增加一个或多个隐含层,即 形成多层感知机模型,解决“异或”这样一些简单的非线性分类问题,提高 神经网络模型的分类能力,但是由于多层感知机模型采用的是单层感知机模 型的学习算法,隐含层神经元不具备学习能力,存在很大的局限性 。 • 1986年,以Rumelhart和McCelland为首的科学界小组在《并行分布式处理》 一书中,对误差反向传播算法进行了详尽的分析与介绍,并对BP算法的潜在 能力进行了深入探讨,实现了当年Minsky关于多层神经网络的设想。 • BP算法采用非线性连续变换函数,使隐含层神经元有了学习能力。其基本思 想直观,易于理解,数学意义明确、步骤分明,一经提出就被广泛的接受, 因此多层神经网络的训练采用了该算法。人们通常将采用误差反向传播学习 算法的多层感知机模型称为误差反向传播神经网络。
1
结束
误差反向传播学习算法
• BP神经网络采用BP算法进行学习,其学习过程分四个阶段: “模式顺传播”过程; “误差逆传播”过程; “记忆训练” 过程; “学习收敛”过程。 以三层BP神经网络为例,介绍标准的BP算法 k k k k T 输入模式向量为 X ( x1 , x2 , xn ) (k 1, 2, m) k k k k T 对应输入模式的期望输出向量为 Y ( y1 , y2 , yq ) k k S k ( s1k , s2 , s k )T 输出向量B k (b1k , b2k ,bp )T 中间隐含层净输入向量 p k k k k Lk (l1k , l2 , lq )T实际输出向量为 C k (c1k , c2 ,cq )T 输出层净输入向量 输入层至隐含层的连接权值 W {wij }(i 1, 2,n, j 1, 2, p) 隐含层至输出层的连接权值 V {v jt }( j 1, 2, p, t 1, 2,q) 隐含层各个单元的阈值为 { j }( j 1, 2, p) 输出层各个单元的阈值为 { t }(t 1, 2, q)
以上学习步骤中 3~5为输入学习模式的顺传播过程 6~9为网络误差的逆传播过程 10为完成训练 11~12为收敛过程
BP学习算法需要注意的问题
• • 学习模式对中的期望输出是对模式分类的一种表示。 误差逆传播过程是输出层误差向隐含层传递的过程,并且每一个隐含层处理 单元的校正误差都是由q个输出层处理单元传递过来的校正误差综合作用产 生的。 训练过程是一个不断重复进行的学习过程,每次学习时都要根据期望输出和 网络实际输出之间的误差值调节各层之间的连接权值和阈值,每次学习时网 络的实际输出会逐渐向对应的期望输出逼近。 收敛过程就是网络全局误差趋向极小值的过程,也就是网络的实际输出非常 逼近期望输出的过程。 由于Bp神经网络采用Sigmoid函数作为转移函数,因此,网络的实际输出是 一个实数,而不是单层感知机模型中的二值离散值,所以,在网络收敛时, 实际网络输出与期望输出之间的逼近关系不能简单地用是或否来衡量,Bp神 经网络中的逼近是一个模糊的概念,表示的是实际输出与期望输出的接近程 度。
误差反向传播神经网络结构
• 典型的BP神经网络是一种具有三层或三层以上 结构的无反馈的、层内无互连结构的前向网络 (典型的三层BP神经网络结构如下页图所示,) 其中首尾两层分别称为输入层和输出层,中间 各层为隐含层(也称中间层)。BP神经网络中 各层之间的神经元为全连接关系,层内的各个 神经元之间无连接。
k t
S w x j
k j i 1 k ij i
n
b f (s )
k j k j
l v jt b k t j
k t j 1
p
k k q q b k s k b k s k E E E lt j j j j k k [ k ] k [ ( dtk )v jt ] f '( s k ) xik j k wij b j s j wij t 1 lt b j s j wij t 1 k
j 1 p
ctk f (ltk )
ctk ctk ltk k f '(ltk )b k 可得 j v jt lt v jt
由式子输出层各个神经元的校正误差
dtk ( ytk ctk ) f ' (ltk ) 以及上面式子可得
E k E k ctk v jt k tk f '(ltk )b k dtk b k j j v jt ct v jt
• • • • • • • •
误差反向传播学习算法(BP算法描述)
(1)初始化。 (2)随机选取一个学习模式对(X k , Y k )提供给网络。 (3)计算输入层的输出。输入层的输出向量与输入模式向量相同。 (4)计算中间隐含层各个神经元的净输入和输出。 n k S j wij xik j bk f (s k ) j j i 1 (5)计算输出层各个神经元的净输入和实际输出。 p k lt v jt b k t ctk f (ltk ) j j 1 k k k ' k (6)根据指定的期望输出,计算出各个神经元的校正误差 dt ( yt ct ) f (lt ) q
累积误差校正算法
• 一般的Bp算法称为标准误差反向传播算法,这种算法 并不是真正全局意义上的梯度下降。
• 要想做到真正全局意义上的误差按梯度下降, 首先需要计算m个学习模式对的一般化误差之 和,即按照下式计算网络全局误差: m
k k ' k
(7)计算隐含层各个神经元的校正误差e j [ v jt dt ] f ( s j ) t 1 (8)修正隐含层至输出层的连接权值v和输出层神经元的阈值 ,学习速率为
0 1
(9)修正输入层至隐含层的连接权值w和隐含层神经元的阈值 ,学习速率为 0 1 ek w ek x k
将学习模式对提供给网络 计算隐含层各个单元净输入与输出
调整输入层至隐含层之间的连接 权值及隐含层各个单元的阈值
更新学习模式对
计算输出层各个单元净输入与输出
N
全部学习模式训练完毕?
学 习 算 法 流 程 图
BP
计算输出层各个单元一般化误差
Y 更新学习次数
N
计算隐含层各个单元一般化误差
误差< 或学习次数< N max Y
ij j i
j j
v jt dtk b k j
t dtk
误差反向传播学习算法(BP算法描述)
(10)随机选取下一个学习模式对提供给网络,返回3,直至全部m 个学习模式对训练完毕。 (11)判断网络全局误差E是否满足精度要求,即,若满足,则转至 13,否则继续。 (12)更新网络学习次数,若学习次数小于规定的次数,返回2 (13)结束。
•
•
•
误差反向传播学习算法的数学基础
• BP学习算法仍然是基于最小均方误差准则,采用误差函数按梯度下降的方法 进行学习. • 修正隐含层至输出层的连接权值V k k k 第k个学习模式的期望输出与实际输出的偏差为 t ( yt ct ) q k 因此 t 的均方差为 E k 1 ( tk )2 2 t 1 按照误差按梯度下降原则,隐含层至输出层之间的连接权值,应按照下式进行 E k 调整 v jt E k v jt ( ytk ctk ) tk k k 为了使 E 随着连接权值的调整按梯度下降,则有 ct 由 ltk v jt b k t j
由隐含层各个神经元的校正误差 e [ v jt d tk ] f '( s k ) j
k j
q
wij [ (dtk )v jt ] f '( s k ) xik e kj xik j
t 1
q
t 1
误差反向传播学习算法的改进
• • • • • BP算法存在的问题 累积误差校正算法 Sigmoid函数输出限幅的BP算法 增加动量项的BP算法 学习速率自适应调整算法
Βιβλιοθήκη Baidu
• BP神经网络选取sigmoid函数作为转移函数是因为sigm oid函数的输出接近生物神经元的信号输出形式,能够 模拟生物神经元的非线性特征。同时,sigmoid函数具 有的非线性特征也能够增强神经网络的非线性映射能 力。
1 e
s j
Sigmoid函数特性
1.Sigmoid函数的输出曲线。 2.L2层各个处理单元的阈值 j 是为模拟生物神经元的动作电 位设置的。
BP算法存在的问题
• 学习算法的收敛速度慢。影响BP学习算法收 敛速度的关键之一就是学习速率。 • 存在局部极小点。影响Bp学习算法产生局部 极小点的关键因素之一是初始连接权值 。 • 隐含层层数及节点数的选取缺乏理论指导。 • 训练时学习新样本有遗忘旧样本的趋势。Bp 神经网络的学习与记忆具有不确定性。 针对Bp神经网络的这些问题,研究人员投入 了大量的精力,对其性能的改善进行了大量 的研究工作,并提出了许多改进方案。
• BP神经网络随着误差反向传播不断的进行修正, 从而不断提高对输入模式识别的正确率,因此, BP神经网络采用的学习算法称之为误差反向传 播算法,是一种误差函数按梯度下降的学习方 法。
误差反向传播神经网络处理单元模型
x1
x2 x3
w1 j
w2 j w3 j
j
j
yj
„
wnj
xn
L1 L2 图:BP神经网络的处理单元
误差反向传播神经网络结构
输入层节点 隐含层节点 输出层节点
输 入 信 号
输 出 结 果
修改权值阈值
修改权值阈值
教师信号
图:三层BP神经网络结构
误差反向传播神经网络结构
• BP神经网络的训练过程也就是“正向计算输 出——反向传播误差”的过程不断重复进行, 直至误差降低到可以接受的范围,BP神经网络 的学习训练过程也就随之结束。
误差反向传播学习算法的数学基础
• 同理,由输入层至隐含层之间的连接权值也应给予误差按梯度下 E k 降的原则,按照右式进行调整: wij wij 定义输出层各个神经元的校正误差
由上式和 可得
k
E k E k ctk d k k k ( ytk ctk ) f '(ltk ) lt ct lt
BP反向传播神经网络
管理学院 王萱
讲课目录
• • • • • • • 1.误差反向传播神经网络的提出 2.误差反向传播神经网络结构 3.误差反向传播神经网络处理单元模型 4.误差反向传播学习算法 5.误差反向传播学习算法的数学基础 6.误差反向传播学习算法的改进 7.小结
误差反向传播神经网络的提出
…
误差反向传播神经网络处理单元模型
• 连接权向量为W={wij}i=1,2,3,4,…n,j=1,2,…P。 • L1层的n个处理单元的输出构成了L2层各个处理单元的 T 输入列向量 X ( x1 ,, xi , xn )。 • L2层各个处理单元的阈值为 j ,j=1,2,……p。 n • L2层各个处理单元接收的输入加权和为S j xi wij , j i 1 j=1,2,…P。 • L2层各个处理单元的输出由转移函数决定。sigmoid函 数作为转移函数,数学表达式为 f ( x) 1 x ,L2层各 个处理单元的输出为 1 1 e
3.Sigmoid函数的一阶导数为
'
1 1 e x x f ( x) e (1) f ( x)[1 f ( x)] x 2 x x (1 e ) 1 e 1 e
误差反向传播学习算法
开始 连接权值及阈值初始化
1
调整隐含层至输出层之间的连接 权值及输出层各个单元的阈值
• 单层感知机模型及其学习算法的提出,曾经使人工神经网络的研究迈出了历 史性的一步,但它只能对线性分类模式进行识别,对非线性模式的识别则无 能为力。 • 造成单层感知机模型不具有非线性分类能力的主要原因是由于没有隐含层对 输入模式进行内部表示 ,在输入层和输出层之间增加一个或多个隐含层,即 形成多层感知机模型,解决“异或”这样一些简单的非线性分类问题,提高 神经网络模型的分类能力,但是由于多层感知机模型采用的是单层感知机模 型的学习算法,隐含层神经元不具备学习能力,存在很大的局限性 。 • 1986年,以Rumelhart和McCelland为首的科学界小组在《并行分布式处理》 一书中,对误差反向传播算法进行了详尽的分析与介绍,并对BP算法的潜在 能力进行了深入探讨,实现了当年Minsky关于多层神经网络的设想。 • BP算法采用非线性连续变换函数,使隐含层神经元有了学习能力。其基本思 想直观,易于理解,数学意义明确、步骤分明,一经提出就被广泛的接受, 因此多层神经网络的训练采用了该算法。人们通常将采用误差反向传播学习 算法的多层感知机模型称为误差反向传播神经网络。
1
结束
误差反向传播学习算法
• BP神经网络采用BP算法进行学习,其学习过程分四个阶段: “模式顺传播”过程; “误差逆传播”过程; “记忆训练” 过程; “学习收敛”过程。 以三层BP神经网络为例,介绍标准的BP算法 k k k k T 输入模式向量为 X ( x1 , x2 , xn ) (k 1, 2, m) k k k k T 对应输入模式的期望输出向量为 Y ( y1 , y2 , yq ) k k S k ( s1k , s2 , s k )T 输出向量B k (b1k , b2k ,bp )T 中间隐含层净输入向量 p k k k k Lk (l1k , l2 , lq )T实际输出向量为 C k (c1k , c2 ,cq )T 输出层净输入向量 输入层至隐含层的连接权值 W {wij }(i 1, 2,n, j 1, 2, p) 隐含层至输出层的连接权值 V {v jt }( j 1, 2, p, t 1, 2,q) 隐含层各个单元的阈值为 { j }( j 1, 2, p) 输出层各个单元的阈值为 { t }(t 1, 2, q)
以上学习步骤中 3~5为输入学习模式的顺传播过程 6~9为网络误差的逆传播过程 10为完成训练 11~12为收敛过程
BP学习算法需要注意的问题
• • 学习模式对中的期望输出是对模式分类的一种表示。 误差逆传播过程是输出层误差向隐含层传递的过程,并且每一个隐含层处理 单元的校正误差都是由q个输出层处理单元传递过来的校正误差综合作用产 生的。 训练过程是一个不断重复进行的学习过程,每次学习时都要根据期望输出和 网络实际输出之间的误差值调节各层之间的连接权值和阈值,每次学习时网 络的实际输出会逐渐向对应的期望输出逼近。 收敛过程就是网络全局误差趋向极小值的过程,也就是网络的实际输出非常 逼近期望输出的过程。 由于Bp神经网络采用Sigmoid函数作为转移函数,因此,网络的实际输出是 一个实数,而不是单层感知机模型中的二值离散值,所以,在网络收敛时, 实际网络输出与期望输出之间的逼近关系不能简单地用是或否来衡量,Bp神 经网络中的逼近是一个模糊的概念,表示的是实际输出与期望输出的接近程 度。
误差反向传播神经网络结构
• 典型的BP神经网络是一种具有三层或三层以上 结构的无反馈的、层内无互连结构的前向网络 (典型的三层BP神经网络结构如下页图所示,) 其中首尾两层分别称为输入层和输出层,中间 各层为隐含层(也称中间层)。BP神经网络中 各层之间的神经元为全连接关系,层内的各个 神经元之间无连接。
k t
S w x j
k j i 1 k ij i
n
b f (s )
k j k j
l v jt b k t j
k t j 1
p
k k q q b k s k b k s k E E E lt j j j j k k [ k ] k [ ( dtk )v jt ] f '( s k ) xik j k wij b j s j wij t 1 lt b j s j wij t 1 k
j 1 p
ctk f (ltk )
ctk ctk ltk k f '(ltk )b k 可得 j v jt lt v jt
由式子输出层各个神经元的校正误差
dtk ( ytk ctk ) f ' (ltk ) 以及上面式子可得
E k E k ctk v jt k tk f '(ltk )b k dtk b k j j v jt ct v jt
• • • • • • • •
误差反向传播学习算法(BP算法描述)
(1)初始化。 (2)随机选取一个学习模式对(X k , Y k )提供给网络。 (3)计算输入层的输出。输入层的输出向量与输入模式向量相同。 (4)计算中间隐含层各个神经元的净输入和输出。 n k S j wij xik j bk f (s k ) j j i 1 (5)计算输出层各个神经元的净输入和实际输出。 p k lt v jt b k t ctk f (ltk ) j j 1 k k k ' k (6)根据指定的期望输出,计算出各个神经元的校正误差 dt ( yt ct ) f (lt ) q
累积误差校正算法
• 一般的Bp算法称为标准误差反向传播算法,这种算法 并不是真正全局意义上的梯度下降。
• 要想做到真正全局意义上的误差按梯度下降, 首先需要计算m个学习模式对的一般化误差之 和,即按照下式计算网络全局误差: m
k k ' k
(7)计算隐含层各个神经元的校正误差e j [ v jt dt ] f ( s j ) t 1 (8)修正隐含层至输出层的连接权值v和输出层神经元的阈值 ,学习速率为
0 1
(9)修正输入层至隐含层的连接权值w和隐含层神经元的阈值 ,学习速率为 0 1 ek w ek x k
将学习模式对提供给网络 计算隐含层各个单元净输入与输出
调整输入层至隐含层之间的连接 权值及隐含层各个单元的阈值
更新学习模式对
计算输出层各个单元净输入与输出
N
全部学习模式训练完毕?
学 习 算 法 流 程 图
BP
计算输出层各个单元一般化误差
Y 更新学习次数
N
计算隐含层各个单元一般化误差
误差< 或学习次数< N max Y
ij j i
j j
v jt dtk b k j
t dtk
误差反向传播学习算法(BP算法描述)
(10)随机选取下一个学习模式对提供给网络,返回3,直至全部m 个学习模式对训练完毕。 (11)判断网络全局误差E是否满足精度要求,即,若满足,则转至 13,否则继续。 (12)更新网络学习次数,若学习次数小于规定的次数,返回2 (13)结束。
•
•
•
误差反向传播学习算法的数学基础
• BP学习算法仍然是基于最小均方误差准则,采用误差函数按梯度下降的方法 进行学习. • 修正隐含层至输出层的连接权值V k k k 第k个学习模式的期望输出与实际输出的偏差为 t ( yt ct ) q k 因此 t 的均方差为 E k 1 ( tk )2 2 t 1 按照误差按梯度下降原则,隐含层至输出层之间的连接权值,应按照下式进行 E k 调整 v jt E k v jt ( ytk ctk ) tk k k 为了使 E 随着连接权值的调整按梯度下降,则有 ct 由 ltk v jt b k t j
由隐含层各个神经元的校正误差 e [ v jt d tk ] f '( s k ) j
k j
q
wij [ (dtk )v jt ] f '( s k ) xik e kj xik j
t 1
q
t 1
误差反向传播学习算法的改进
• • • • • BP算法存在的问题 累积误差校正算法 Sigmoid函数输出限幅的BP算法 增加动量项的BP算法 学习速率自适应调整算法