BP神经网络模型
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训练函数 梯度下降 训练函数
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.1 BP神经网络模型
输出的导数
1 1 f '(net ) = = y (1 y ) -net net 2 1+ e (1 + e )
根据S型激活函数的图形可知,对神经网络进行训练,应该将net的值 根据S型激活函数的图形可知,对神经网络进行训练,应该将net的值 net 尽量控制在收敛比较快的范围内
hoh ( k ) hih ( k )
= ( ∑ δ o ( k )who ) f ′( hih ( k )) δ h ( k )
o =1
q
BP网络的标准学习算法 2.4.2 BP网络的标准学习算法
第六步, 第六步,利用输出层各神经元的 δ o ( k ) 和 隐含层各神经元的输出来修正连接权 值 who (k ) 。 e who (k ) = = δ o ( k )hoh ( k ) who
o
(
1
2Байду номын сангаас
q
)
BP网络的标准学习算法 2.4.2 BP网络的标准学习算法
输入层与中间层的连接权值: wih 隐含层与输出层的连接权值: who 隐含层各神经元的阈值: bh 输出层各神经元的阈值: bo 样本数据个数: k = 1, 2, m 激活函数: f() 1 q 误差函数: = ∑ ( d o ( k ) yoo ( k )) 2 e
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 。
m
q
BP网络的标准学习算法 2.4.2 BP网络的标准学习算法
BP算法直观解释 BP算法直观解释 情况一直观表达
当误差对权值的偏 导数大于零时, 导数大于零时,权值 调整量为负, 调整量为负,实际输 出大于期望输出, 出大于期望输出, 权值向减少方向调整, 权值向减少方向调整, 使得实际输出与期望 输出的差减少。 输出的差减少。
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网络的标准学习算法
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
误差的反向传播
BP网络的标准学习算法 网络的标准学习算法2.4.2 BP网络的标准学习算法-学习过程
正向传播: 正向传播:
输入样本---输入层---各隐层---输出层
判断是否转入反向传播阶段: 判断是否转入反向传播阶段:
若输出层的实际输出与期望的输出(教师信号)不 符
误差反传
误差以某种形式在各层表示----修正各层单元 的权值
e
who
e >0,此时 ho<0 ,此时w w ho
BP网络的标准学习算法 2.4.2 BP网络的标准学习算法
BP算法直解释 BP算法直解释 情况二直观表达
e
当误差对权值的偏导数 小于零时, 小于零时,权值调整量 为正, 为正,实际输出少于期 望输出, 望输出,权值向增大方向 调整, 调整,使得实际输出与期 望输出的差减少。 望输出的差减少。
David Rumelhart
J. McClelland
BP算法基本原理 BP算法基本原理 利用输出后的误差来估计输出层的直接前导层的误差, 再用这个误差估计更前一层的误差,如此一层一层的反 传下去,就获得了所有其他各层的误差估计。
BP神经网络模型 2.4.1 BP神经网络模型
三层BP网络 三层BP网络 BP
网络输出的误差减少到可接受的程度 进行到预先设定的学习次数为止
BP网络的标准学习算法 2.4.2 BP网络的标准学习算法
网络结构 输入层有n个神经元,隐含层有p个神经元, 输出层有q个神经元 变量定义 x = ( x1 , x 2 , , x n ) 输入向量; 隐含层输入向量; h i = ( h i1 , h i 2 , , h i p ) 隐含层输出向量; ho = ( ho1 , ho 2 , , ho p ) 输出层输入向量; yi = ( yi1 , yi2 , , yiq ) 输出层输出向量; yo = ( yo1 , yo2 , , yo q ) 期望输出向量; d = d , d , , d
x (k ) = ( x1 (k ), x2 (k ),, xn (k ) )
BP网络的标准学习算法 2.4.2 BP网络的标准学习算法
第三步, 第三步,计算隐含层各神经元的输入和 输出
hih ( k ) =
n
∑w
i =1
ih
x i ( k ) bh
h = 1, 2, , p
hoh ( k ) = f( hih ( k ))
2.4 BP神经网络模型与学习算法 BP神经网络模型与学习算法
概述
Rumelhart,McClelland于1985年提出了BP网络的误差反 Rumelhart,McClelland于1985年提出了BP网络的误差反 年提出了BP 向后传BP(Back Propagation)学习算法 向后传BP(Back Propagation)学习算法
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.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个输入样本及对应 期望输出