数学建模中的bp神经网络
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
e
who
e >0,此时 ho<0 ,此时w w ho
BP网络的标准学习算法 2.4.2 BP网络的标准学习算法
BP算法直解释 BP算法直解释 情况二直观表达
e
当误差对权值的偏导数 小于零时, 小于零时,权值调整量 为正, 为正,实际输出少于期 望输出, 望输出,权值向增大方向 调整, 调整,使得实际输出与期 望输出的差减少。 望输出的差减少。
p
who
yio who
o
who
=
ho
h
o
h
who
= hoh ( k )
1q ( ∑(do (k) yoo (k)))2 e 2 o=1 ′ = =(do(k) yoo (k)) yoo (k) yio yio =(do(k) yoo (k))f ′( yio (k)) δo (k)
BP网络的标准学习算法 2.4.2 BP网络的标准学习算法
2.4 BP神经网络模型与学习算法 BP神经网络模型与学习算法
智能中国网提供学习支持 www.5iai.com
概述
Rumelhart,McClelland于1985年提出了BP网络的误差反 Rumelhart,McClelland于1985年提出了BP网络的误差反 年提出了BP 向后传BP(Back Propagation)学习算法 向后传BP(Back Propagation)学习算法
N+1 ih N ih
BP网络的标准学习算法 2.4.2 BP网络的标准学习算法
第八步, 第八步,计算全局误差
1 2 E= ∑∑ (d o (k ) yo (k )) 2m k =1 o =1
第九步,判断网络误差是否满足要求。 第九步,判断网络误差是否满足要求。当误差 达到预设精度或学习次数大于设定的最大次数, 达到预设精度或学习次数大于设定的最大次数, 则结束算法。否则, 则结束算法。否则,选取下一个学习样本及对 应的期望输出,返回到第三步, 应的期望输出,返回到第三步,进入下一轮学 习。
误差的反向传播
BP网络的标准学习算法 网络的标准学习算法2.4.2 BP网络的标准学习算法-学习过程
正向传播: 正向传播:
输入样本---输入层---各隐层---输出层
判断是否转入反向传播阶段: 判断是否转入反向传播阶段:
若输出层的实际输出与期望的输出(教师信号)不 符
误差反传
误差以某种形式在各层表示----修正各层单元 的权值
BP神经网络模型 2.4.1 BP神经网络模型
激活函数 必须处处可导
一般都使用S 一般都使用S型函数
使用S型激活函数时BP网络输入与输出关系 使用S型激活函数时BP网络输入与输出关系 BP 输入
net = x1w1 + x2 w2 + ... + xn wn
输出
1 y = f (net ) = 1 + e net
2
o =1
BP网络的标准学习算法 2.4.2 BP网络的标准学习算法
第一步, 第一步,网络初始化 给各连接权值分别赋一个区间(-1,1) 内的随机数,设定误差函数e,给定计 算精度值ε 和最大学习次数M。 第二步, 第二步,随机选取第 k个输入样本及对应 期望输出
d o ( k ) = ( d1 ( k ), d 2 ( k ),L , d q ( k ) )
p 1 q ( ∑ (( d o ( k ) f( ∑ who hoh ( k ) bo ) 2 )) hoh ( k ) 2 o =1 h =1 = hoh ( k ) hih ( k )
= ∑ ( d o ( k ) yoo ( k )) f ′( yio ( k )) who
o =1
q
i =1 n
wih
= xi ( k )
BP网络的标准学习算法 2.4.2 BP网络的标准学习算法
1 q ( ∑ (d o ( k ) yoo (k )) 2 ) e hoh ( k ) 2 o =1 = hih ( k ) hoh ( k ) hih ( k ) 1 q ( ∑ ( d o ( k ) f( yio ( k ))) 2 ) hoh ( k ) 2 o =1 = hoh ( k ) hih ( k )
BP网络的标准学习算法 2.4.2 BP网络的标准学习算法
学习的过程: 学习的过程: 神经网络在外界输入样本的刺激下不断改变网 络的连接权值,以使网络的输出不断地接近期 望的输出。 学习的本质: 学习的本质: 对各连接权值的动态调整 学习规则: 学习规则: 权值调整规则,即在学习过程中网络中各神经 元的连接权变化所依据的一定的调整规则。
who
e <0, w ho
此时w 此时 ho>0
BP神经网络学习算法的MATLAB实现 神经网络学习算法的MATLAB 2.4.3 BP神经网络学习算法的MATLAB实现 MATLAB中BP神经网络的重要函数和基本 MATLAB中BP神经网络的重要函数和基本 功能
函数名 newff() tansig() logsig() traingd() 功 能 生成一个前馈BP网络 生成一个前馈 网络 双曲正切S型 双曲正切 型(Tan-Sigmoid)传输函数 传输函数 对数S型 对数 型(Log-Sigmoid)传输函数 传输函数 梯度下降BP训练函数 梯度下降 训练函数
BP神经网络模型 2.4.1 BP神经网络模型
输出的导数
1 1 f '(net ) = = y (1 y ) -net net 2 1+ e (1 + e )
根据S型激活函数的图形可知,对神经网络进行训练,应该将net的值 根据S型激活函数的图形可知,对神经网络进行训练,应该将net的值 net 尽量控制在收敛比较快的范围内
N N who+1 = who + ηδ o ( k )hoh ( k )
BP网络的标准学习算法 2.4.2 BP网络的标准学习算法
第七步, 第七步,利用隐含层各神经元的 δ h (k )和 输入层各神经元的输入修正连接权。 输入层各神经元的输入修正连接权。
e e hih(k) w (k) = = =δh(k)xi (k) ih w hih(k) w ih ih w = w +ηδh(k)xi (k)
网络输出的误差减少到可接受的程度 进行到预先设定的学习次数为止
BP网络的标准学习算法 2.4.2 BP网络的标准学习算法
网络结构 输入层有n个神经元,隐含层有p个神经元, 输出层有q个神经元 变量定义 x = ( x1 , x 2 ,L , x n ) 输入向量; 隐含层输入向量; h i = ( h i1 , h i 2 , L , h i p ) 隐含层输出向量; ho = ( ho1 , ho 2 ,L , ho p ) 输出层输入向量; yi = ( yi1 , yi2 , L , yiq ) 输出层输出向量; yo = ( yo1 , yo2 , L , yo q ) 期望输出向量; d = d , d , L , d
m
q
BP网络的标准学习算法 2.4.2 BP网络的标准学习算法
BP算法直观解释 BP算法直观解释 情况一直观表达
当误差对权值的偏 导数大于零时, 导数大于零时,权值 调整量为负, 调整量为负,实际输 出大于期望输出, 出大于期望输出, 权值向减少方向调整, 权值向减少方向调整, 使得实际输出与期望 输出的差减少。 输出的差减少。
o
(
1
2
q
)
BP网络的标准学习算法 2.4.2 BP网络的标准学习算法
输入层与中间层的连接权值: wih 隐含层与输出层的连接权值: who 隐含层各神经元的阈值: bh 输出层各神经元的阈值: bo 样本数据个数: k = 1, 2,L m 激活函数: f() 1 q 误差函数: = ∑ ( d o ( k ) yoo ( k )) 2 e
BP网络的标准学习算法 网络的标准学习算法2.4.2 BP网络的标准学习算法-算法思想
学习的类型: 学习的类型:有导师学习 核心思想: 核心思想:
将输出误差以某种形式通过隐层向输入层逐层反传
将误差分摊给各层的所有 单元--- ---各层单元的误 单元---各层单元的误 差信号
修正各单元权 值
学习的过程: 学习的过程: 信号的正向传播
x (k ) = ( x1 (k ), x2 (k ),L, xn (k ) )
BP网络的标准学习算法 2.4.2 BP网络的标准学习算法
第三步, 第三步,计算隐含层各神经元的输入和 输出
hih ( k ) =
n
∑w
i =1
ih
x i ( k ) bh
h = 1, 2, L , p
hoh ( k ) = f( hih ( k ))
David Rumelhart
J. McClelland
BP算法基本原理 BP算法基本原理 利用输出后的误差来估计输出层的直接前导层的误差, 再用这个误差估计更前一层的误差,如此一层一层的反 传下去,就获得了所有其他各层的误差估计。
来自百度文库
BP神经网络模型 2.4.1 BP神经网络模型
三层BP网络 三层BP网络 BP
BP神经网络学习算法的MATLAB实现 神经网络学习算法的MATLAB 2.4.3 BP神经网络学习算法的MATLAB实现
MATLAB中BP神经网络的重要函数和基本功能 MATLAB中BP神经网络的重要函数和基本功能
newff()
建立一个前向BP BP网络 功能 建立一个前向BP网络 newff(PR, S2...SN1], 格式 net = newff(PR,[S1 S2...SN1],{TF1 TF2...TFN1},BTF,BLF, TF2...TFN1},BTF,BLF,PF) net为创建的新BP神经网络 PR为网络输入 为创建的新BP神经网络; 说明 net为创建的新BP神经网络;PR为网络输入 取向量取值范围的矩阵; S2…SNl] SNl]表示网络 取向量取值范围的矩阵;[S1 S2 SNl]表示网络 隐含层和输出层神经元的个数; TF2…TFN1} 隐含层和输出层神经元的个数;{TFl TF2 TFN1} 表示网络隐含层和输出层的传输函数,默认为 表示网络隐含层和输出层的传输函数, tansig’;BTF表示网络的训练函数 表示网络的训练函数, ‘tansig ;BTF表示网络的训练函数,默认为 trainlm’;BLF表示网络的权值学习函数 表示网络的权值学习函数, ‘trainlm ;BLF表示网络的权值学习函数,默认 learngdm’;PF表示性能数 默认为‘mse’。 表示性能数, 为‘learngdm ;PF表示性能数,默认为‘mse 。
BP神经网络学习算法的MATLAB实现 神经网络学习算法的MATLAB 2.4.3 BP神经网络学习算法的MATLAB实现
MATLAB中BP神经网络的重要函数和基本功能 MATLAB中BP神经网络的重要函数和基本功能
hoh ( k ) hih ( k )
= ( ∑ δ o ( k )who ) f ′( hih ( k ))
o =1
q
δ h ( k )
BP网络的标准学习算法 2.4.2 BP网络的标准学习算法
第六步, 第六步,利用输出层各神经元的 δ o ( k ) 和 隐含层各神经元的输出来修正连接权 值 who (k ) 。 e who (k ) = = δ o ( k )hoh ( k ) who
第五步, 第五步,利用隐含层到输出层的连接权 值、输出层的 δ o (k )和隐含层的输出计算误 差函数对隐含层各神经元的偏导数 δ h (k )。
e e yio = = δ o ( k )hoh ( k ) who yio who
e e hih ( k ) = wih hih ( k ) wih hih ( k ) = wih ( ∑ wih xi ( k ) bh )
p
h = 1, 2,L, p
o = 1, 2,L q
yio ( k ) = ∑ who hoh ( k ) bo
yoo ( k ) = f( yio ( k ))
h =1
o = 1, 2,L q
BP网络的标准学习算法 2.4.2 BP网络的标准学习算法
第四步,利用网络期望输出和实际输出, 第四步,利用网络期望输出和实际输出, 计算误差函数对输出层的各神经元的偏导 δo 数 。(k ) ( ∑ w ho ( k ) b ) e e yio yi (k ) =