最新数学建模bp神经网络.docx
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
BP神经网络
算法原理:
输入信号 x i通过中间节点(隐层点)作用于输出节点,经过非线形变换,产生输
出信号 y k,网络训练的每个样本包括输入向量x 和期望输出量d,网络输出值y 与期望输出值 d 之间的偏差,通过调整输入节点与隐层节点的联接强度取值w ij和隐层节点与输出节点之间的联接强度T jk以及阈值,使误差沿梯度方向下降,经过反复学习训练,
确定与最小误差相对应的网络参数(权值和阈值),训练即告停止。此时经过训练的神经网络即能对类似样本的输入信息,自行处理输出误差最小的经过非线形转换的信息。
变量定义:
设输入层有 n 个神经元,隐含层有p 个神经元 , 输出层有 q 个神经元
输入向量: x x1 , x2 ,L , x n
隐含层输入向量:hi hi1, hi2 ,L , hi p
隐含层输出向量:ho ho1 , ho2 ,L ,ho p
输出层输入向量:yi yi1, yi2 ,L , yi q
输出层输出向量:yo yo1, yo2 ,L , yo q
期望输出向量 : do d1, d2 ,L , d q
输入层与中间层的连接权值:w ih
隐含层与输出层的连接权值:w ho
隐含层各神经元的阈值: b h
输出层各神经元的阈值:b o
样本数据个数 :k1,2,L m
激活函数 : f
误差函数: e 1 q(d o (k )yo o (k )) 2
2 o1
算法步骤:
Step1. 网络初始化 。给各连接权值分别赋一个区间( -1 , 1)内的随机数,设定
误差函数 e ,给定计算精度值
和最大学习次数 M 。
Step2. 随机选取第 k 个输入样本
x( k)
x 1( k ), x 2 (k),L , x n (k ) 及对应期望输出
d o ( k) d 1 (k ), d 2 ( k),L , d q (k)
Step3. 计算隐含层各神经元的输入
n
hi h ( k)
w ih x i (k ) b h h 1,2,L , p 和输出
i
1
ho h (k)
f (hi h (k )) h 1,2, L , p
及
输 出 层
各 神 经
元
的
输
入
p
yi o (k )
w ho ho h (k) b o o 1,2,L q 和输出 yo o ( k) f ( yi o (k )) o 1,2, L , p
h 1
Step4. 利用网络期望输出和实际输出, 计算误差函数对输出层的各神经元的偏导
数 o (k ) 。
e e yi o
w ho yi o w ho
p
yi o ( k) (
h
w ho ho h (k ) b o )
ho h (k )
w ho
w ho
e
( 1
q (d o ( k) yo o (k))) 2 2 o 1
( d o (k )
yi o
yi o
(d o (k) yo o (k ))f ( yi o (k )) @ o (k )
Step5. 利用隐含层到输出层的连接权值、输出层的
差函数对隐含层各神经元的偏导数
h (k ) 。
e e yi o o ( k) ho h (k )
w ho
yi o
w
ho
e
e
hi h (k)
w
ih
hi h ( k) w ih
n
hi h (k )
( w ih x i (k ) b h )
i
1
x i ( k)
w
ih
w
ih
yo o (k )) yo o (k )
o ( k) 和隐含层的输出计算误
精品文档
e hi h (k )(
1
q(d
o
( k)yo (k)) 2 )
2 o 1o ho h (k )
ho h (k )hi h (k )
(
1
q
(d o ( k)f( yi o (k )))2 )
ho h (k)
2 o1
ho h ( k)hi h (k)
(
1
q
((d o (k)f(p w ho ho h (k ) b o )2 ))
2 o1h 1ho h (k )
ho h (k)hi h (k ) q ho h (k)
o 1
( d
o
(k )yo
o
(k ))f ( yi
o
(k))w
ho hi h(k) q
(o (k )w ho )f (hi h ( k)) @h (k )
o 1
Step6. 利用输出层各神经元的o (k )和隐含层各神经元的输出来修正连接权值w ho (k ) 。
w ho (k )
e
o (k)ho h (k) w
ho
w ho N 1w ho N o (k )ho h (k)
Step7. 利用隐含层各神经元的h (k ) 和输入层各神经元的输入修正连接权 w ih ( k) 。
w ih (k)
e e hi h ( k)
w
ih hi h ( k)
h (k) x i ( k)
w
ih
w ih N 1w ih N h (k ) x i (k ) Step8. 计算全局误差。
1m q
y o ( k)) 2
E(d o (k)
2m k 1 o1
Step9. 判断网络误差是否满足要求。当误差达到预设精度或学习次数大于设定的
最大次数,则结束算法。否则,选取下一个学习样本及对应的期望输出,返回到第三步,进入下一轮学习。