BP人工神经网络及matlab实现
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
wih
=
(
i=1
wih xi (k) wih
- bh )
=
xi
(k)
5-2 BP网络的学习算法
5-2-2 BP学习算法的描述
e
=
(1 2
q o =1
(do (k)
-
yoo (k ))2 )
hoh (k )
hih (k )
hoh (k )
hih (k )
=
(1 2
q o =1
(do (k)
-
f( yio (k )))2 )
BP学习算法可以看成是线性自适应神经元学 习算法的进一步推广。
BP学习算法=前向计算过程+误差反向传播过程
前向计算过程:也是网络应用时的实现过程。 误差反向传播过程:是BP网络权值的学习和
训练过程。
5-2 BP网络的学习算法
5-2-1 BP学习算法概述
学习的类型:有导师学习 核心思想:
将输出误差以某种形式通过隐层向输入层逐层反传
由于这种网络常常用BP学习算法后的网络权 值,所以常称BP人工神经网络。
5-1 网络结构和模型
u
y
5-1 网络结构与模型
u
y
5-1 网络结构和模型
BP网络的神经元模型是
改进了感知器神经元模型得 u1 w1
到的。 输入层:
x
wij 1, f(x)=x
隐层:
f (x)
=
1 1+ e-x
uj
隐含层输入向量; hi=h i1,h i2, ,h ip
隐含层输出向量; 输出层输入向量;
ho yi=h o 1,h o 2, ,h op =yi1,yi2, ,yiq
输出层输出向量; yo=yo 1,yo2, ,yoq
期望输出向量;
do=d1,d2, ,dq
5-2 BP网络的学习算法
David Rumelhart
J. McClelland
BP算法基本原理
利用输出后的误差来估计输出层的直接前导层的误差, 再用这个误差估计更前一层的误差,如此一层一层的 反传下去,就获得了所有其他各层的误差估计。
5-1 网络结构和模型
BP网络是一种前向映射网络。网络的结构见 下一页的图形。其中:u是网络的输入向量,y是 网络的输出向量。神经元用节点表示,网络由输 入层、隐层和输出层节点组成,隐层可一层,也 可多层(图中是单隐层)。前层节点至后层节点通 过权联接。
e = e yio who yio who
p
(
yio(k)= who
h
whohoh(k)-bo)
who
=hoh(k)
e
yio
=(12oq=1(do(k)-yoo(k)))2 yio
=-(do(k)-yoo(k))yoo
(k)
=-(do(k)-yoo(k))f(yio(k)) -o(k)
5-2 BP网络的学习算法
5-2 BP网络的学习算法
5-2-2 BP学习算法的描述
第一步,网络初始化
给各连接权值分别赋一个区间(-1,1)内的随机
数,设定误差函数e,给定计算精度值 和最大学
习次数M。
第二步,随机选取第 k 个输入样本及对应期望
输出
x(k )= x 1 (k ),x 2 (k ), ,x n (k )
5-2-2 BP学习算法的描述
第五步,利用隐含层到输出层的连接权值、输 出层的 o ( 和k ) 隐含层的输出计算误差函数对隐含
层各神经元的偏导数 。h ( k )
w eho=yeio w yihoo=-o(k)hoh(k)
e = e hih (k) wih hih (k) wih
n
hih (k)
误差反传
误差以某种形式在各层表示----修正各层单元的权值
网络输出的误差减少到可接受的程度 或者进行到预先设定的学习次数为止
5-2 BP网络的学习算法
5-2-2 BP学习算法的描述
网络结构
输入层有n个神经元,隐含层有p个神经元,输出
层有q个神经元。
变量定义
输入向量;
x=x1,x2, ,xn
d o(k )=d 1 (k ),d 2 (k ), ,d q (k )
5-2 BP网络的学习算法
5-2-2 BP学习算法的描述 第三步,计算隐含层各神经元的输入和输出
n
hih(k)= w ihxi(k)-bh h=1,2, ,p i=1
h o h ( k )= f ( h ih ( k ) ) h = 1 ,2 , ,p
BP人工神经网络
本章的基本内容
• BP网络结构与模型 • BP网络的学习算法 • BP神经网络的重要函数和基本功能 • 一个简单的例子 • BP网络的几个问题 • 改进的BP网络的学习算法 • BP网络的应用示例
概述
Rumelhart,McClelland于1985年提出了BP网络的误差 反向后传BP(Back Propagation)学习算法
p
yio(k)= w hohoh(k)- bo o=1 ,2, q h= 1
y o o (k )= f(y io (k )) o = 1 ,2 , q
5-2 BP网络的学习算法
5-2-2 BP学习算法的描述
第四步,利用网络期望输出和实际输出,计算 误差函数对输出层的各神经元的偏导数 o (。k )
5-2-2 BP学习算法的描述
输入层与中间层的连接权值: w i h 隐含层与输出层的连接权值: w h o 隐含层各神经元的阈值: b h 输出层各神经元的阈值: b o 样本数据个数: k=1,2, m 激活函数: f ( )
误差函数:e=12oq=1(do(k)-yoo(k))2
hoh (k )
hoh (k )
hih (k )
=
(1 2
q o =1
((do (k )
-
p
f(
将误差分摊给各层的所有 单元---各层单元的误 差信号
学习的过程:
信号的正向传播
修正各单元权 值
误差的反向传播
5-2 BP网络的学习算法
5-2-1 BP学习算法概述
正向传播:
输入样本---输入层---各隐层---输出层
判断是否转入反向传播阶段:
若输出层的实际输出与期望的输出(教师信号)不符
y f (x)
f
(x)
=
1 1
+
e-x e-x
un
wn
输出层:f
(x)
=
1 1
+
e-x e-x
f
(Байду номын сангаас)
=
1 1+ e-x
f (x) =kx
5-2 BP网络的学习算法
5-2-1 BP学习算法概述
多层前馈网络的反向传播 (BP)学习算法, 简称BP学习算法,这是一种有导师的学习算法, 是梯度下降法在多层前馈网中的应用。
=
(
i=1
wih xi (k) wih
- bh )
=
xi
(k)
5-2 BP网络的学习算法
5-2-2 BP学习算法的描述
e
=
(1 2
q o =1
(do (k)
-
yoo (k ))2 )
hoh (k )
hih (k )
hoh (k )
hih (k )
=
(1 2
q o =1
(do (k)
-
f( yio (k )))2 )
BP学习算法可以看成是线性自适应神经元学 习算法的进一步推广。
BP学习算法=前向计算过程+误差反向传播过程
前向计算过程:也是网络应用时的实现过程。 误差反向传播过程:是BP网络权值的学习和
训练过程。
5-2 BP网络的学习算法
5-2-1 BP学习算法概述
学习的类型:有导师学习 核心思想:
将输出误差以某种形式通过隐层向输入层逐层反传
由于这种网络常常用BP学习算法后的网络权 值,所以常称BP人工神经网络。
5-1 网络结构和模型
u
y
5-1 网络结构与模型
u
y
5-1 网络结构和模型
BP网络的神经元模型是
改进了感知器神经元模型得 u1 w1
到的。 输入层:
x
wij 1, f(x)=x
隐层:
f (x)
=
1 1+ e-x
uj
隐含层输入向量; hi=h i1,h i2, ,h ip
隐含层输出向量; 输出层输入向量;
ho yi=h o 1,h o 2, ,h op =yi1,yi2, ,yiq
输出层输出向量; yo=yo 1,yo2, ,yoq
期望输出向量;
do=d1,d2, ,dq
5-2 BP网络的学习算法
David Rumelhart
J. McClelland
BP算法基本原理
利用输出后的误差来估计输出层的直接前导层的误差, 再用这个误差估计更前一层的误差,如此一层一层的 反传下去,就获得了所有其他各层的误差估计。
5-1 网络结构和模型
BP网络是一种前向映射网络。网络的结构见 下一页的图形。其中:u是网络的输入向量,y是 网络的输出向量。神经元用节点表示,网络由输 入层、隐层和输出层节点组成,隐层可一层,也 可多层(图中是单隐层)。前层节点至后层节点通 过权联接。
e = e yio who yio who
p
(
yio(k)= who
h
whohoh(k)-bo)
who
=hoh(k)
e
yio
=(12oq=1(do(k)-yoo(k)))2 yio
=-(do(k)-yoo(k))yoo
(k)
=-(do(k)-yoo(k))f(yio(k)) -o(k)
5-2 BP网络的学习算法
5-2 BP网络的学习算法
5-2-2 BP学习算法的描述
第一步,网络初始化
给各连接权值分别赋一个区间(-1,1)内的随机
数,设定误差函数e,给定计算精度值 和最大学
习次数M。
第二步,随机选取第 k 个输入样本及对应期望
输出
x(k )= x 1 (k ),x 2 (k ), ,x n (k )
5-2-2 BP学习算法的描述
第五步,利用隐含层到输出层的连接权值、输 出层的 o ( 和k ) 隐含层的输出计算误差函数对隐含
层各神经元的偏导数 。h ( k )
w eho=yeio w yihoo=-o(k)hoh(k)
e = e hih (k) wih hih (k) wih
n
hih (k)
误差反传
误差以某种形式在各层表示----修正各层单元的权值
网络输出的误差减少到可接受的程度 或者进行到预先设定的学习次数为止
5-2 BP网络的学习算法
5-2-2 BP学习算法的描述
网络结构
输入层有n个神经元,隐含层有p个神经元,输出
层有q个神经元。
变量定义
输入向量;
x=x1,x2, ,xn
d o(k )=d 1 (k ),d 2 (k ), ,d q (k )
5-2 BP网络的学习算法
5-2-2 BP学习算法的描述 第三步,计算隐含层各神经元的输入和输出
n
hih(k)= w ihxi(k)-bh h=1,2, ,p i=1
h o h ( k )= f ( h ih ( k ) ) h = 1 ,2 , ,p
BP人工神经网络
本章的基本内容
• BP网络结构与模型 • BP网络的学习算法 • BP神经网络的重要函数和基本功能 • 一个简单的例子 • BP网络的几个问题 • 改进的BP网络的学习算法 • BP网络的应用示例
概述
Rumelhart,McClelland于1985年提出了BP网络的误差 反向后传BP(Back Propagation)学习算法
p
yio(k)= w hohoh(k)- bo o=1 ,2, q h= 1
y o o (k )= f(y io (k )) o = 1 ,2 , q
5-2 BP网络的学习算法
5-2-2 BP学习算法的描述
第四步,利用网络期望输出和实际输出,计算 误差函数对输出层的各神经元的偏导数 o (。k )
5-2-2 BP学习算法的描述
输入层与中间层的连接权值: w i h 隐含层与输出层的连接权值: w h o 隐含层各神经元的阈值: b h 输出层各神经元的阈值: b o 样本数据个数: k=1,2, m 激活函数: f ( )
误差函数:e=12oq=1(do(k)-yoo(k))2
hoh (k )
hoh (k )
hih (k )
=
(1 2
q o =1
((do (k )
-
p
f(
将误差分摊给各层的所有 单元---各层单元的误 差信号
学习的过程:
信号的正向传播
修正各单元权 值
误差的反向传播
5-2 BP网络的学习算法
5-2-1 BP学习算法概述
正向传播:
输入样本---输入层---各隐层---输出层
判断是否转入反向传播阶段:
若输出层的实际输出与期望的输出(教师信号)不符
y f (x)
f
(x)
=
1 1
+
e-x e-x
un
wn
输出层:f
(x)
=
1 1
+
e-x e-x
f
(Байду номын сангаас)
=
1 1+ e-x
f (x) =kx
5-2 BP网络的学习算法
5-2-1 BP学习算法概述
多层前馈网络的反向传播 (BP)学习算法, 简称BP学习算法,这是一种有导师的学习算法, 是梯度下降法在多层前馈网中的应用。