BP网络算法的基本思想及算法流程

网络的构成

神经元的网络输入:

n e t i = x 1 w 1 i + x 2 w 2 i + . . . + x n w n i net_i=x_1w_{1i}+x_2w_{2i}+...+x_nw_{ni} neti=x1w1i+x2w2i+...+xnwni

神经元的输出:

o = f ( n e t ) = 1 1 + e − n e t o=f(net)=\frac{1}{1+e^{-net}} o=f(net)=1+enet1
f ′ ( n e t ) = − 1 1 + e − n e t ( − e − n e t ) = o − o 2 = o ( 1 − o ) f^{'}(net)=-\frac{1}{1+e^{-net}}(-e^{-net})\\=o-o^2\\=o(1-o) f(net)=1+enet1(enet)=oo2=o(1o)
输出函数分析 o = 1 1 + e − n e t o=\frac{1}{1+e^{-net}} o=1+enet1

  • 应该将net的值尽量控制在收敛比较快的范围内
  • 可以用其他函数作为激活函数,只要该函数处处可导
网络的拓扑结构

在这里插入图片描述

  • 涉及到的参数:输入向量、输出向量的维数、网络隐藏层的层数和各个隐藏层神经元的个数
  • 增加隐藏层的层数和隐藏层=神经元个数不一定能够提高网络的精度和表达能力
  • BP网络一般都选用二级网络,如下图所示:
    在这里插入图片描述

训练过程

样本:(输入向量,理想输出向量)
权初始化:“小随机数”与饱和状态;“不同”保证网络可以学。

1、向前传播阶段
    1. 从样本集中取一个样本 ( X p , Y p ) (X_p,Y_p) (Xp,Yp),将 X p X_p Xp输入网络;
  • 2、计算相应的实际输出 O p O_p Op O p = F I ( . . . ( F 2 ( F 1 ( X p W ( 1 ) ) W ( 2 ) ) . . . ) W ( L ) ) O_p=F_I(...(F_2(F_1(X_pW^{(1)})W^{(2)})...)W^{(L)}) Op=FI(...(F2(F1(XpW(1))W(2))...)W(L))
2、向后传播阶段
  • 1、计算实际输出 O p O_p Op与相应的理想输出 Y p Y_p Yp的差;
  • 2、按极小化误差的方式调整权矩阵
  • 3、网络关于第p个样本的误差测度: E p = 1 2 Σ j = 1 m ( y p j − o p j ) 2 E_p=\frac{1}{2}\Sigma_{j=1}^m(y_{pj}-o_{pj})^2 Ep=21Σj=1m(ypjopj)2
  • 4、网络关于整个样本集的误差测度: E = Σ p E P E=\Sigma_pE_P E=ΣpEP

误差传播分析

1、输出层权的调整

在这里插入图片描述
w p q = w p q + Δ w p q w_{pq}=w_{pq}+\Delta w_{pq} wpq=wpq+Δwpq
Δ = α δ q o p = α f n ′ ( n e t q ) ( y q − o q ) o p = α o q ( 1 − o q ) ( y q − o q ) o p \Delta=\alpha\delta_qo_p\\=\alpha f_n^{'}(net_q)(y_q-o_q)o_p\\=\alpha o_q(1-o_q)(y_q-o_q)o_p Δ=αδqop=αfn(netq)(yqoq)op=αoq(1oq)(yqoq)op

2、隐藏层的调整

在这里插入图片描述
δ p k − 1 \delta_{pk-1} δpk1的值和 δ 1 k , δ 2 k , . . . , δ m k \delta_{1k}, \delta_{2k}, ..., \delta_{mk} δ1k,δ2k,...,δmk有关,可以认为 δ p k − 1 \delta_{pk-1} δpk1通过权 w p 1 w_{p1} wp1 δ 1 k \delta_{1k} δ1k做贡献,
通过权 w p 2 w_{p2} wp2 δ 2 k \delta_{2k} δ2k做贡献,
……
通过权 w p m w_{pm} wpm δ m k \delta_{mk} δmk做贡献。
所以 δ p k − 1 = f k − 1 ′ ( n e t p ) ( w p 1 δ 1 k + w p 2 δ 2 k + . . . + w p m δ m k ) \delta_{pk-1}=f_{k-1}^{'}(net_p)(w_{p1}\delta_{1k}+w_{p2}\delta_{2k}+...+w_{pm}\delta_{mk}) δpk1=fk1(netp)(wp1δ1k+wp2δ2k+...+wpmδmk)
v h p = v h p + Δ v h p v_{hp}=v_{hp}+\Delta v_{hp} vhp=vhp+Δvhp
Δ v h p = α δ p k − 1 o h k − 2 = α f k − 1 ′ ( n e t p ) ( w p 1 δ 1 k + w p 2 δ 2 k + . . . + w p m δ m k ) o h k − 2 = α o p k − 1 ( w p 1 δ 1 k + w p 2 δ 2 k + . . . + w p m δ m k ) o h k − 2 \Delta v_{hp}=\alpha\delta_{pk-1}o_{hk-2}\\=\alpha f_{k-1}^{'}(net_p)(w_{p1}\delta_{1k}+w_{p2}\delta_{2k}+...+w_{pm}\delta_{mk})o_{hk-2}\\=\alpha o_{pk-1}(w_{p1}\delta_{1k}+w_{p2}\delta_{2k}+...+w_{pm}\delta_{mk})o_{hk-2} Δvhp=αδpk1ohk2=αfk1(netp)(wp1δ1k+wp2δ2k+...+wpmδmk)ohk2=αopk1(wp1δ1k+wp2δ2k+...+wpmδmk)ohk2

基本的BP算法

样本集: S = ( X 1 , Y 1 ) , ( X 2 , Y 2 ) , . . . , ( X s , Y s ) S={(X_1,Y_1),(X_2,Y_2),...,(X_s,Y_s)} S=(X1,Y1),(X2,Y2),...,(Xs,Ys)
基本思想:

  • 逐一地根据样本 ( X k , Y k ) (X_k,Y_k) (Xk,Yk)计算出实际输出 O k O_k Ok和误差测度 E 1 E_1 E1,对 W ( 1 ) , W ( 2 ) , . . . , W ( L ) W^{(1)},W^{(2)},...,W^{(L)} W(1),W(2),...,W(L)各做一次调整,重复这个循环,知道 Σ E p < ϵ \Sigma E_p<\epsilon ΣEp<ϵ
  • 用输出层的误差调整输出层权矩阵,并用此误差估计输出层的直接前导层误差,再用输出层前导层估计更前一层的误差。如此获得所有其他各层的误差估计,并用这些估计实现对权矩阵的修改。形成将输出端表现得误差沿着与输入信号相反的方向逐级向输入端传递的过程。
    基本BP算法流程
  1. for k=1 to L do
    1.1 初始化 W ( k ) W^{(k)} W(k);
  2. 初始化精度控制参数 ϵ \epsilon ϵ;
  3. E = ϵ + 1 E=\epsilon+1 E=ϵ+1;
  4. while E> ϵ \epsilon ϵ do
    4.1 E=0;
    4.2 对S中的每一个样本 ( X p , Y p ) (X_p,Y_p) (Xp,Yp):
      4.2.1 计算出 X p X_p Xp对应的实际输出 O p O_p Op;
      4.2.2 计算出 E p E_p Ep;
      4.2.3 E = E + E p E=E+E_p E=E+Ep;
      4.2.4 根据相应式子调整 W ( L ) W^{(L)} W(L);
      4.2.5 k=L-1;
      4.2.6 while k ≠ 0 k\neq 0 k=0 do
        4.2.6.1 根据相应式子调整 W ( k ) W^{(k)} W(k);
        4.2.6.2 k=k-1
    4.3 E = E / 2.0 E=E/2.0 E=E/2.0
    消除样本顺序影响的BP算法
    在这里插入图片描述
    在这里插入图片描述

算法的主要实现步骤

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

  • 1
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
麻雀搜索算法是一种基于自然生物群体行为学原理设计的算法,通过模拟麻雀觅食的过程,来寻找问题的最优解。而BP神经网络是一种常用的神经网络算法,常用于分类、预测等任务中。本文将探讨利用麻雀搜索算法优化BP神经网络基本流程。 首先,需要构建BP神经网络的模型,包括网络层数、神经元个数等参数。然后根据输入数据和期望输出训练神经网络,得到模型预测结果。在此基础上,使用麻雀搜索算法对神经网络模型进行优化。 在麻雀搜索算法中,需要设定搜索空间、初始个体、适应度函数等参数。搜索空间包括神经网络的各个参数,如权重、偏置等。初始个体可以随机生成,也可以根据对问题的了解设置。适应度函数根据模型预测结果和期望输出计算误差,误差越小代表个体越优。 麻雀搜索算法的核心是选择和交换,即通过概率选择和移动算法选择新个体,并通过交叉、变异等操作进行更新。在这个过程中,需要设定一定的交换概率、选择策略等参数,以达到更好的搜索效果。 最后,在更新完成后,将优化后的神经网络模型应用于问题,得到更优的结果。需要注意的是,麻雀搜索算法不一定能够找到全局最优解,因此需要进行多次优化或设置终止条件。 综上所述,麻雀搜索算法可以有效地优化BP神经网络,提高模型的准确性和稳定性。但在使用过程中需要注意参数的设置,以充分发挥算法的优势。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值