2 BP神经网络原理
2.1 BP网络神经算法
BP神经网络是按照误差逆传播算法训练的多层前馈网络,是一种目前应用最广泛的神经网络模型。前层为输入层,中间层为隐含层,最后为输出层。BP算法的优点:具有计算过程严谨,物理概念清晰,兼容性好。用来作为神经网络学习的一种主要算法。不足:对于有限个数据需要进行反复学习,迭代次数较繁杂,所有节点输出的误差必须达到精度要求才可以。多层前馈网络结构如图(图 1-2-1)所示,箭头分别表示输入输出向量,每个神经元用一个节点表示。网络由输入层、隐层和输出层节点表示。隐层可以是一层,也可是多层(图中为单隐层)前层至后层节点通过权连接,即拓扑结构为有向无环图的向前网络,由于使用BP学习算法,所以称之为BP神经网络。
图 2-1-1 BP神经网络
BP网络的基本原理:
首先BP神经网络算法是由正向传播和反向传播组成。
已知网络的输入向量u是n维,输出向量为m维,输入/输出样本对长度为L。 正向传播中,输入信号从输入层经隐层到输出层,若输出层得到了期望的输出,学习算法结束;否则转向反向传播。而反向传播是将误差信号(样本输入与网络输出之差)按照原间接通路反向计算,由梯度下降法调整各层神经元的权值
与阀值,使误差信号减小。
算法步骤:
(1)设置初始权系W(0),它是较小的随机非零值。 (2)给定输入/输出样本对,计算网络的输出。 设第p组样本输入:
up?(u1p,u2p,...,unp) 2-1-1
?(d1p,d2p,...,dnp),p?1,2,...,L 2-1-2
样本输出:
dp 节点i在第p组样本输入时,输出为yip :
yip(t)?f[xip(t)]?f[?wij(t)Ijp] 2-1-3
j
式中,
Ijp是在第p组样本输入时,节点i的第j个输入。
f(.)取可微的S型函数,例如:
1f(x)?(1?e?x)
2-1-4
可由输入层经隐层至输出层,求的网络输出层节点的输出。 (3)计算网络的目标函数J
设EP 为在第p组样本输入时,网络的目标函数,取L2 范数,则
112Ep(t)?||dp?yp(t)||2??[dkp?ykp(t)]22k 1 2-1-5 2??ekp(t)2k 式中,
ykp(t)是在第p组样本输入事,经t次权值调整后的网络
输出,k是输出层第k个节点。
网络的总目标函数:
J(t)??Ep(t) 2-1-6
p 作为对网络学习状况的评价。 (4)判别
若
J(t)??)
2-1-7
算法结束;否则进入步骤(5)。式中?是预先设定的,??0。 (5)反向传播计算
由输出层,依据J,按梯度下降算法反向计算,可逐层调节权值。
由一般迭代算法
ak?1??k?J(ak)/?ak
2-1-8
取步长为常值,可得到神经元j到神经元i的连接权t+1次调整算式
wij(t?1)?wij(t)????Ep(t)/?wij(t)p?wij(t)??wij(t)式中,?为步长,再次称之为学习算子。
2.2 梯度下降法
2-1-9
(1)迭代算法
设sk 是点ak 的负梯度搜索方向,表示从点ak 出发,沿负梯度方向走,则
s?kk???J(ak)
2-2-1
设s是点ak 的负梯度搜索方向的单位向量,则
?J(ak)s??||?J(ak)||
?k?k
2-2-2
从ak 起,沿s方向走一步,到达下一点ak+1 ,可表示为:
ak?1?ak??ks?k
2-2-3
式中,?k是步长。
已证明,在一定约束条件下,从任意一点a0出发,使用迭代式2-2-3,J(a)将收敛与使J(a*) 最小的点。
(2)步长的选择
步长?k是影响算法收敛的因子,有多种选择方法,如: A.?k??,?为常值,0???1 B.?k??/k
但是?如何选取不易确定,需要反复试验,若?太小,算法收敛慢;
?太大,可能发散。
C.最佳步长:最佳步长?k应当是在ak点,沿着s方向恰好走到让J(a*) 最小的点,即是J(a)对?k导数为0的点。但是最佳步长计算量大,因此最佳步长很少使用
?k
相关推荐: