当前位置:文档之家› BP神经网络

BP神经网络



(( d 2
o 1
o
( k ) f( w h o h o h ( k ) b o ) ))
2 h 1
p
hoh (k ) h ih ( k )
hoh (k )
q
( d o ( k ) y o o ( k )) f ( y i o ( k )) w h o
3. BP网络学习算法
学习的过程: 神经网络在外界输入样本的刺激下不断改变网络的连接权值,以 使网络的输出不断地接近期望的输出。 学习的本质: 对各连接权值的动态调整 正向传播:
输入样本---输入层---各隐层---输出层
判断是否转入反向传播阶段: 若输出层的实际输出与期望的输出不符 误差反传 误差以某种形式在各层表示----修正各层单元的权值
hi h ( k )
hi h ( k ) w ih
h (k ) xi (k )
w ih h ( k ) x i ( k )
第八步,计算全局误差
E 1 2m
(d
k 1 o 1
m
q
o
( k ) y o ( k ))
2
第九步,判断网络误差是否满足要求。当误差 达到预设精度或学习次数大于设定的最大次数 ,则结束算法。否则,选取下一个学习样本及 对应的期望输出,返回到第三步,进入下一轮 学习。
%创建一个BP神经网络,每一个输入向量的取值范围为[0 ,1],隐含层有 5个神经元,输出层有一个神经元,隐含层的激活函数为tansig,输出层的 激活函数为logsig,训练函数为梯度下降函数 net=newff([0 1;0 1;0 1],[5,1],{'tansig','logsig'},'traingd'); net.trainParam.epochs=15000; %训练步数 net.trainParam.goal=0.01; %误差性能目标值
4 BP神经网络的应用实例
例2-3,下表为某药品的销售情况,现构建一个如下的三层BP神经 网络对药品的销售进行预测:输入层有三个结点,隐含层结点数为 5,隐含层的激活函数为tansig;输出层结点数为1个,输出层的激 活函数为logsig,并利用此网络对药品的销售量进行预测,预测方 法采用滚动预测方式,即用前三个月的销售量来预测第四个月的销 售量,如用1、2、3月的销售量为输入预测第4个月的销售量,用2 、3、4月的销售量为输入预测第5个月的销售量.如此反复直至满足 预测精度要求为止。 月份 销量
N 1 N
e w ho
o (k )hoh (k )
w ho o ( k ) h o h ( k )
第七步,利用隐含层各神经元的 各神经元的输入修正连接权。
h
(k )
和输入层
w ih ( k ) w ih
N 1 N
e w ih

e
y io w h o
( w h o h o h ( k ) bo )
h
p
w ho
hoh (k )
e yio
(
1 2

o 1
q
( d o ( k ) yo o ( k ))) yio
2
( d o ( k ) yo o ( k )) yo o ( k )
第三步,计算隐含层各神经元的输入和输出
n
h ih ( k )

i 1
w ih x i ( k ) b h
h 1, 2 , , p
h o h ( k ) f( h i h ( k ))
y io ( k )
h 1, 2 , , p
o 1, 2 , q

h 1
BP神经网络
神经元
人工神经网络
BP神经网络
生物神经元模型
特征:
(1)信息处理和存储单元结合在一起
(2)一种并行、分布处理结构 (3)自组织、自学习功能
人工神经网络模型
历史中具有重要影响的神经网络
感知器
自适应线性单元 小脑自动机 BP神经网络 盒中脑BSB网络 自组织特征映射网络SOM Hopfield网络 双向联想记忆网络BAM 双向传播网CPN ……
1 2056
2 2395
3 2600
4 2298
5 1634
6 1600
月份
销量
7
1873
8
1478
9
1900
10
1500
11
2046
12
1556
%以每三个月的销售量经归一化处理后作为输入 P=[0.5152 0.8173 1.0000 ; 0.8173 1.0000 0.7308; 1.0000 0.7308 0.1390; 0.7308 0.1390 0.1087; 0.1390 0.1087 0.3520; 0.1087 0.3520 0.0000;]'; %以第四个月的销售量归一化处理后作为目标向量 T=[0.7308 0.1390 0.1087 0.3520 0.0000 0.3761];
给各连接权值分别赋一个区间(-1,1)内的随机数 ,设定误差函数e,给定计算精度值ε和最大学习次 数M。
第二步: 随机选取第k个输入样本及对应期望输出
x ( k ) x 1 ( k ), x 2 ( k ), , x n ( k )
d o ( k ) d 1 ( k ), d 2 ( k ), , d q ( k )
BP神经网络
BP神经网络概述 BP神经网络模型 BP网络学习算法 基本思想 推导过程 BP神经网络的应用实例 BP网络的局限性
1. 概述
Rumelhart,McClelland于1985年提出了BP网络的误差反向 后传BP(Back Propagation)学习算法
David Rumelhart
2.2 隐层数
一般认为,增加隐层数可以降低网络误差(也有文献认为不一定 能有效降低),提高精度,但也使网络复杂化,从而增加了网络的 训练时间和出现“过拟合”现象。 Hornik等早已证明:若输入层和输出层采用线性转换函数,隐层采 用Sigmoid转换函数,则含一个隐层的MLP网络能够以任意精度逼近 任何有理函数。显然,这是一个存在性结论。在设计BP网络时可参 考这一点,应优先考虑3层BP网络(即有1个隐层)。

e
y io
y io w h o
e
o (k )hoh (k )

h ih ( k ) w ih
n
h ih ( k )
h ih ( k ) w ih
( w ih x i ( k ) b h )
i 1
w ih
xi (k )
e h ih ( k )
J. McClelland
BP神经网络是一种按误差逆传播算法训练的多层前馈网络 ,是目前应用最广泛的神经网络模型之一。它的学习规则 是使用最速下降法,通过反向传播来不断调整网络的权值 和阈值,使网络的误差平方和最小。
2. BP神经网络模型
激活函数f(x)
必须处处可导
一般都使用S型函数
p
w h o h o h ( k ) bo
y o o ( k ) f( y i o ( k ))
o 1, 2 , q
第四步,利用网络期望输出和实际输出,计算 误差函数对输出层的各神经元的偏导数 ( k ) 。
o
e w ho

e
y io
y io ( k ) w ho
( d o ( k ) yo o ( k )) f ( yio ( k )) o ( k )

第五步,利用隐含层到输出层的连接权值、输 出层的 ( k ) 和隐含层的输出计算误差函数对隐 含层各神经元的偏导数 ( k ) 。
o h
e w ho
e w ih
BP神经网络的应用较为广泛,主要使用在构建预测模型 机械控制、信号处理、材料学、医学、水文预报等等
电子商务:
企业网站绩效评价 电子商务系统绩效评价 顾客满意度评价
例子:一种基于BP 神经网络的B2C电子商务 顾客满意度评价模型
第一步:列出B2C 电子商务顾客满意度评价指标体系
第二步:指标归一化处理
定量指标 Y=(X-min)/(max-min)
定性指标 专家打分法
第三步:网络模型的设计
输入层节点数:11个 隐含层节点数:4个 输出层节点数:5个
从验证及比较结果可看出,网络评价的结果和实际评价的结果 基本上是一致的,这标志着基于BP 神经网络的B2C电子商务企业顾
%设置学习速率为0.1 LP.lr=0.1; net=train(net,P,T);
%进行仿真
Y= sim(net,P);
%比较结果
plot(T) hold on plot(Y,'+')
由对比图可以看出预测效果与实际存在一定误差,此误差可以通过 增加运行步数和提高预设误差精度业进一步缩小。
误差改为 0.005
一般地,靠增加隐层节点数来获得较低的误差,其训练效果要比增 加隐层数更容易实现。
2.2 隐层节点数
在BP 网络中,隐层节点数的选择非常重要,它不仅对建立的神经 网络模型的性能影响很大,而且是训练时出现“过拟合”的直接原因, 但是目前理论上还没有一种科学的和普遍的确定方法。
目前多数文献中提出的确定隐层节点数的计算公式都是针对训练样 本任意多的情况。 事实上,各种计算公式得到的隐层节点数有时相差几倍甚至上百倍。 确定隐层节点数的最基本原则是:在满足精度要求的前提下取尽可能 紧凑的结构,即取尽可能少的隐层节点数。 研究表明,隐层节点数不仅与输入/输出层的节点数有关,更与需解 决的问题的复杂程度和转换函数的型式以及样本数据的特性等因素有 关。
相关主题