最新数学建模bp神经网络.docx

  • 格式:docx
  • 大小:89.85 KB
  • 文档页数:8

下载文档原格式

  / 8
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 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. 判断网络误差是否满足要求。当误差达到预设精度或学习次数大于设定的

最大次数,则结束算法。否则,选取下一个学习样本及对应的期望输出,返回到第三步,进入下一轮学习。