数学建模bp神经网络讲解学习

萌到你眼炸
748次浏览
2020年12月12日 15:59
最佳经验
本文由作者推荐

附子的功效与作用-我心飞翔作文

2020年12月12日发(作者:邵小利)


学建模BP神经
络论文




数网


精品资料
BP神经网络
算法原理:
输入信 号
x
i
通过中间节点(隐层点)作用于输出节点,经过非线形变换,产生
输出 信号
y
k
,网络训练的每个样本包括输入向量
x
和期望输出量
d
,网络输出值
y

期望输出值
d
之间的偏差,通过调整 输入节点与隐层节点的联接强度取值
w
ij
和隐层
节点与输出节点之间的联接 强度
T
jk
以及阈值,使误差沿梯度方向下降,经过反复学
习训练,确定与最 小误差相对应的网络参数(权值和阈值),训练即告停止。此时
经过训练的神经网络即能对类似样本的输 入信息,自行处理输出误差最小的经过非
线形转换的信息。
变量定义:
设输入层有
n
个神经元,隐含层有
p
个神经元,输出层有
q
个神经元
输入向量:
x

x
1
,x
2
,,xn


,hi
p


,ho
p


,yi
q


,yo
q


隐含层输入向量:
hi

hi
1
,hi
2
,
隐含层输出向量:
ho
ho
1
,ho
2
,
输出层输入向量:
yi

yi
1
,yi
2
,
输出层输出向量:
yo

yo
1
,yo
2
,
期望输出向量:
do< br>
d
1
,d
2
,,d
q


输入层与中间层的连接权值:
w
ih

隐含层与输出层的连接权值:
w
ho

隐含层各神经元的阈值:
b
h

输出层各神经元的阈值:
b
o

样本数据个数:
k1,2,m

仅供学习与交流,如有侵权请联系网站删除 谢谢
2


精品资料
激活函数:
f




1
q
误 差函数:
e

(d
o
(k)yo
o
(k))< br>2

2
o1
算法步骤:
Step1.网络初始化 。给各 连接权值分别赋一个区间(-1,1)内的随机数,设
定误差函数
e
,给定计算精度值

和最大学习次数M。
Step2.随机选取第
k
个输入样本x( k)

x
1
(k),x
2
(k),,x
n
(k)

及对应期望输出
d
o
(k)

d1
(k),d
2
(k),,d
q
(k)


n
Step3.计算隐含层各神经元的输入
hi
h
(k)

w
ih
x
i
(k)b
h

h1,2 ,
i1
,p

和输出
ho
h
(k)f(hi< br>h
(k))

h1,2,
p
,p

及输出 层各神经元的输入
q

和输出
yo
o
(
k
)
f
(
yi
o
(
k
))

o
1,2,
yi
o
(k)

w
ho
ho< br>h
(k)b
o

o1,2,
h1
,
p


Step4.利用网络期望输出和实际输出,计算误差函数对输出层的各神经元的 偏
导数

o
(
k
)

ee
yi
o


w
ho
yi< br>o
w
ho
yi
o
(k)

w
ho
(

w
ho
ho
h
(k)b
o< br>)
h
p
w
ho
ho
h
(k)

1
q
(

(d
o
(k)yo
o
(k)))
2
e
2
o1

(k)

(d
o
(k)yo
o
(k))yo
o
yi
o
yi
o
(d
o
(k)yo
o
(k)) f

(yi
o
(k))

o
(k)
St ep5.利用隐含层到输出层的连接权值、输出层的

o
(k)
和隐含层的输 出计算误
差函数对隐含层各神经元的偏导数

h
(
k
)
仅供学习与交流,如有侵权请联系网站删除 谢谢
3


精品资料
ee
yi
o

o
(k)ho
h
(k)

w
ho
yio
w
ho
ee
hi
h
(k)

w
ih
hi
h
(k)w
ih
hi
h(k)

w
ih
(

w
ih
x< br>i
(k)b
h
)
i1
n

x
i
(k)
w
ih
1
q
(

(d
o
(k)yo
o
(k))
2
)
ho
h
(k)
e
2
o1

hi
h
(k)ho< br>h
(k)hi
h
(k)
1
q
(

(d
o
(k)f(yi
o
(k)))
2
)
h o
h
(k)
2
o1

ho
h
(k) hi
h
(k)
p
1
q
(

((d
o
(k)f(

w
ho
ho
h
(k)bo
)
2
))
ho
h
(k)
2
o1 h1


ho
h
(k)hi
h
(k)


(d
o
(k)yo
o
(k))f
(yi
o
(k))w
ho
o1
q
ho
h< br>(k)
hi
h
(k)
(


o
(k)w
ho
)f

(hi
h
(k))
o1< br>q


h
(k)
Step6.利用输出层各神经元的

o
(k)
和隐含层各神经元的输出来修正连接权值
w
ho
(k)

w
ho
(k)

e


o
(k)ho
h
(k)
w
ho

N 1N
w
ho
w
ho


o
(k)h o
h
(k)
Step7.利用隐含层各神经元的

h
(k)
和输入层各神经元的输入修正连接权
w
ih
(k)

 w
ih
(k)

ee
hi
h
(k)



h
(k)x
i
(k)
w
ih
hi
h
(k)w
ih

N1N
w
ih
w
ih


h
(k)x
i(k)
Step8.计算全局误差。
1
m
q
E(d
o
(k)y
o
(k))
2


2m
k1o1
仅供学习与交流,如有侵权请联系网站删除 谢谢
4


精品资料
Step9.判断网络误差是否满足要求。当误差 达到预设精度或学习次数大于设定
的最大次数,则结束算法。否则,选取下一个学习样本及对应的期望输 出,返回到
第三步,进入下一轮学习。
仅供学习与交流,如有侵权请联系网站删除 谢谢
5


精品资料
算法流程图:
网络初始化
输入
x
,根据网络的状
计算全局误差:
1
m
q< br>E(d
o
(k)y
o
(k))
2

2 m
k1o1
YE
S
E


N
YE
S
达到最大
NO
修改权值:
训练完< br>w
N1
w
N


(k)x(k)



参数确定:
确定了网络层数、每层节点数、传递函数、初始权系数、学 习算法等也就确定
了BP网络。确定这些选项时有一定的指导原则,但更多的是靠经验和试凑。
仅供学习与交流,如有侵权请联系网站删除 谢谢
6


精品资料
1. 样本数据
采用BP神经网络方法建模的首要和前提条件是有足够多典型性好和精度高 的样
本。而且,为监控训练(学习)过程使之不发生“过拟合”和评价建立的网络模型
的性能和 泛化能力,必须将收集到的数据随机分成训练样本、检验样本(10%以上)
和测试样本(10%以上) 3部分。
2.输入输出变量
一般地,BP网络的输入变量即为待分析系统的内生变量(影响 因子或自变量)
数,一般根据专业知识确定。若输入变量较多,一般可通过主成份分析方法压减输
入变量,也可根据剔除某一变量引起的系统误差与原系统误差的比值的大小来压减
输入变量。输出变量 即为系统待分析的外生变量(系统性能指标或因变量),可以
是一个,也可以是多个。一般将一个具有多 个输出的网络模型转化为多个具有一个
输出的网络模型效果会更好,训练也更方便。
3.数据的预处理
由于BP神经网络的隐层一般采用Sigmoid转换函数,为提高训练速 度和灵敏性
以及有效避开Sigmoid函数的饱和区,一般要求输入数据的值在0~1之间。因此,< br>要对输入数据进行预处理。一般要求对不同变量分别进行预处理,也可以对类似性
质的变量进行统 一的预处理。如果输出层节点也采用Sigmoid转换函数,输出变量
也必须作相应的预处理,否则, 输出变量也可以不做预处理。但必须注意的是,预
处理的数据训练完成后,网络输出的结果要进行反变换 才能得到实际值。再者,为
保证建立的模型具有一定的外推能力,最好使数据预处理后的值在0.2~0 .8之间。
标准化:
d


仅供学习与交流,如有侵权请联系网站删除 谢谢
7
dd
min





d
max
d
min


精品资料
4.隐层数
一般认为,增加隐层数可以降低网络误差,提高精度,但也使网络复杂化,从
而增加了网络的训 练时间和出现“过拟合(overfitting)” 造成网络的性能脆弱,
泛化能力(generalization ability)下降。Horni k等早已证明:若输入层和输出层
采用线性转换函数,隐层采用Sigmoid转换函数,则含一个隐层 的MLP网络能够以
任意精度逼近任何有理函数。显然,这是一个存在性结论。在设计BP网络时可参考
这一点,应优先考虑3层BP网络(即有1个隐层)。















输入层

x
1


隐含层

y
1


输出层

z
1


-


1


-

T
1


x

2

y

2

z

2


2


T
2


x

N

1

w
ih


y

N

2

w

hj

z

N

3



3

-

T

N

3
N


图 三层BP网络的拓扑结构
5.隐层节点数
在BP 网络中,若隐层节点数太少,网络可能根本不能训练或网络性能很差;若
隐层节点数太 多,虽然可使网络的系统误差减小,但一方面使网络训练时间延长,
另一方面,训练容易陷入局部极小点 而得不到最优点,也是训练时出现“过拟合”
的内在原因,但是目前理论上还没有一种科学的和普遍的确 定方法。为尽可能避免
训练时出现“过拟合”现象,保证足够高的网络性能和泛化能力,确定隐层节点数
的最基本原则是:在满足精度要求的前提下取尽可能紧凑的结构,即取尽可能少的
仅供学习与交 流,如有侵权请联系网站删除 谢谢
8


精品资料
隐层节点数。因此 ,合理隐层节点数应在综合考虑网络结构复杂程度和误差大小的
情况下用节点删除法和扩张法确定。
6.传递函数

图BP网络常用的传递函数
BP网络的传递函数有多种。Log- sigmoid型函数的输入值可取任意值,输出值
在0和1之间;tan-sigmod型传递函数t ansig的输入值可取任意值,输出值在-1
到+1之间;线性传递函数purelin的输入与输出 值可取任意值。BP网络通常有一个
或多个隐层,该层中的神经元均采用sigmoid型传递函数,输 出层的神经元则采用
线性传递函数,整个网络的输出可以取任意值。
7.学习率
学习率影响系统学习过程的稳定性。大的学习率可能使网络权值每一次的修正
量过大,甚至会导致权值在 修正过程中超出某个误差的极小值呈不规则跳跃而不收
敛;但过小的学习率导致学习时间过长,不过能保 证收敛于某个极小值。所以,一
般倾向选取较小的学习率以保证学习过程的收敛性(稳定性),通常在0 .01~0.8
之间。
8.网络的初始连接权值
仅供学习与交流,如有侵权请联系网站删除 谢谢
9


精品资料 BP算法决定了误差函数一般存在(很)多个局部极小点,不同的网络初始权值
直接决定了BP算法 收敛于哪个局部极小点或是全局极小点。因此,要求计算程序必
须能够自由改变网络初始连接权值。由于 Sigmoid转换函数的特性,一般要求初始
权值分布在-0.5~0.5之间比较有效。
10.收敛误差界值Emin
在网络训练过程中应根据实际情况预先确定误差界值。误差界 值的选择完全根
据网络模型的收敛速度大小和具体样本的学习精度来确定。当Emin 值选择较小时,
学习效果好,但收敛速度慢,训练次数增加。如果Emin值取得较大时则相反。

网络模型的性能和泛化能力:
训练神经网络的首要和根本任务是确保训练好的网络 模型对非训练样本具有好
的泛化能力(推广性),即有效逼近样本蕴含的内在规律,而不是看网络模型对 训
练样本的拟合能力。判断建立的模型是否已有效逼近样本所蕴含的规律, 主要不是
看测试样 本误差大小的本身,而是要看测试样本的误差是否接近于训练样本和检验
样本的误差。非训练样本误差很 接近训练样本误差或比其小,一般可认为建立的网
络模型已有效逼近训练样本所蕴含的规律,否则,若相 差很多(如几倍、几十倍甚
至上千倍)就说明建立的网络模型并没有有效逼近训练样本所蕴含的规律,而 只是
在这些训练样本点上逼近而已,而建立的网络模型是对训练样本所蕴含规律的错误
反映。

算法的特点:
1.非线性映照能力。神经网络能以任意精度逼近任何非线性连续函 数。在建模
过程中的许多问题正是具有高度的非线性。
2.并行分布处理方式。在神经网络中 信息是分布储存和并行处理的,这使它具
有很强的容错性和很快的处理速度。
仅供学习与交流,如有侵权请联系网站删除 谢谢
10


精品资料 < br>3.自学习和自适应能力。神经网络在训练时,能从输入、输出的数据中提取出
规律性的知识,记 忆于网络的权值中,并具有泛化能力,即将这组权值应用于一般
情形的能力。神经网络的学习也可以在线 进行。
4.数据融合的能力。神经网络可以同时处理定量信息和定性信息,因此它可以
利用传 统的工程技术(数值运算)和人工智能技术(符号处理)。
5.多变量系统。神经网络的输入和输出变 量的数目是任意的,对单变量系统与
多变量系统提供了一种通用的描述方式,不必考虑各子系统间的解耦 问题

算法的缺点:
收敛速度缓慢;容易陷入局部极小值;难以确定隐层数和隐层节点个数。

算法的改进:
1. 利用动量法改进BP算法
标准BP算法实质上是一种简单的最 速下降静态寻优方法,在修正
w

k

时,只
按照第
k
步的负梯度方向进行修正,而没有考虑到以前积累的经验,即以前时刻的梯
度方向,从而常 常使学习过程发生振荡,收敛缓慢。动量法权值调整算法的具体做
法是:将上一次权值调整量的一部分迭 加到按本次误差计算所得的权值调整量上,
作为本次的实际权值调整量,即:
w

n



E

n



w

n1


其中:α为动量系数,通常0<α< 0.9;η—学习率,范围在0.001~10之间。
这种方法所加的动量因子实际上相当于阻尼项,它 减小了学习过程中的振荡趋势,
从而改善了收敛性。动量法降低了网络对于误差曲面局部细节的敏感性, 有效的抑
制了网络陷入局部极小。
2.自适应调整学习速率
仅供学习与交流,如有侵权请联系网站删除 谢谢
11


精品资料 < br>标准BP算法收敛速度缓慢的一个重要原因是学习率选择不当,学习率选得太
小,收敛太慢;学习 率选得太大,则有可能修正过头,导致振荡甚至发散。可采用
下图所示的自适应方法调整学习率。

调整的基本指导思想是:在学习收敛的情况下,增大η,以缩短学习时间;当η偏大致使不能 收敛时,要及时
减小η,直到收敛为止。
3.

动量- 自适应学习速率调整算法
采用动量法时,BP算法可以找到更优的解;采用自适应学习速率法时,BP 算法
可以缩短训练时间。将以上两种方法结合起来,就得到动量-自适应学习速率调整算
法。
4.

L-M学习规则
L-M(Levenberg-Marquardt )算法比前述几种使用梯度下降法的BP算法要快得
多,但对于复杂问题,这种方法需要相当大的存储空 间。L-M(Levenberg-Marquardt)
优化方法的权值调整率选为:
w 

J
T
J

I

J
Te

1
其中:e—误差向量;J—网络误差对权值导数的雅可比(Jacobi an)矩阵;μ—
标量,当μ很大时上式接近于梯度法,当μ很小时上式变成了Gauss- Newton法,在这
种方法中,μ也是自适应调整的。
仅供学习与交流,如有侵权请联系网站删除 谢谢
12


精品资料

仅供学习与交流,如有侵权请联系网站删除 谢谢
13

录视频-减肥怎样减肚子


积累的名言-断弦


粥的各种做法-先感谢国家


广播电视业务-美容手册


o型血与o型血-学奕


《花木兰》-男人婆mv


死亡歌颂者-无欲速无见小利


婴幼儿退烧药-宋词爱情