BP神经网络模型PPT课件
合集下载
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
学习规则: 权值调整规则,即在学习过程中网络中各神经 元的连接权变化所依据的一定的调整规则。
BP网络的标准学习算法-算法思想
学习的类型:有导师学习 核心思想:
将输出误差以某种形式通过隐层向输入层逐层反传
将误差分摊给各层的所有 单元---各层单元的误 差信号
学习的过程: 信号的正向传播
(
yio (k) who
h
whohoh (k) bo )
who
hoh (k)
e
yio
(1 2
q
(do(k)
o1
yio
yoo (k)))2
(do (k )
yoo (k)) yoo
(k)
(do(k) yoo (k))f ( yio(k)) o(k)
小于零时,权值调整量
为正,实际输出少于期
望输出,权值向增大方向
调整,使得实际输出与期
望输出的差减少。
who
e who
<0,
此时Δwho>0
BP神经网络学习算法的MATLAB实现
MATLAB中BP神经网络的重要函数和基本 功能
函数名
功能
newff()
生成一个前馈BP网络
tansig()
双曲正切S型(Tan-Sigmoid)传输函数
神经元网络工作的全部秘密就在于它的权重值,
神经网络概述
选择不同的权重值,神经元网络就会有不同的 输入-输出关系。 神经元网络的具体工作原理:我们将样本数据 的输入值输进神经元网络,就得到一组输出值。 这组输出值当然不是我们的理想输出值。于是, 我们就根据实际输出与理想输出的差来修正权 值,以缩小这种差别。这样反复训练多次,最 后,使实际输出与理想输出趋于一致。这样, 神经元网络就可以用来代替我们所需要的模型 了。
BP网络的标准学习算法
第五步,利用隐含层到输出层的连接权
值、输出层的 o (k)和隐含层的输出计算误 差函数对隐含层各神经元的偏导数 h (k)。
e who
e yio
yio who
o (k )hoh (k )
e e hih (k ) wih hih (k ) wih
logsig()
功能 对数Sigmoid激活函数 格式 a = logsig(N) 说明对数Sigmoid函数把神经元的输入范围从(-∞,+∞)映射 到(0,1)。它是可导函数,适用于BP训练的神经元。
BP神经网络学习算法的MATLAB实现
例题:下表为某药品的销售情况,现构建一个如下的三层BP神经 网络对药品的销售进行预测:输入层有三个结点,隐含层结点数 为5,隐含层的激活函数为tansig;输出层结点数为1个,输出层 的激活函数为logsig,并利用此网络对药品的销售量进行预测, 预测方法采用滚动预测方式,即用前三个月的销售量来预测第四 个月的销售量,如用1、2、3月的销售量为输入预测第4个月的销 售量,用2、3、4月的销售量为输入预测第5个月的销售量.如此反 复直至满足预测精度要求为止。
是输入,y是输出,u 是神经元内部状态。特别 要说明的是,每个神经元都有一个特殊的参数
神经网络概述
称为阈值,它是输出的一个临界值,直接影响 神经元的内部状态。
输入:x1
x2
状状态态::uu
xn
输出: y
神经元的数学模型
神经网络概述
人们的记忆和智能并不是储存在单个脑细 胞中,而是储存在脑细胞之间互相连接的 网络之中,这称为分布式存储方式。这样 一种“分布方式”并不因单个脑细胞的死 亡而消失。人们通过学习可以不断地改变 脑细胞之间的连接方式,使这个网络的功 能不断提高。模仿神经细胞的结构,人们 设计了种种人工神经网络,如感知器、BP 网络、自组织网络等。
神经网络概述
人工神经网络ANN(artificial neural network)是20 世纪80年代才日益受到人们重视的一种新的人工智能计 算方法。由于它模拟了人脑的思维模式,即具有一定的 智能,且的确能解决许多用传统方法不能或难于解决的 复杂问题,使之更加精确化,如更精确的分类、非线性 规划的求解、著名的“旅行员推销问题”的解决等(注: 在近年来的实际应用,尤其在大学生数学建模竞赛中许 多获奖队在解决问题是均是以运用神经网络方法作为成 功的法宝,如2000年A题中国科技大学5个队获全国一等 奖,运用的均是神经网络方法)。
f(
yio (k)))2)
hoh (k)
hoh (k)
hih (k)
( 1 2
q
((do (k)
o1
p
f(
h1
whohoh (k)
bo )2 ))
hoh (k)
hoh (k)
hih (k)
q o1
(do (k )
yoo (k
))
f
(
yio
(k ))who
说明 net为创建的新BP神经网络;PR为网络输入 取向量取值范围的矩阵;[S1 S2…SNl]表示网络 隐含层和输出层神经元的个数;{TFl TF2…TFN1} 表示网络隐含层和输出层的传输函数,默认为 ‘tansig’;BTF表示网络的训练函数,默认为 ‘trainlm’;BLF表示网络的权值学习函数,默认 为‘learngdm’;PF表示性能数,默认为‘mse’。
BP神经网络学习算法的MATLAB实现
MATLAB中BP神经网络的重要函数和基本功能
tansig()
功能 正切sigmoid激活函数 格式 a = tansig(n) 说明 双曲正切Sigmoid函数把神经元的输入范围从(-∞, +∞)映射到(-1,1)。它是可导函数,适用于BP训练的神经元。
BP神经网络模型
三层BP网络
BP神经网络模型Biblioteka 激活函数必须处处可导
一般都使用S型函数
使用S型激活函数时BP网络输入与输出关系
输入
net x1w1 x2w2 ... xnwn
输出
y
f
(net)
1
1 enet
BP神经网络模型
输出的导数
f
'(net)
1 1 e-net
神经网络概述
人的大脑约由 1010个神经细胞(也称神经元)组 成,细胞之间通过树突和轴突互相连接,构成 纵横交错的网络结构。神经细胞通过突触互相 交换信息,树突用来接受神经冲动,轴突分化 出的神经末梢则可传出神经冲动。由于输出端 只有两个状态:兴奋态与抑制态。因此,一个 神经元就是一个简单的系统,或者说是一个逻 辑元件。下图表示它的数学模型,这里x1, x2, xn
神经网络概述
人工神经网络的基本工作原理是:对于每个神经
元,假设它有 n 个输入,输入值为 x1, x2 ,, xn
那么,它的输出值就是 y f n i xi ,这里,i
i1
是等待确定的权重系数,简称权值。 f 是一个 函数,它有几种典型选法。一种常用的函数是 Sigmoid函数。
hoh (k ) hih (k)
q
( o (k)who ) f (hih (k)) h (k)
o1
BP网络的标准学习算法
第六步,利用输出层各神经元的o (k)和 隐含层各神经元的输出来修正连接权
值 who (k) 。
who (k )
e who
o (k)hoh (k)
期望输出向量; do d1, d2,
, xn
, hip
, hop
, yiq
, yoq
, dq
BP网络的标准学习算法
输入层与中间层的连接权值: wih
隐含层与输出层的连接权值: who
隐含层各神经元的阈值: bh 输出层各神经元的阈值: bo 样本数据个数: k 1,2, m
wN 1 ho
whNo
o (k)hoh (k)
BP网络的标准学习算法
第七步,利用隐含层各神经元的 h (k)和 输入层各神经元的输入修正连接权。
wih (k )
e wih
e hih (k )
hih (k ) wih
h (k ) xi (k )
wN 1 ih
1 (1 enet )2
y(1
y)
根据S型激活函数的图形可知,对神经网络进行训练,应该将net的值 尽量控制在收敛比较快的范围内
BP网络的标准学习算法
学习的过程: 神经网络在外界输入样本的刺激下不断改变网 络的连接权值,以使网络的输出不断地接近期 望的输出。
学习的本质: 对各连接权值的动态调整
logsig()
对数S型(Log-Sigmoid)传输函数
traingd() 梯度下降BP训练函数
BP神经网络学习算法的MATLAB实现
MATLAB中BP神经网络的重要函数和基本功能
newff()
功能 建立一个前向BP网络
格式 net = newff(PR,[S1 S2...SN1],{TF1 TF2...TFN1},BTF,BLF,PF)
BP网络的标准学习算法
BP算法直观解释
情况一直观表达 e
当误差对权值的偏
导数大于零时,权值
调整量为负,实际输
出大于期望输出,
权值向减少方向调整,
使得实际输出与期望
who
输出的差减少。
e who
>0,此时Δwho<0
BP网络的标准学习算法
BP算法直解释
e
情况二直观表达
当误差对权值的偏导数
BP神经网络模型与学习算法
BP神经网络概述
Rumelhart,McClelland于1985年提出了BP网络的误差反 向后传BP(Back Propagation)学习算法
David Rumelhart
J. McClelland
BP算法基本原理
利用输出后的误差来估计输出层的直接前导层的误差, 再用这个误差估计更前一层的误差,如此一层一层的反 传下去,就获得了所有其他各层的误差估计。
激活函数: f()
误差函数:e
1 2
q o1
(do (k )
yoo (k ))2
BP网络的标准学习算法
第一步,网络初始化 给各连接权值分别赋一个区间(-1,1) 内的随机数,设定误差函数e,给定计 算精度值 和最大学习次数M。
第二步,随机选取第 k个输入样本及对应 期望输出
x(k) x1(k), x2(k), , xn(k)
do (k) d1(k),d2(k), ,dq(k)
BP网络的标准学习算法
第三步,计算隐含层各神经元的输入和
输出
n
hih (k ) wih xi (k ) bh
i 1
h 1, 2, , p
hoh (k) f(hih (k)) h 1, 2, , p
BP网络的标准学习算法
网络结构
输入层有n个神经元,隐含层有p个神经元,
输出层有q个神经元
变量定义
输入向量;
x x1, x2,
隐含层输入向量; hi hi1, hi2,
隐含层输出向量; ho ho1, ho2,
输出层输入向量; yi yi1, yi2,
输出层输出向量; yo yo1, yo2,
p
yio (k) whohoh (k ) bo o 1, 2, q
h1
yoo (k) f( yio (k)) o 1, 2, q
BP网络的标准学习算法
第四步,利用网络期望输出和实际输出,
计算误差函数对输出层的各神经元的偏导
数
。o (k )
p
e e yio who yio who
n
hih (k)
wih
(
i 1
wih xi (k ) bh ) wih
xi (k )
BP网络的标准学习算法
e
(1 2
q o1
(do (k )
yoo (k))2 )
hoh (k)
hih (k)
hoh (k)
hih (k)
( 1 2
q o1
(do (k )
wiNh
h
(k ) xi
(k)
BP网络的标准学习算法
第八步,计算全局误差
E
1 2m
m k 1
q o1
(do (k )
yo (k ))2
第九步,判断网络误差是否满足要求。当误差 达到预设精度或学习次数大于设定的最大次数, 则结束算法。否则,选取下一个学习样本及对 应的期望输出,返回到第三步,进入下一轮学 习。
修正各单元权 值
误差的反向传播
BP网络的标准学习算法-学习过程
正向传播:
输入样本---输入层---各隐层---输出层
判断是否转入反向传播阶段:
若输出层的实际输出与期望的输出(教师信号)不 符
误差反传
误差以某种形式在各层表示----修正各层单元 的权值
网络输出的误差减少到可接受的程度 进行到预先设定的学习次数为止
BP网络的标准学习算法-算法思想
学习的类型:有导师学习 核心思想:
将输出误差以某种形式通过隐层向输入层逐层反传
将误差分摊给各层的所有 单元---各层单元的误 差信号
学习的过程: 信号的正向传播
(
yio (k) who
h
whohoh (k) bo )
who
hoh (k)
e
yio
(1 2
q
(do(k)
o1
yio
yoo (k)))2
(do (k )
yoo (k)) yoo
(k)
(do(k) yoo (k))f ( yio(k)) o(k)
小于零时,权值调整量
为正,实际输出少于期
望输出,权值向增大方向
调整,使得实际输出与期
望输出的差减少。
who
e who
<0,
此时Δwho>0
BP神经网络学习算法的MATLAB实现
MATLAB中BP神经网络的重要函数和基本 功能
函数名
功能
newff()
生成一个前馈BP网络
tansig()
双曲正切S型(Tan-Sigmoid)传输函数
神经元网络工作的全部秘密就在于它的权重值,
神经网络概述
选择不同的权重值,神经元网络就会有不同的 输入-输出关系。 神经元网络的具体工作原理:我们将样本数据 的输入值输进神经元网络,就得到一组输出值。 这组输出值当然不是我们的理想输出值。于是, 我们就根据实际输出与理想输出的差来修正权 值,以缩小这种差别。这样反复训练多次,最 后,使实际输出与理想输出趋于一致。这样, 神经元网络就可以用来代替我们所需要的模型 了。
BP网络的标准学习算法
第五步,利用隐含层到输出层的连接权
值、输出层的 o (k)和隐含层的输出计算误 差函数对隐含层各神经元的偏导数 h (k)。
e who
e yio
yio who
o (k )hoh (k )
e e hih (k ) wih hih (k ) wih
logsig()
功能 对数Sigmoid激活函数 格式 a = logsig(N) 说明对数Sigmoid函数把神经元的输入范围从(-∞,+∞)映射 到(0,1)。它是可导函数,适用于BP训练的神经元。
BP神经网络学习算法的MATLAB实现
例题:下表为某药品的销售情况,现构建一个如下的三层BP神经 网络对药品的销售进行预测:输入层有三个结点,隐含层结点数 为5,隐含层的激活函数为tansig;输出层结点数为1个,输出层 的激活函数为logsig,并利用此网络对药品的销售量进行预测, 预测方法采用滚动预测方式,即用前三个月的销售量来预测第四 个月的销售量,如用1、2、3月的销售量为输入预测第4个月的销 售量,用2、3、4月的销售量为输入预测第5个月的销售量.如此反 复直至满足预测精度要求为止。
是输入,y是输出,u 是神经元内部状态。特别 要说明的是,每个神经元都有一个特殊的参数
神经网络概述
称为阈值,它是输出的一个临界值,直接影响 神经元的内部状态。
输入:x1
x2
状状态态::uu
xn
输出: y
神经元的数学模型
神经网络概述
人们的记忆和智能并不是储存在单个脑细 胞中,而是储存在脑细胞之间互相连接的 网络之中,这称为分布式存储方式。这样 一种“分布方式”并不因单个脑细胞的死 亡而消失。人们通过学习可以不断地改变 脑细胞之间的连接方式,使这个网络的功 能不断提高。模仿神经细胞的结构,人们 设计了种种人工神经网络,如感知器、BP 网络、自组织网络等。
神经网络概述
人工神经网络ANN(artificial neural network)是20 世纪80年代才日益受到人们重视的一种新的人工智能计 算方法。由于它模拟了人脑的思维模式,即具有一定的 智能,且的确能解决许多用传统方法不能或难于解决的 复杂问题,使之更加精确化,如更精确的分类、非线性 规划的求解、著名的“旅行员推销问题”的解决等(注: 在近年来的实际应用,尤其在大学生数学建模竞赛中许 多获奖队在解决问题是均是以运用神经网络方法作为成 功的法宝,如2000年A题中国科技大学5个队获全国一等 奖,运用的均是神经网络方法)。
f(
yio (k)))2)
hoh (k)
hoh (k)
hih (k)
( 1 2
q
((do (k)
o1
p
f(
h1
whohoh (k)
bo )2 ))
hoh (k)
hoh (k)
hih (k)
q o1
(do (k )
yoo (k
))
f
(
yio
(k ))who
说明 net为创建的新BP神经网络;PR为网络输入 取向量取值范围的矩阵;[S1 S2…SNl]表示网络 隐含层和输出层神经元的个数;{TFl TF2…TFN1} 表示网络隐含层和输出层的传输函数,默认为 ‘tansig’;BTF表示网络的训练函数,默认为 ‘trainlm’;BLF表示网络的权值学习函数,默认 为‘learngdm’;PF表示性能数,默认为‘mse’。
BP神经网络学习算法的MATLAB实现
MATLAB中BP神经网络的重要函数和基本功能
tansig()
功能 正切sigmoid激活函数 格式 a = tansig(n) 说明 双曲正切Sigmoid函数把神经元的输入范围从(-∞, +∞)映射到(-1,1)。它是可导函数,适用于BP训练的神经元。
BP神经网络模型
三层BP网络
BP神经网络模型Biblioteka 激活函数必须处处可导
一般都使用S型函数
使用S型激活函数时BP网络输入与输出关系
输入
net x1w1 x2w2 ... xnwn
输出
y
f
(net)
1
1 enet
BP神经网络模型
输出的导数
f
'(net)
1 1 e-net
神经网络概述
人的大脑约由 1010个神经细胞(也称神经元)组 成,细胞之间通过树突和轴突互相连接,构成 纵横交错的网络结构。神经细胞通过突触互相 交换信息,树突用来接受神经冲动,轴突分化 出的神经末梢则可传出神经冲动。由于输出端 只有两个状态:兴奋态与抑制态。因此,一个 神经元就是一个简单的系统,或者说是一个逻 辑元件。下图表示它的数学模型,这里x1, x2, xn
神经网络概述
人工神经网络的基本工作原理是:对于每个神经
元,假设它有 n 个输入,输入值为 x1, x2 ,, xn
那么,它的输出值就是 y f n i xi ,这里,i
i1
是等待确定的权重系数,简称权值。 f 是一个 函数,它有几种典型选法。一种常用的函数是 Sigmoid函数。
hoh (k ) hih (k)
q
( o (k)who ) f (hih (k)) h (k)
o1
BP网络的标准学习算法
第六步,利用输出层各神经元的o (k)和 隐含层各神经元的输出来修正连接权
值 who (k) 。
who (k )
e who
o (k)hoh (k)
期望输出向量; do d1, d2,
, xn
, hip
, hop
, yiq
, yoq
, dq
BP网络的标准学习算法
输入层与中间层的连接权值: wih
隐含层与输出层的连接权值: who
隐含层各神经元的阈值: bh 输出层各神经元的阈值: bo 样本数据个数: k 1,2, m
wN 1 ho
whNo
o (k)hoh (k)
BP网络的标准学习算法
第七步,利用隐含层各神经元的 h (k)和 输入层各神经元的输入修正连接权。
wih (k )
e wih
e hih (k )
hih (k ) wih
h (k ) xi (k )
wN 1 ih
1 (1 enet )2
y(1
y)
根据S型激活函数的图形可知,对神经网络进行训练,应该将net的值 尽量控制在收敛比较快的范围内
BP网络的标准学习算法
学习的过程: 神经网络在外界输入样本的刺激下不断改变网 络的连接权值,以使网络的输出不断地接近期 望的输出。
学习的本质: 对各连接权值的动态调整
logsig()
对数S型(Log-Sigmoid)传输函数
traingd() 梯度下降BP训练函数
BP神经网络学习算法的MATLAB实现
MATLAB中BP神经网络的重要函数和基本功能
newff()
功能 建立一个前向BP网络
格式 net = newff(PR,[S1 S2...SN1],{TF1 TF2...TFN1},BTF,BLF,PF)
BP网络的标准学习算法
BP算法直观解释
情况一直观表达 e
当误差对权值的偏
导数大于零时,权值
调整量为负,实际输
出大于期望输出,
权值向减少方向调整,
使得实际输出与期望
who
输出的差减少。
e who
>0,此时Δwho<0
BP网络的标准学习算法
BP算法直解释
e
情况二直观表达
当误差对权值的偏导数
BP神经网络模型与学习算法
BP神经网络概述
Rumelhart,McClelland于1985年提出了BP网络的误差反 向后传BP(Back Propagation)学习算法
David Rumelhart
J. McClelland
BP算法基本原理
利用输出后的误差来估计输出层的直接前导层的误差, 再用这个误差估计更前一层的误差,如此一层一层的反 传下去,就获得了所有其他各层的误差估计。
激活函数: f()
误差函数:e
1 2
q o1
(do (k )
yoo (k ))2
BP网络的标准学习算法
第一步,网络初始化 给各连接权值分别赋一个区间(-1,1) 内的随机数,设定误差函数e,给定计 算精度值 和最大学习次数M。
第二步,随机选取第 k个输入样本及对应 期望输出
x(k) x1(k), x2(k), , xn(k)
do (k) d1(k),d2(k), ,dq(k)
BP网络的标准学习算法
第三步,计算隐含层各神经元的输入和
输出
n
hih (k ) wih xi (k ) bh
i 1
h 1, 2, , p
hoh (k) f(hih (k)) h 1, 2, , p
BP网络的标准学习算法
网络结构
输入层有n个神经元,隐含层有p个神经元,
输出层有q个神经元
变量定义
输入向量;
x x1, x2,
隐含层输入向量; hi hi1, hi2,
隐含层输出向量; ho ho1, ho2,
输出层输入向量; yi yi1, yi2,
输出层输出向量; yo yo1, yo2,
p
yio (k) whohoh (k ) bo o 1, 2, q
h1
yoo (k) f( yio (k)) o 1, 2, q
BP网络的标准学习算法
第四步,利用网络期望输出和实际输出,
计算误差函数对输出层的各神经元的偏导
数
。o (k )
p
e e yio who yio who
n
hih (k)
wih
(
i 1
wih xi (k ) bh ) wih
xi (k )
BP网络的标准学习算法
e
(1 2
q o1
(do (k )
yoo (k))2 )
hoh (k)
hih (k)
hoh (k)
hih (k)
( 1 2
q o1
(do (k )
wiNh
h
(k ) xi
(k)
BP网络的标准学习算法
第八步,计算全局误差
E
1 2m
m k 1
q o1
(do (k )
yo (k ))2
第九步,判断网络误差是否满足要求。当误差 达到预设精度或学习次数大于设定的最大次数, 则结束算法。否则,选取下一个学习样本及对 应的期望输出,返回到第三步,进入下一轮学 习。
修正各单元权 值
误差的反向传播
BP网络的标准学习算法-学习过程
正向传播:
输入样本---输入层---各隐层---输出层
判断是否转入反向传播阶段:
若输出层的实际输出与期望的输出(教师信号)不 符
误差反传
误差以某种形式在各层表示----修正各层单元 的权值
网络输出的误差减少到可接受的程度 进行到预先设定的学习次数为止