精华内容
下载资源
问答
  • BP网络

    2018-12-21 21:15:19
    BP网络主要用于以下四个方面。 1)函数逼近:用输入向量和相应的输出向量训练一个网络逼近一个函数。 2)模式识别:用一个待定的输出向量将它与输入向量联系起来。 3)分类:把输入向量所定义的合适方式进行分类。 ...

    BP网络主要用于以下四个方面。

    1)函数逼近:用输入向量和相应的输出向量训练一个网络逼近一个函数。

    2)模式识别:用一个待定的输出向量将它与输入向量联系起来。

    3)分类:把输入向量所定义的合适方式进行分类。

    4)数据压缩:减少输出向量维数以便于传输或存储。

    展开全文
  • Bp网络.rar Bp网络.rar

    2010-05-13 00:01:38
    Bp网络.rar Bp网络.rar Bp网络.rar Bp网络.rar
  • BP网络实现分类

    2018-09-28 16:35:40
    BP网络实现分类 MATLAB
  • BP网络详解

    千次阅读 2019-09-18 19:18:00
    概述神经网络是由大量简单的处理单元来模拟...按照连接模式,神经网络模型可分为前馈式神经网络和反馈式神经网络,BP网络属于前馈式。 BP算法的提出:Rumelhart,McClelland于1985年提出了BP网络的误差反向后传BP(Ba...
        

    概述

    神经网络是由大量简单的处理单元来模拟真实人脑神经网络的机构和功能以及若干基本特性,是一个高度复杂的非线性自适应动态处理系统。按照连接模式,神经网络模型可分为前馈式神经网络和反馈式神经网络,BP网络属于前馈式。

    BP算法的提出:Rumelhart,McClelland于1985年提出了BP网络的误差反向后传BP(Back Propagation)学习算法。利用输出后的误差来估计输出层的直接前导层的误差,再用这个误差估计更前一层的误差,如此一层一层的反传下去,就获得了所有其他各层的误差估计。

    BP神经网络的提出:1986年由Rumelhart和McCelland为首的科研小组提出,参见他们发表在Nature上的论文 Learning representations by back-propagating errors

    BP神经网络名字源于网络权值的调整规则采用的是后向传播学习(BP)算法,是一种按误差逆传播算法训练的多层前馈神经网络,是目前应用最广泛的神经网络模型之一。BP神经网络能学习和存贮大量的输入-输出模式映射关系,而无需事前揭示描述这种映射关系的数学方程。BP神经网络的主要思想就是在确定了网络结构后,通过输入和输出样本集对网络进行训练和学习,以使网络实现给定的输入和输出映射关系。

    BP神经网络基本原理

    BP神经网络属于有监督学习

    BP神经网络神经元模型

    神经网络神经元模型主要的不同在于传递函数的不同。传递函数是BP网络的重要组成部分,又称激活函数,必须是连续可导的。BP网络常采用的传递函数如下:

    • S型对数函数:logsig 函数。函数公式:
      logsig(n) = 1 / (1 + exp(-n));matlab调用格式:A=logsig(N,FP);使用语法:net.layers{i}.transferFcn = ‘logsig’

    N为Q个S维的输入列向量;FP为功能结构参数(可选);A为函数返回值,位于区间(0,1)中。

    • 双曲正切S型传递函数:tansig 函数;函数公式:
      a = tansig(n) = 2/(1+exp(-2*n))-1;matlab调用格式:A=tansig(N,FP);使用语法:net.layers{i}.transferFcn = ‘tansig’

      含义与上述相同,不同在于输出区间(-1,1)中(这也是与logsig函数不同的地方)。

    • 线性传递函数:purelin 函数,调用格式:A = purelin(N,FP)

      含义与上述相同,不同在于其输出等于输入,即A=N。

    网络拓扑结构

    BP网络是典型的多层网络结构,而多层网络可以解决很多单层网络无法解决的问题,比如多层网络可以用来进行非线性分类、做精度极高的函数逼近。为了描述方便,我们选择三层BP网络,网络结构包含一个输入层、一个隐含层和一个输出层,其网络结构如下图。设n为输入层神经元数, h为隐含层神经元数,m为输出层神经元数。

    BPblock

    • 各层的神经元个数确定:

      • 输入层:输入层的神经元个数输入训练集的特征向量的维度。
      • 隐含层:有多种隐含层节点个数确定的方法,常见方法如下图。

        隐含层神经元个数

        对于多层前馈网络来说,隐层节点数的确定是成败的关键。若数量太少,则网络所能获取的用以解决问题的信息太少;若数量太多,不仅增加训练时间,更重要的是隐层节点过多还可能出现所谓“过拟合”(Overfitting)问题,即测试误差增大导致泛化能力下降,因此合理选择隐层节点数非常重要。关于隐层数及其节点数的选择比较复杂,一般原则是:在能正确反映输入输出关系的基础上,应选用较少的隐层节点数,以使网络结构尽量简单。

      • 输出层:输出层的神经元个数为输出类别N的log2(N);或者是N。

    BP神经网络的学习算法

    • 学习的过程:神经网络在外界输入样本的刺激下不断改变网络的连接权值,以使网络的输出不断地接近期望的输出。
      • 信号的正向传播:输入样本--输入层--各隐层--输出层
      • 误差的反向传播:若输出层的实际输出与期望的输出不符,误差以某种形式在各层表示,即修正各层单元的权值,最后当网络输出的误差减少到可接受的程度进行到预先设定的学习次数为止。
    • 学习的本质:对各连接权值的动态调整。
    • 学习规则:权值调整规则,即在学习过程中网络中各神经元的连接权变化所依据的一定的调整规则。
    • BP神经网络常用的训练函数

      • Levenberg-Marquardt算法训练函数trainlm();特点:收敛速度和网络精度,对于中等规模的BP神经网络有最快的收敛速度,是系统默认的算法。由于其避免了直接计算赫赛矩阵,从而减少了训练中的计算量,但需要较大内存量。

      • 梯度下降BP算法函数traingd(),沿网络性能参数的负梯度方向调整网络的权值和阈值。

      • 梯度下降动量BP算法函数traingdm(),是一种批处理的前馈神经网络训练方法,不但具有更快的收敛速度,而且引入了一个动量项,有效避免了局部最小问题在网络训练中出现。

      • BFGS准牛顿BP算法函数trainbfg();特点:收敛速度介于梯度下降法和牛顿法之间,适用于小规模数据,具有收敛速度快,精度高等特点。除了BP网络外,该函数也可以训练任意形式的神经网络,只要它的传递函数对于权值和输入存在导函数即可。参考

    参考:[BP神经网络常用函数汇总](http://xzh2012.blog.163.com/blog/static/114980038201101844232346/)
    

    BP神经网络的MATLAB实现

    • 前馈BP神经网络构造函数net = feedforwardnet(h),其中h为隐含层结点个数,如果是多层隐含层,则h=[n1,n2,...,nn]。ni表示各个隐含层对应的结点数。

      老版本的构造函数是newff(),现在使用的是feedforwardnet函数。

    • 常用网络配置参数如下

      1
      2
      3
      4
      5
      6
      net.trainFcn = 'trainbfg';		% 神经网络的训练函数设置
      net.trainParam.epochs=1000; % 最大迭代次数,允许最大训练步数1000步
      % net.trainParam.max_fail = 10; % 验证错误个数,默认为6
      net.trainParam.lr = 0.1; % 学习率
      net.trainparam.goal = 0; % 神经网络训练的目标误差
      net.trainparam.show; % 显示中间结果的周期
    • 实例

      1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      11
      12
      13
      % 注意训练集及标签为traind,trainl,测试集为testd,其中矩阵的行为样本,列表示特征向量。
      dim = length(traind(1,:)); % 输入向量的维度
      % 创建和训练网络
      net = feedforwardnet(2*dim+1);
      net.trainFcn = 'trainbfg';
      net.trainParam.epochs=1000; %允许最大训练步数1000步
      % net.trainParam.max_fail = 10; % 默认为6
      % view(net); % 查看网络
      net = train(net,traind',trainl'); % 训练网络
      test_out=sim(net,testd'); % 测试集测试网络
      % 结果分析,对数据取整处理
      test_out(test_out>=0.5)=1;
      test_out(test_out<0.5)=0;

    BP神经网络的特点

    • 非线性映射能力:能学习和存贮大量输入-输出模式映射关系,而无需事先了解描述这种映射关系的数学方程。只要能提供足够多的样本模式对供网络进行学习训练,它便能完成由n维输入空间到m维输出空间的非线性映射。
    • 自学习和自适应能力:BP神经网络在训练时,能够通过学习自动提取输出、输出数据间的“合理规则”,并自适应的将学习内容记忆于网络的权值中。即BP神经网络具有高度自学习和自适应的能力。
    • 泛化能力:当向网络输入训练时未曾见过的非样本数据时,网络也能完成由输入空间向输出空间的正确映射。这种能力称为泛化能力。
    • 容错能力:输入样本中带有较大的误差甚至个别错误对网络的输入输出规律影响很小。

    BP网络的局限性

    • 需要较长的训练时间:这主要是由于学习速率太小所造成的,可采用变化的或自适应的学习速率来加以改进。
    • 完全不能训练:这主要表现在网络的麻痹上,通常为了避免这种情况的产生,一是选取较小的初始权值,而是采用较小的学习速率。
    • 局部最小值:这里采用的梯度下降法可能收敛到局部最小值,采用多层网络或较多的神经元,有可能得到更好的结果。

    参考:神经网络学习 之 BP神经网络

    展开全文
  • 前馈网络和BP网络的区别 1.前馈神经网络 一种单向多层的网络结构,信息从输入层开始,逐层向一个方向传递,一直到输出层结束。前馈是指输出入方向是前向,此过程不调整权值。神经元之间不存在跨层连接、同层连接,...

    前馈网络和BP网络的区别

    1.前馈神经网络

    一种单向多层的网络结构,信息从输入层开始,逐层向一个方向传递,一直到输出层结束。前馈是指输出入方向是前向,此过程不调整权值。神经元之间不存在跨层连接、同层连接,输入层用于数据的输入,隐含层与输出层神经元对数据进行加工。

    2.反向传播算法

    (英语:Backpropagation,缩写为BP)是“误差反向传播”的简称,是一种与最优化方法(如梯度下降法)结合使用的,用来训练人工神经网络的常见方法。该方法对网络中所有权重计算损失函数的梯度。这个梯度会反馈给最优化方法,用来更新权值以最小化损失函数。

    3.BP神经网络

    也是前馈神经网络,只是它的参数权重值是由反向传播学习算法调整的。

    4.总结

    前馈描述的是网络的结构,指的是网络的信息流是单向的,不会构成环路。它是和“递归网络”(RNN)相对的概念;
    BP算法是一类训练方法,可以应用于FFNN,也可以应用于RNN,而且BP也并不是唯一的训练方法,其他可用的还有比如遗传算法(GA)等。所以BP神经网络属于前馈网络,前馈网络不一定是BP网络(还可以用别的算法训练权值参数)

    展开全文
  • matlab搭建BP网络

    千次阅读 2019-12-01 13:16:42
    matlab中使用BP网络 前一段时间在看神经网络,学习了一点皮毛,在这里和大家分享一下。 首先说明,BP并不能称之为神经网络的一种,更确切的说是一种BP算法。因为在其他的神经网络(例如LSTM,DBN等)中都用到了这...

    matlab中使用BP网络

    前一段时间在看神经网络,学习了一点皮毛,在这里和大家分享一下。

    首先说明,BP并不能称之为神经网络的一种,更确切的说是一种BP算法。因为在其他的神经网络(例如LSTM,DBN等)中都用到了这一算法来改变网络的权值和偏置。但在下文中我还是将其称之为BP网络(仅为了便于表达)。
    在这里插入图片描述

    newff与feedforwardnet

    在matlab中搭建一个BP网络可用newff或者feedforwardnet。这里推荐使用feedforwardnet。(newff好像不再更新了,我用的时候感觉不太理想,搜过的一些文章也是推荐使用feedforwordnet。)

    强调:在使用shenjing网络之前一定要将所使用的数据进行归一化,归一化到你使用激活函数的值域范围内。

    归一化方法可以用mapminmax(x,min,max)。其中x表示原数据,min表示归一化后的最小值,同理max。
    例如:[input_va_train_nor,PS] = mapminmax(input_va_train,0,1);PS表示归一化时使用的结构(我这么称呼的,不对勿喷)。如果还有其他数据想要以同样的方式进行归一化,可以使用PS。
    例如:compare_va_train_nor = mapminmax(compare_va_train,PS);

    下面正式介绍feedforwordnet。

    先给出格式(如想了解的更详细,建议help一下)。feedforwardnet(hiddenSizes,trainFcn)
    下边是具体的一些常用的参数。

    % Creat BP network.
    net = feedforwardnet(10,'trainbr');
    net.trainParam.epochs = 50; % the number of trainin
    net.trainParam.goal= 0.01;% goble minimal error.
    net.trainParam.lr = 0.01;% learning rate.
    net.trainParam.show= 30;
    net.trainParam.max_fail=15;%default 6.
    net = train(net,input_va_train_nor,compare_va_train_nor);
    output_va_test = sim(net, input_va_test);
    output_va_test = mapminmax('reverse',output_va_test,PS);
    

    其中第一行是搭建一个BP网络,10表示10个隐藏单元,trainbr表示训练函数,默认是trainlm。
    第二到五行是网络的一些参数,可根据需要修改。后边我都加了注释。
    第六行是对网络的训练。其中compare_va_train_nor是理想数据,即输入为input_va_train_nor时我想要得到的准确的数据。
    第七行是通过训练好的网络进行数据的预测。
    最后一行是将数据进行反归一化。

    哦,忘了说一点,输出层是不需要体现在代码中的,输出层根据输出自动生成。

    在这里插入图片描述

    神经网络常见训练函数

    梯度下降法 traingd
    有动量的梯度下降法 traingdm
    自适应lr梯度下降法 traingda
    自适应lr动量梯度下降法 traingdx
    弹性梯度下降法 trainrp
    Fletcher-Reeves共轭梯度法 traincgf
    Ploak-Ribiere共轭梯度法 traincgp
    Powell-Beale共轭梯度法 traincgb
    量化共轭梯度法 trainscg
    拟牛顿算法 trainbfg
    一步正割算法 trainoss
    Levenberg-Marquardt trainlm

    需要了解一些参数和其他内容可以参考下边几篇文章
    https://blog.csdn.net/sinat_38321889/article/details/79182832

    展开全文
  • BP网络和RBF网络

    千次阅读 2019-06-21 18:28:48
    一、BP网络:反向传播网络 二、RBF网络:径向基函数网络(Radial Basis Function) RBF结构上并不复杂,通常只有三层。输入层、中间层计算输入 x 矢量与样本矢量 c 欧式距离的 Radial Basis Function (RBF) 的值,...
  • BP网络 matlab仿真

    2009-10-23 22:24:46
    BP网络 matlab仿真 BP网络 matlab仿真 BP网络 matlab仿真 BP网络 matlab仿真 BP网络 matlab仿真 BP网络 matlab仿真
  • pytorch 搭建BP网络

    2019-11-17 22:26:13
    文章目录pytorch 搭建BP网络 pytorch 搭建BP网络 # -*- coding:utf-8 -*- # /usr/bin/python ''' @Author : Errol @Describe: @Evn : @Date : - ''' import os import torch import numpy as np from torchvisi....
  • BP网络自适应学习率算法分析_于涛BP网络自适应学习率算法分析_于涛BP网络自适应学习率算法分析_于涛
  • 反向传播网络BP 网络

    千次阅读 2017-04-14 14:04:20
    反向传播网络(BP 网络) ...BP网络是采用Widrow-Hoff学习算法和非线性可微转移函数的多层网络。 一个典型的BP 网络采用的是梯度下降算法,也就是Widrow-Hoff算法所规定的。backpropagation就是指的 为非线性多
  • 如何利用BP网络进行神经网络变量筛选
  • RBF神经网络与BP网络优缺点比较

    万次阅读 2018-07-24 08:37:31
    RBF神经网络BP神经网络优缺点比较 1. RBF 的泛化能力在多个方面都优于BP 网络, 但是在解决具有相同精度要求的问题时, BP 网络的结构要比RBF 网络简单。 2. RBF 网络的逼近精度要明显高于BP 网络,它几乎能实现...
  • RBF神经网络BP神经网络优缺点比较 1. RBF 的泛化能力在多个方面都优于BP 网络, 但是在解决具有相同精度要求的问题时, BP 网络的结构要比RBF 网络简单。 2. RBF 网络的逼近精度要明显高于BP 网络,它几乎能实现...
  • BP网络推导过程以及例子

    千次阅读 2019-03-20 14:06:26
    1.隐藏层和输出层的激活函数f1和f2都用Sigmodi函数,即:,因为BP网络的激活函数必须可导,所以Sigmoid函数是可取的选择。 2.当BP网络反向调整网络权值时,激活函数的导数是经常用到的,因此我们先对激活函数f(x)...
  • BP网络常用传递函数

    万次阅读 2018-01-02 21:26:32
    BP网络常用传递函数: BP网络的传递函数有多种。Log-sigmoid型函数的输入值可取任意值,输出值在0和1之间;tan-sigmod型传递函数tansig的输入值可取任意值,输出值在-1到+1之间;线性传递函数purelin的输入与输出...
  • ​熬过了上一篇漫长的代码,稍微解开了一丢丢疑惑,使得抽象的BP有一点具体化了,可是还是有好多细节...在我们所看到的BP网络的结构图中,其实是被简化了的,下面小编画了一个逻辑更清晰一点的图: 这样我们就可以看
  • 前言:这里的BP神经网络例子为3层网络,如需更多隐层,请自行更改 参考文献:... 关键点: ... 1.BP网络输入层到隐层的函数为tansig函数 tansig(n)=2/(1+exp(-2*n))...
  • MATLAB 2016b–神经网络工具箱中BP网络的实现 在干活的过程中整理下来的,希望对大家有帮助。 上一篇介绍的是MATLAB 2016b–神经网络工具箱中图形用户界面的使用 这一篇就介绍如何利用神经网络工具箱中包含的函数...
  • 小论文 主要工作:BP神经网络MATLAB实现,这个例子有24个特征,网络是24-25-4的结构。详细了解程序。看明白了并且用matlab看变量的变化,加深了理解。 后续目标:自己写出一个训练BP的网络,测试...这个部分是BP网络...
  • BP(Back Propagation)...如何在上百万维的数据下,有效的计算出来,就需要BP网络。 链式法则(chain rule) 原理 先考虑某一个神经元: 链式法则的应用: case1 BP网络就是向后往前算偏微分 总结 ...
  • BP网络   是常见前馈神经网络,感知器(又叫感知机)是最简单的前馈网络。   BP网络是指连接权调整采用了反向传播(Back Propagation)学习算法的前馈网络。   与感知器不同之处在于,BP网络的神经元变换函数...
  • 初探神经网络:QT下建立BP网络模型

    千次阅读 多人点赞 2012-03-07 17:06:45
    初探神经网络:QT下建立BP网络模型 本文博客链接:http://blog.csdn.net/jdh99,作者:jdh,转载请注明. 环境: 主机:WIN7 开发环境:Qt 实现功能: 建立了细胞类以及BP网络类.BP神经网络为...
  • 非监督版bp网络

    2016-04-15 13:38:55
    简介非监督版bp网络: 梯度下降 + 链式求偏导介绍信息前向传播, 误差反向传播推导忽略delta规则.以包含一层隐藏层的bp网络为例, 设输入层为x⃗ \vec x, 隐藏层为y⃗ \vec y, 输出层为z⃗ \vec z. 其中, 隐藏层中...
  • BP网络(Back-ProPagation Network)又称反向传播神经网络, 通过样本数据的训练,不断修正网络权值和阈值使误差函数沿负梯度方向下降,逼近期望输出。它是一种应用较为广泛的神经网络模型,多用于函数逼近、模型...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 16,480
精华内容 6,592
关键字:

bp网络