导航:首页 > 网络问题 > bp神经网络是什么

bp神经网络是什么

发布时间:2023-02-02 18:50:56

Ⅰ bp神经网络

BP(Back Propagation)网络是1986年由Rumelhart和McCelland为首的科学家小组提出,是一种按误差逆传播算法训练的多层前馈网络,是目前应用最广泛的神经网络模型之一。BP网络能学习和存贮大量的输入-输出模式映射关系,而无需事前揭示描述这种映射关系的数学方程。它的学习规则是使用最速下降法,通过反向传播来不断调整网络的权值和阈值,使网络的误差平方和最小。BP神经网络模型拓扑结构包括输入层(input)、隐层(hide layer)和输出层(output layer)。
人工神经网络就是模拟人思维的第二种方式。这是一个非线性动力学系统,其特色在于信息的分布式存储和并行协同处理。虽然单个神经元的结构极其简单,功能有限,但大量神经元构成的网络系统所能实现的行为却是极其丰富多彩的。

人工神经网络首先要以一定的学习准则进行学习,然后才能工作。现以人工神经网络对手写“A”、“B”两个字母的识别为例进行说明,规定当“A”输入网络时,应该输出“1”,而当输入为“B”时,输出为“0”。

所以网络学习的准则应该是:如果网络作出错误的的判决,则通过网络的学习,应使得网络减少下次犯同样错误的可能性。首先,给网络的各连接权值赋予(0,1)区间内的随机值,将“A”所对应的图象模式输入给网络,网络将输入模式加权求和、与门限比较、再进行非线性运算,得到网络的输出。在此情况下,网络输出为“1”和“0”的概率各为50%,也就是说是完全随机的。这时如果输出为“1”(结果正确),则使连接权值增大,以便使网络再次遇到“A”模式输入时,仍然能作出正确的判断。

如果输出为“0”(即结果错误),则把网络连接权值朝着减小综合输入加权值的方向调整,其目的在于使网络下次再遇到“A”模式输入时,减小犯同样错误的可能性。如此操作调整,当给网络轮番输入若干个手写字母“A”、“B”后,经过网络按以上学习方法进行若干次学习后,网络判断的正确率将大大提高。这说明网络对这两个模式的学习已经获得了成功,它已将这两个模式分布地记忆在网络的各个连接权值上。当网络再次遇到其中任何一个模式时,能够作出迅速、准确的判断和识别。一般说来,网络中所含的神经元个数越多,则它能记忆、识别的模式也就越多。

如图所示拓扑结构的单隐层前馈网络,一般称为三层前馈网或三层感知器,即:输入层、中间层(也称隐层)和输出层。它的特点是:各层神经元仅与相邻层神经元之间相互全连接,同层内神经元之间无连接,各层神经元之间无反馈连接,构成具有层次结构的前馈型神经网络系统。单计算层前馈神经网络只能求解线性可分问题,能够求解非线性问题的网络必须是具有隐层的多层神经网络。
神经网络的研究内容相当广泛,反映了多学科交叉技术领域的特点。主要的研究工作集中在以下几个方面:

(1)生物原型研究。从生理学、心理学、解剖学、脑科学、病理学等生物科学方面研究神经细胞、神经网络、神经系统的生物原型结构及其功能机理。

(2)建立理论模型。根据生物原型的研究,建立神经元、神经网络的理论模型。其中包括概念模型、知识模型、物理化学模型、数学模型等。

(3)网络模型与算法研究。在理论模型研究的基础上构作具体的神经网络模型,以实现计算机模拟或准备制作硬件,包括网络学习算法的研究。这方面的工作也称为技术模型研究。

(4)人工神经网络应用系统。在网络模型与算法研究的基础上,利用人工神经网络组成实际的应用系统,例如,完成某种信号处理或模式识别的功能、构作专家系统、制成机器人等等。

纵观当代新兴科学技术的发展历史,人类在征服宇宙空间、基本粒子,生命起源等科学技术领域的进程中历经了崎岖不平的道路。我们也会看到,探索人脑功能和神经网络的研究将伴随着重重困难的克服而日新月异。
神经网络可以用作分类、聚类、预测等。神经网络需要有一定量的历史数据,通过历史数据的训练,网络可以学习到数据中隐含的知识。在你的问题中,首先要找到某些问题的一些特征,以及对应的评价数据,用这些数据来训练神经网络。

虽然BP网络得到了广泛的应用,但自身也存在一些缺陷和不足,主要包括以下几个方面的问题。

首先,由于学习速率是固定的,因此网络的收敛速度慢,需要较长的训练时间。对于一些复杂问题,BP算法需要的训练时间可能非常长,这主要是由于学习速率太小造成的,可采用变化的学习速率或自适应的学习速率加以改进。

其次,BP算法可以使权值收敛到某个值,但并不保证其为误差平面的全局最小值,这是因为采用梯度下降法可能产生一个局部最小值。对于这个问题,可以采用附加动量法来解决。

再次,网络隐含层的层数和单元数的选择尚无理论上的指导,一般是根据经验或者通过反复实验确定。因此,网络往往存在很大的冗余性,在一定程度上也增加了网络学习的负担。

最后,网络的学习和记忆具有不稳定性。也就是说,如果增加了学习样本,训练好的网络就需要从头开始训练,对于以前的权值和阈值是没有记忆的。但是可以将预测、分类或聚类做的比较好的权值保存。

Ⅱ BP人工神经网络

人工神经网络(artificialneuralnetwork,ANN)指由大量与自然神经系统相类似的神经元联结而成的网络,是用工程技术手段模拟生物网络结构特征和功能特征的一类人工系统。神经网络不但具有处理数值数据的一般计算能力,而且还具有处理知识的思维、学习、记忆能力,它采用类似于“黑箱”的方法,通过学习和记忆,找出输入、输出变量之间的非线性关系(映射),在执行问题和求解时,将所获取的数据输入到已经训练好的网络,依据网络学到的知识进行网络推理,得出合理的答案与结果。

岩土工程中的许多问题是非线性问题,变量之间的关系十分复杂,很难用确切的数学、力学模型来描述。工程现场实测数据的代表性与测点的位置、范围和手段有关,有时很难满足传统统计方法所要求的统计条件和规律,加之岩土工程信息的复杂性和不确定性,因而运用神经网络方法实现岩土工程问题的求解是合适的。

BP神经网络模型是误差反向传播(BackPagation)网络模型的简称。它由输入层、隐含层和输出层组成。网络的学习过程就是对网络各层节点间连接权逐步修改的过程,这一过程由两部分组成:正向传播和反向传播。正向传播是输入模式从输入层经隐含层处理传向输出层;反向传播是均方误差信息从输出层向输入层传播,将误差信号沿原来的连接通路返回,通过修改各层神经元的权值,使得误差信号最小。

BP神经网络模型在建立及应用过程中,主要存在的不足和建议有以下四个方面:

(1)对于神经网络,数据愈多,网络的训练效果愈佳,也更能反映实际。但在实际操作中,由于条件的限制很难选取大量的样本值进行训练,样本数量偏少。

(2)BP网络模型其计算速度较慢、无法表达预测量与其相关参数之间亲疏关系。

(3)以定量数据为基础建立模型,若能收集到充分资料,以定性指标(如基坑降水方式、基坑支护模式、施工工况等)和一些易获取的定量指标作为输入层,以评价等级作为输出层,这样建立的BP网络模型将更准确全面。

(4)BP人工神经网络系统具有非线性、智能的特点。较好地考虑了定性描述和定量计算、精确逻辑分析和非确定性推理等方面,但由于样本不同,影响要素的权重不同,以及在根据先验知识和前人的经验总结对定性参数进行量化处理,必然会影响评价的客观性和准确性。因此,在实际评价中只有根据不同的基坑施工工况、不同的周边环境条件,应不同用户的需求,选择不同的分析指标,才能满足复杂工况条件下地质环境评价的要求,取得较好的应用效果。

Ⅲ BP神经网络的梳理

BP神经网络被称为“深度学习之旅的开端”,是神经网络的入门算法。
各种高大上的神经网络都是基于BP网络出发的,最基础的原理都是由BP网络而来 [1] ,另外由于BP神经网络结构简单,算法经典, 是神经网络中应用最广泛的一种。

BP神经网络(back propagation neural network)全称是反向传播神经网络。
神经网络发展部分背景如下 [2] :

为解决非线性问题,BP神经网络应运而生。

那么什么是BP神经网络?稍微专业点的解释要怎么说呢?

很喜欢 最简单的神经网络--Bp神经网络 一文对算法原理的解释,语言活泼,案例简单,由浅入深。
文中提到所谓的 AI 技术,本质上是一种数据处理处理技术,它的强大来自于两方面:1.互联网的发展带来的海量数据信息;2.计算机深度学习算法的快速发展。AI 其实并没有什么神秘,只是在算法上更为复杂 [3] 。

我们从上面的定义出发来解释BP神经网络的原理。

BP神经网络整个网络结构包含了:一层输入层,一到多层隐藏层,一层输出层。
一般说L层神经网络,指的是有L个隐层,输入层和输出层都不计算在内的 [6] 。

BP神经网络模型训练的学习过程由信号的 正向传播 和误差的 反向传播 两个过程组成。

什么是信号的正向传播?顾名思义,就是结构图从左到右的运算过程。

我们来看看结构图中每个小圆圈是怎么运作的。我们把小圈圈叫做神经元,是组成神经网络的基本单元。

正向传播就是输入数据经过一层一层的神经元运算、输出的过程,最后一层输出值作为算法预测值y'。

前面正向传播的时候我们提到权重w、偏置b,但我们并不知道权重w、偏置b的值应该是什么。关于最优参数的求解,我们在 线性回归 、 逻辑回归 两章中有了详细说明。大致来讲就是:

BP神经网络全称 back propagation neural network,back propagation反向传播是什么?
反向传播的建设本质上就是寻找最优的参数组合,和上面的流程差不多,根据算法预测值和实际值之间的损失函数L(y',y),来反方向地计算每一层的z、a、w、b的偏导数,从而更新参数。
对反向传播而言,输入的内容是预测值和实际值的误差,输出的内容是对参数的更新,方向是从右往左,一层一层的更新每一层的参数。

BP神经网络通过先正向传播,构建参数和输入值的关系,通过预测值和实际值的误差,反向传播修复权重;读入新数据再正向传播预测,再反向传播修正,...,通过多次循环达到最小损失值,此时构造的模型拥有最优的参数组合。

以一个简单的BP神经网络为例,由3个输入层,2层隐藏层,每层2个神经元,1个输出层组成。

【输入层】传入
【第一层隐藏层】
对于 神经元而言,传入 ,加权求和加偏置激活函数处理后,输出 ;
对于 神经元而言,传入 ,加权求和加偏置函数处理后,输出 ;
输出:

【第二层隐藏层】
对于 神经元而言,传入 ,加权求和加偏置激活函数处理后,输出 ;
对于 神经元而言,传入 ,加权求和加偏置激活函数处理后,输出 ;
输出:

【输出层】
对于输出层神经元而言,输入 ,加权求和加偏置激活函数处理后,输出 ,输出的是一个值

第一次运行正向传播这个流程时随用随机参数就好,通过反向传播不断优化。因此需要在一开始对 设置一个随机的初始值。

首先计算正向传播输出值 与实际值的损失 ,是一个数值。所谓反向是从右到左一步步来的,先回到 ,修正参数 。

以此类推,通过对损失函数求偏导跟新参数 ,再跟新参数 。这时又回到了起点,新的数据传入又可以开始正向传播了。

keras可以快速搭建神经网络,例如以下为输入层包含7129个结点,一层隐藏层,包含128个结点,一个输出层,是二分类模型。

神经网络反向传播的优化目标为loss,可以观察到loss的值在不断的优化。

可以通过model.get_layer().get_weights()获得每一层训练后的参数结果。通过model.predict()预测新数据。

至此,BP神经网络的整个运算流程已经过了一遍。之前提到BP神经网络是为解决非线性问题应运而生的,那么为什么BP神经网络可以解决非线性问题呢?
还记得神经元里有一个激活函数的操作吗?神经网络通过激活函数的使用加入非线性因素。
通过使用非线性的激活函数可以使神经网络随意逼近复杂函数,从而使BP神经网络既可以处理线性问题,也可以处理非线性问题。

为什么激活函数的使用可以加入非线性因素 [7] ?

其实逻辑回归算法可以看作只有一个神经元的单层神经网络,只对线性可分的数据进行分类。
输入参数,加权求和,sigmoid作为激活函数计算后输出结果,模型预测值和实际值计算损失Loss,反向传播梯度下降求编导,获得最优参数。

BP神经网络是比 Logistic Regression 复杂得多的模型,它的拟合能力很强,可以处理很多 Logistic Regression处理不了的数据,但是也更容易过拟合。

具体用什么算法还是要看训练数据的情况,没有一种算法是使用所有情况的。

常见的前馈神经网络有BP网络,RBF网络等。

BP神经网络的一个主要问题是:结构不好设计。
网络隐含层的层数和单元数的选择尚无理论上的指导,一般是根据经验或者通过反复实验确定。

但是BP神经网络简单、易行、计算量小、并行性强,目前仍是多层前向网络的首选算法。

[1] 深度学习开端---BP神经网络: https://blog.csdn.net/Chile_Wang/article/details/100557010
[2] BP神经网络发展历史: https://zhuanlan.hu.com/p/47998728
[3] 最简单的神经网络--Bp神经网络: https://blog.csdn.net/weixin_40432828/article/details/82192709
[4] 神经网络的基本概念: https://blog.csdn.net/jinyuan7708/article/details/82466653
[5] 神经网络中的 “隐藏层” 理解: https://blog.csdn.net/nanhuaibeian/article/details/100183000
[6] AI学习笔记:神经元与神经网络: https://www.jianshu.com/p/65eb2fce0e9e
[7] 线性模型和非线性模型的区别: https://www.cnblogs.com/toone/p/8574294.html
[8] BP神经网络是否优于logistic回归: https://www.hu.com/question/27823925/answer/38460833

Ⅳ BP神经网络

神经网络能很好地解决不同的机器学习问题。神经网络模型是许多逻辑单元按照不同层级组织起来的网络,每一层的输出变量都是下一层的输入变量。

上图显示了人工神经网络是一个分层模型,逻辑上可以分为三层:

输入层 :输入层接收特征向量 x

输出层 :输出层产出最终的预测 h

隐含层 :隐含层介于输入层与输出层之间,之所以称之为隐含层,是因为当中产生的值并不像输入层使用的样本矩阵 X或者输出层用到的标签矩阵 y 那样直接可见。

下面引入一些标记法来帮助描述模型:

!$ a^{(j)}_{i} $ 代表第j层的第i个激活单元。 !$ heta^{(j)} $ 代表从第 j 层映射到第 j+1 层时的权重的矩阵,例如 !$ heta^{(1)} $ 代表从第一层映射到第二层的权重的矩阵。其尺寸为:以第 j+1层的激活单元数量为行数,以第 j 层的激活单元数加一为列数的矩阵。例如:上图所示的神经网络中 !$ heta^{(1)} $ 的尺寸为 3*4。

对于上图所示的模型,激活单元和输出分别表达为:

!$ a^{(2)}_{1} = g( heta^{(1)}_{10}x_0 + heta^{(1)}_{11}x_1 + heta^{(1)}_{12}x_2 + heta^{(1)}_{13}x_3 ) $

!$a^{(2)}_{2} = g( heta^{(1)}_{20}x_0 + heta^{(1)}_{21}x_1 + heta^{(1)}_{22}x_2 + heta^{(1)}_{23}x_3 ) $

!$a^{(2)}_{3} = g( heta^{(1)}_{30}x_0 + heta^{(1)}_{31}x_1 + heta^{(1)}_{32}x_2 + heta^{(1)}_{33}x_3 ) $

!$h_{ heta}{(x)} = g( heta^{(2)}_{10}a^{2}_{0} + heta^{(2)}_{11}a^{2}_{1} + heta^{(2)}_{12}a^{2}_{2} + heta^{(2)}_{13}a^{2}_{3} ) $

下面用向量化的方法以上面的神经网络为例,试着计算第二层的值:

对于多类分类问题来说:

我们可将神经网络的分类定义为两种情况:二类分类和多类分类。

二类分类: !$ S_{L} = 0,y = 0,y = 1$

多类分类: !$ S_{L} = k, y_{i} = 1表示分到第i类;(k>2)$

在神经网络中,我们可以有很多输出变量,我们的 !$h_{ heta}{(x)} $ 是一个维度为K的向量,并且我们训练集中的因变量也是同样维度的一个向量,因此我们的代价函数会比逻辑回归更加复杂一些,为: !$ h_{ heta}{(x)} in R^{K}(h_{ heta}{(x)})_{i} = i^{th} output$

我们希望通过代价函数来观察算法预测的结果与真实情况的误差有多大,唯一不同的是,对于每一行特征,我们都会给出K个预测,基本上我们可以利用循环,对每一行特征都预测K个不同结果,然后在利用循环在K个预测中选择可能性最高的一个,将其与y中的实际数据进行比较。

正则化的那一项只是排除了每一层 !$ heta_0$ 后,每一层的 矩阵的和。最里层的循环j循环所有的行(由 +1 层的激活单元数决定),循环i则循环所有的列,由该层( !$ s_l$ 层)的激活单元数所决定。即: !$h_{ heta}{(x)}$ 与真实值之间的距离为每个样本-每个类输出的加和,对参数进行 regularization bias 项处理所有参数的平方和。

由于神经网络允许多个隐含层,即各层的神经元都会产出预测,因此,就不能直接利用传统回归问题的梯度下降法来最小化 !$J( heta)$ ,而需要逐层考虑预测误差,并且逐层优化。为此,在多层神经网络中,使用反向传播算法(Backpropagation Algorithm)来优化预测,首先定义各层的预测误差为向量 !$ δ^{(l)} $

训练过程:

当我们对一个较为复杂的模型(例如神经网络)使用梯度下降算法时,可能会存在一些不容易察觉的错误,意味着,虽然代价看上去在不断减小,但最终的结果可能并不是最优解。

为了避免这样的问题,我们采取一种叫做梯度的数值检验( Numerical Gradient Checking )方法。这种方法的思想是通过估计梯度值来检验我们计算的导数值是否真的是我们要求的。

对梯度的估计采用的方法是在代价函数上沿着切线的方向选择离两个非常近的点然后计算两个点的平均值用以估计梯度。即对于某个特定的 ,我们计算出在 !$ heta - epsilon$ 处和 !$ heta + epsilon$ 的代价值(是一个非常小的值,通常选取 0.001),然后求两个代价的平均,用以估计在 !$ heta$ 处的代价值。

当 !$ heta$ 是一个向量时,我们则需要对偏导数进行检验。因为代价函数的偏导数检验只针对一个参数的改变进行检验,下面是一个只针对 !$ heta_1$ 进行检验的示例:

如果上式成立,则证明网络中BP算法有效,此时关闭梯度校验算法(因为梯度的近似计算效率很慢),继续网络的训练过程。

Ⅳ 前馈神经网络、BP神经网络、卷积神经网络的区别与联系

一、计算方法不同

1、前馈神经网络:一种最简单的神经网络,各神经元分层排列。每个神经元只与前一层的神经元相连。接收前一层的输出,并输出给下一层.各层间没有反馈。

2、BP神经网络:是一种按照误差逆向传播算法训练的多层前馈神经网络。

3、卷积神经网络:包含卷积计算且具有深度结构的前馈神经网络。

二、用途不同

1、前馈神经网络:主要应用包括感知器网络、BP网络和RBF网络。

2、BP神经网络:

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

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

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

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

3、卷积神经网络:可应用于图像识别、物体识别等计算机视觉、自然语言处理、物理学和遥感科学等领域。

联系:

BP神经网络和卷积神经网络都属于前馈神经网络,三者都属于人工神经网络。因此,三者原理和结构相同。

三、作用不同

1、前馈神经网络:结构简单,应用广泛,能够以任意精度逼近任意连续函数及平方可积函数.而且可以精确实现任意有限训练样本集。

2、BP神经网络:具有很强的非线性映射能力和柔性的网络结构。网络的中间层数、各层的神经元个数可根据具体情况任意设定,并且随着结构的差异其性能也有所不同。

3、卷积神经网络:具有表征学习能力,能够按其阶层结构对输入信息进行平移不变分类。

(5)bp神经网络是什么扩展阅读

1、BP神经网络优劣势

BP神经网络无论在网络理论还是在性能方面已比较成熟。其突出优点就是具有很强的非线性映射能力和柔性的网络结构。网络的中间层数、各层的神经元个数可根据具体情况任意设定,并且随着结构的差异其性能也有所不同。但是BP神经网络也存在以下的一些主要缺陷。

①学习速度慢,即使是一个简单的问题,一般也需要几百次甚至上千次的学习才能收敛。

②容易陷入局部极小值。

③网络层数、神经元个数的选择没有相应的理论指导。

④网络推广能力有限。

2、人工神经网络的特点和优越性,主要表现在以下三个方面

①具有自学习功能。例如实现图像识别时,只在先把许多不同的图像样板和对应的应识别的结果输入人工神经网络,网络就会通过自学习功能,慢慢学会识别类似的图像。自学习功能对于预测有特别重要的意义。预期未来的人工神经网络计算机将为人类提供经济预测、效益预测,其应用前途是很远大的。

②具有联想存储功能。用人工神经网络的反馈网络就可以实现这种联想。

③具有高速寻找优化解的能力。寻找一个复杂问题的优化解,往往需要很大的计算量,利用一个针对某问题而设计的反馈型人工神经网络,发挥计算机的高速运算能力,可能很快找到优化解。

Ⅵ 神经网络BP模型

一、BP模型概述

误差逆传播(Error Back-Propagation)神经网络模型简称为BP(Back-Propagation)网络模型。

Pall Werbas博士于1974年在他的博士论文中提出了误差逆传播学习算法。完整提出并被广泛接受误差逆传播学习算法的是以Rumelhart和McCelland为首的科学家小组。他们在1986年出版“Parallel Distributed Processing,Explorations in the Microstructure of Cognition”(《并行分布信息处理》)一书中,对误差逆传播学习算法进行了详尽的分析与介绍,并对这一算法的潜在能力进行了深入探讨。

BP网络是一种具有3层或3层以上的阶层型神经网络。上、下层之间各神经元实现全连接,即下层的每一个神经元与上层的每一个神经元都实现权连接,而每一层各神经元之间无连接。网络按有教师示教的方式进行学习,当一对学习模式提供给网络后,神经元的激活值从输入层经各隐含层向输出层传播,在输出层的各神经元获得网络的输入响应。在这之后,按减小期望输出与实际输出的误差的方向,从输入层经各隐含层逐层修正各连接权,最后回到输入层,故得名“误差逆传播学习算法”。随着这种误差逆传播修正的不断进行,网络对输入模式响应的正确率也不断提高。

BP网络主要应用于以下几个方面:

1)函数逼近:用输入模式与相应的期望输出模式学习一个网络逼近一个函数;

2)模式识别:用一个特定的期望输出模式将它与输入模式联系起来;

3)分类:把输入模式以所定义的合适方式进行分类;

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

在人工神经网络的实际应用中,80%~90%的人工神经网络模型采用BP网络或它的变化形式,它也是前向网络的核心部分,体现了人工神经网络最精华的部分。

二、BP模型原理

下面以三层BP网络为例,说明学习和应用的原理。

1.数据定义

P对学习模式(xp,dp),p=1,2,…,P;

输入模式矩阵X[N][P]=(x1,x2,…,xP);

目标模式矩阵d[M][P]=(d1,d2,…,dP)。

三层BP网络结构

输入层神经元节点数S0=N,i=1,2,…,S0;

隐含层神经元节点数S1,j=1,2,…,S1;

神经元激活函数f1[S1];

权值矩阵W1[S1][S0];

偏差向量b1[S1]。

输出层神经元节点数S2=M,k=1,2,…,S2;

神经元激活函数f2[S2];

权值矩阵W2[S2][S1];

偏差向量b2[S2]。

学习参数

目标误差ϵ;

初始权更新值Δ0

最大权更新值Δmax

权更新值增大倍数η+

权更新值减小倍数η-

2.误差函数定义

对第p个输入模式的误差的计算公式为

中国矿产资源评价新技术与评价新模型

y2kp为BP网的计算输出。

3.BP网络学习公式推导

BP网络学习公式推导的指导思想是,对网络的权值W、偏差b修正,使误差函数沿负梯度方向下降,直到网络输出误差精度达到目标精度要求,学习结束。

各层输出计算公式

输入层

y0i=xi,i=1,2,…,S0;

隐含层

中国矿产资源评价新技术与评价新模型

y1j=f1(z1j),

j=1,2,…,S1;

输出层

中国矿产资源评价新技术与评价新模型

y2k=f2(z2k),

k=1,2,…,S2。

输出节点的误差公式

中国矿产资源评价新技术与评价新模型

对输出层节点的梯度公式推导

中国矿产资源评价新技术与评价新模型

E是多个y2m的函数,但只有一个y2k与wkj有关,各y2m间相互独立。

其中

中国矿产资源评价新技术与评价新模型

中国矿产资源评价新技术与评价新模型

设输出层节点误差为

δ2k=(dk-y2k)·f2′(z2k),

中国矿产资源评价新技术与评价新模型

同理可得

中国矿产资源评价新技术与评价新模型

对隐含层节点的梯度公式推导

中国矿产资源评价新技术与评价新模型

E是多个y2k的函数,针对某一个w1ji,对应一个y1j,它与所有的y2k有关。因此,上式只存在对k的求和,其中

中国矿产资源评价新技术与评价新模型

中国矿产资源评价新技术与评价新模型

设隐含层节点误差为

中国矿产资源评价新技术与评价新模型

中国矿产资源评价新技术与评价新模型

同理可得

中国矿产资源评价新技术与评价新模型

4.采用弹性BP算法(RPROP)计算权值W、偏差b的修正值ΔW,Δb

1993年德国 Martin Riedmiller和Heinrich Braun 在他们的论文“A Direct Adaptive Method for Faster Backpropagation Learning:The RPROP Algorithm”中,提出Resilient Backpropagation算法——弹性BP算法(RPROP)。这种方法试图消除梯度的大小对权步的有害影响,因此,只有梯度的符号被认为表示权更新的方向。

权改变的大小仅仅由权专门的“更新值”

确定

中国矿产资源评价新技术与评价新模型

其中

表示在模式集的所有模式(批学习)上求和的梯度信息,(t)表示t时刻或第t次学习。

权更新遵循规则:如果导数是正(增加误差),这个权由它的更新值减少。如果导数是负,更新值增加。

中国矿产资源评价新技术与评价新模型

RPROP算法是根据局部梯度信息实现权步的直接修改。对于每个权,我们引入它的

各自的更新值

,它独自确定权更新值的大小。这是基于符号相关的自适应过程,它基

于在误差函数E上的局部梯度信息,按照以下的学习规则更新

中国矿产资源评价新技术与评价新模型

其中0<η-<1<η+

在每个时刻,如果目标函数的梯度改变它的符号,它表示最后的更新太大,更新值

应由权更新值减小倍数因子η-得到减少;如果目标函数的梯度保持它的符号,更新值应由权更新值增大倍数因子η+得到增大。

为了减少自由地可调参数的数目,增大倍数因子η+和减小倍数因子η被设置到固定值

η+=1.2,

η-=0.5,

这两个值在大量的实践中得到了很好的效果。

RPROP算法采用了两个参数:初始权更新值Δ0和最大权更新值Δmax

当学习开始时,所有的更新值被设置为初始值Δ0,因为它直接确定了前面权步的大小,它应该按照权自身的初值进行选择,例如,Δ0=0.1(默认设置)。

为了使权不至于变得太大,设置最大权更新值限制Δmax,默认上界设置为

Δmax=50.0。

在很多实验中,发现通过设置最大权更新值Δmax到相当小的值,例如

Δmax=1.0。

我们可能达到误差减小的平滑性能。

5.计算修正权值W、偏差b

第t次学习,权值W、偏差b的的修正公式

W(t)=W(t-1)+ΔW(t)

b(t)=b(t-1)+Δb(t)

其中,t为学习次数。

6.BP网络学习成功结束条件每次学习累积误差平方和

中国矿产资源评价新技术与评价新模型

每次学习平均误差

中国矿产资源评价新技术与评价新模型

当平均误差MSE<ε,BP网络学习成功结束。

7.BP网络应用预测

在应用BP网络时,提供网络输入给输入层,应用给定的BP网络及BP网络学习得到的权值W、偏差b,网络输入经过从输入层经各隐含层向输出层的“顺传播”过程,计算出BP网的预测输出。

8.神经元激活函数f

线性函数

f(x)=x,

f′(x)=1,

f(x)的输入范围(-∞,+∞),输出范围(-∞,+∞)。

一般用于输出层,可使网络输出任何值。

S型函数S(x)

中国矿产资源评价新技术与评价新模型

f(x)的输入范围(-∞,+∞),输出范围(0,1)。

f′(x)=f(x)[1-f(x)],

f′(x)的输入范围(-∞,+∞),输出范围(0,

]。

一般用于隐含层,可使范围(-∞,+∞)的输入,变成(0,1)的网络输出,对较大的输入,放大系数较小;而对较小的输入,放大系数较大,所以可用来处理和逼近非线性的输入/输出关系。

在用于模式识别时,可用于输出层,产生逼近于0或1的二值输出。

双曲正切S型函数

中国矿产资源评价新技术与评价新模型

f(x)的输入范围(-∞,+∞),输出范围(-1,1)。

f′(x)=1-f(x)·f(x),

f′(x)的输入范围(-∞,+∞),输出范围(0,1]。

一般用于隐含层,可使范围(-∞,+∞)的输入,变成(-1,1)的网络输出,对较大的输入,放大系数较小;而对较小的输入,放大系数较大,所以可用来处理和逼近非线性的输入/输出关系。

阶梯函数

类型1

中国矿产资源评价新技术与评价新模型

f(x)的输入范围(-∞,+∞),输出范围{0,1}。

f′(x)=0。

类型2

中国矿产资源评价新技术与评价新模型

f(x)的输入范围(-∞,+∞),输出范围{-1,1}。

f′(x)=0。

斜坡函数

类型1

中国矿产资源评价新技术与评价新模型

f(x)的输入范围(-∞,+∞),输出范围[0,1]。

中国矿产资源评价新技术与评价新模型

f′(x)的输入范围(-∞,+∞),输出范围{0,1}。

类型2

中国矿产资源评价新技术与评价新模型

f(x)的输入范围(-∞,+∞),输出范围[-1,1]。

中国矿产资源评价新技术与评价新模型

f′(x)的输入范围(-∞,+∞),输出范围{0,1}。

三、总体算法

1.三层BP网络(含输入层,隐含层,输出层)权值W、偏差b初始化总体算法

(1)输入参数X[N][P],S0,S1,f1[S1],S2,f2[S2];

(2)计算输入模式X[N][P]各个变量的最大值,最小值矩阵 Xmax[N],Xmin[N];

(3)隐含层的权值W1,偏差b1初始化。

情形1:隐含层激活函数f( )都是双曲正切S型函数

1)计算输入模式X[N][P]的每个变量的范围向量Xrng[N];

2)计算输入模式X的每个变量的范围均值向量Xmid[N];

3)计算W,b的幅度因子Wmag

4)产生[-1,1]之间均匀分布的S0×1维随机数矩阵Rand[S1];

5)产生均值为0,方差为1的正态分布的S1×S0维随机数矩阵Randnr[S1][S0],随机数范围大致在[-1,1];

6)计算W[S1][S0],b[S1];

7)计算隐含层的初始化权值W1[S1][S0];

8)计算隐含层的初始化偏差b1[S1];

9))输出W1[S1][S0],b1[S1]。

情形2:隐含层激活函数f( )都是S型函数

1)计算输入模式X[N][P]的每个变量的范围向量Xrng[N];

2)计算输入模式X的每个变量的范围均值向量Xmid[N];

3)计算W,b的幅度因子Wmag;

4)产生[-1,1]之间均匀分布的S0×1维随机数矩阵Rand[S1];

5)产生均值为0,方差为1的正态分布的S1×S0维随机数矩阵Randnr[S1][S0],随机数范围大致在[-1,1];

6)计算W[S1][S0],b[S1];

7)计算隐含层的初始化权值W1[S1][S0];

8)计算隐含层的初始化偏差b1[S1];

9)输出W1[S1][S0],b1[S1]。

情形3:隐含层激活函数f( )为其他函数的情形

1)计算输入模式X[N][P]的每个变量的范围向量Xrng[N];

2)计算输入模式X的每个变量的范围均值向量Xmid[N];

3)计算W,b的幅度因子Wmag

4)产生[-1,1]之间均匀分布的S0×1维随机数矩阵Rand[S1];

5)产生均值为0,方差为1的正态分布的S1×S0维随机数矩阵Randnr[S1][S0],随机数范围大致在[-1,1];

6)计算W[S1][S0],b[S1];

7)计算隐含层的初始化权值W1[S1][S0];

8)计算隐含层的初始化偏差b1[S1];

9)输出W1[S1][S0],b1[S1]。

(4)输出层的权值W2,偏差b2初始化

1)产生[-1,1]之间均匀分布的S2×S1维随机数矩阵W2[S2][S1];

2)产生[-1,1]之间均匀分布的S2×1维随机数矩阵b2[S2];

3)输出W2[S2][S1],b2[S2]。

2.应用弹性BP算法(RPROP)学习三层BP网络(含输入层,隐含层,输出层)权值W、偏差b总体算法

函数:Train3BP_RPROP(S0,X,P,S1,W1,b1,f1,S2,W2,b2,f2,d,TP)

(1)输入参数

P对模式(xp,dp),p=1,2,…,P;

三层BP网络结构;

学习参数。

(2)学习初始化

1)

2)各层W,b的梯度值

初始化为零矩阵。

(3)由输入模式X求第一次学习各层输出y0,y1,y2及第一次学习平均误差MSE

(4)进入学习循环

epoch=1

(5)判断每次学习误差是否达到目标误差要求

如果MSE<ϵ,

则,跳出epoch循环,

转到(12)。

(6)保存第epoch-1次学习产生的各层W,b的梯度值

(7)求第epoch次学习各层W,b的梯度值

1)求各层误差反向传播值δ;

2)求第p次各层W,b的梯度值

3)求p=1,2,…,P次模式产生的W,b的梯度值

的累加。

(8)如果epoch=1,则将第epoch-1次学习的各层W,b的梯度值

设为第epoch次学习产生的各层W,b的梯度值

(9)求各层W,b的更新

1)求权更新值Δij更新;

2)求W,b的权更新值

3)求第epoch次学习修正后的各层W,b。

(10)用修正后各层W、b,由X求第epoch次学习各层输出y0,y1,y2及第epoch次学习误差MSE

(11)epoch=epoch+1,

如果epoch≤MAX_EPOCH,转到(5);

否则,转到(12)。

(12)输出处理

1)如果MSE<ε,

则学习达到目标误差要求,输出W1,b1,W2,b2

2)如果MSE≥ε,

则学习没有达到目标误差要求,再次学习。

(13)结束

3.三层BP网络(含输入层,隐含层,输出层)预测总体算法

首先应用Train3lBP_RPROP( )学习三层BP网络(含输入层,隐含层,输出层)权值W、偏差b,然后应用三层BP网络(含输入层,隐含层,输出层)预测。

函数:Simu3lBP( )。

1)输入参数:

P个需预测的输入数据向量xp,p=1,2,…,P;

三层BP网络结构;

学习得到的各层权值W、偏差b。

2)计算P个需预测的输入数据向量xp(p=1,2,…,P)的网络输出 y2[S2][P],输出预测结果y2[S2][P]。

四、总体算法流程图

BP网络总体算法流程图见附图2。

五、数据流图

BP网数据流图见附图1。

六、实例

实例一 全国铜矿化探异常数据BP 模型分类

1.全国铜矿化探异常数据准备

在全国铜矿化探数据上用稳健统计学方法选取铜异常下限值33.1,生成全国铜矿化探异常数据。

2.模型数据准备

根据全国铜矿化探异常数据,选取7类33个矿点的化探数据作为模型数据。这7类分别是岩浆岩型铜矿、斑岩型铜矿、矽卡岩型、海相火山型铜矿、陆相火山型铜矿、受变质型铜矿、海相沉积型铜矿,另添加了一类没有铜异常的模型(表8-1)。

3.测试数据准备

全国化探数据作为测试数据集。

4.BP网络结构

隐层数2,输入层到输出层向量维数分别为14,9、5、1。学习率设置为0.9,系统误差1e-5。没有动量项。

表8-1 模型数据表

续表

5.计算结果图

如图8-2、图8-3。

图8-2

图8-3 全国铜矿矿床类型BP模型分类示意图

实例二 全国金矿矿石量品位数据BP 模型分类

1.模型数据准备

根据全国金矿储量品位数据,选取4类34个矿床数据作为模型数据,这4类分别是绿岩型金矿、与中酸性浸入岩有关的热液型金矿、微细浸染型型金矿、火山热液型金矿(表8-2)。

2.测试数据准备

模型样本点和部分金矿点金属量、矿石量、品位数据作为测试数据集。

3.BP网络结构

输入层为三维,隐层1层,隐层为三维,输出层为四维,学习率设置为0.8,系统误差1e-4,迭代次数5000。

表8-2 模型数据

4.计算结果

结果见表8-3、8-4。

表8-3 训练学习结果

表8-4 预测结果(部分)

续表

Ⅶ 什么是BP神经网络

BP算法的基本思想是:学习过程由信号正向传播与误差的反向回传两个部分组成;正向传播时,输入样本从输入层传入,经各隐层依次逐层处理,传向输出层,若输出层输出与期望不符,则将误差作为调整信号逐层反向回传,对神经元之间的连接权矩阵做出处理,使误差减小。经反复学习,最终使误差减小到可接受的范围。具体步骤如下:
1、从训练集中取出某一样本,把信息输入网络中。
2、通过各节点间的连接情况正向逐层处理后,得到神经网络的实际输出。
3、计算网络实际输出与期望输出的误差。
4、将误差逐层反向回传至之前各层,并按一定原则将误差信号加载到连接权值上,使整个神经网络的连接权值向误差减小的方向转化。
5、対训练集中每一个输入—输出样本对重复以上步骤,直到整个训练样本集的误差减小到符合要求为止。

Ⅷ BP神经网络和感知器有什么区别

1、BP神经网络,指的是用了“BP算法”进行训练的“多层感知器模型”。
2、感知器(MLP,Multilayer
Perceptron)是一种前馈人工神经网络模型,其将输入的多个数据集映射到单一的输出的数据集上,可以解决任何线性不可分问题。
3、多层感知器就是指得结构上多层的感知器模型递接连成的前向型网络。BP就是指得反向传播算法

Ⅸ 神经网络——BP算法

对于初学者来说,了解了一个算法的重要意义,往往会引起他对算法本身的重视。BP(Back Propagation,后向传播)算法,具有非凡的历史意义和重大的现实意义。

1969年,作为人工神经网络创始人的明斯基(Marrin M insky)和佩珀特(Seymour Papert)合作出版了《感知器》一书,论证了简单的线性感知器功能有限,不能解决如“异或”(XOR )这样的基本问题,而且对多层网络也持悲观态度。这些论点给神经网络研究以沉重的打击,很多科学家纷纷离开这一领域,神经网络的研究走向长达10年的低潮时期。[1]

1974年哈佛大学的Paul Werbos发明BP算法时,正值神经外网络低潮期,并未受到应有的重视。[2]

1983年,加州理工学院的物理学家John Hopfield利用神经网络,在旅行商这个NP完全问题的求解上获得当时最好成绩,引起了轰动[2]。然而,Hopfield的研究成果仍未能指出明斯基等人论点的错误所在,要推动神经网络研究的全面开展必须直接解除对感知器——多层网络算法的疑虑。[1]

真正打破明斯基冰封魔咒的是,David Rumelhart等学者出版的《平行分布处理:认知的微观结构探索》一书。书中完整地提出了BP算法,系统地解决了多层网络中隐单元连接权的学习问题,并在数学上给出了完整的推导。这是神经网络发展史上的里程碑,BP算法迅速走红,掀起了神经网络的第二次高潮。[1,2]

因此,BP算法的历史意义:明确地否定了明斯基等人的错误观点,对神经网络第二次高潮具有决定性意义。

这一点是说BP算法在神经网络领域中的地位和意义。

BP算法是迄今最成功的神经网络学习算法,现实任务中使用神经网络时,大多是在使用BP算法进行训练[2],包括最近炙手可热的深度学习概念下的卷积神经网络(CNNs)。

BP神经网络是这样一种神经网络模型,它是由一个输入层、一个输出层和一个或多个隐层构成,它的激活函数采用sigmoid函数,采用BP算法训练的多层前馈神经网络。

BP算法全称叫作误差反向传播(error Back Propagation,或者也叫作误差逆传播)算法。其算法基本思想为:在2.1所述的前馈网络中,输入信号经输入层输入,通过隐层计算由输出层输出,输出值与标记值比较,若有误差,将误差反向由输出层向输入层传播,在这个过程中,利用梯度下降算法对神经元权值进行调整。

BP算法中核心的数学工具就是微积分的 链式求导法则 。

BP算法的缺点,首当其冲就是局部极小值问题。

BP算法本质上是梯度下降,而它所要优化的目标函数又非常复杂,这使得BP算法效率低下。

[1]、《BP算法的哲学思考》,成素梅、郝中华着

[2]、《机器学习》,周志华着

[3]、 Deep Learning论文笔记之(四)CNN卷积神经网络推导和实现

2016-05-13 第一次发布

2016-06-04 较大幅度修改,完善推导过程,修改文章名

2016-07-23 修改了公式推导中的一个错误,修改了一个表述错误

Ⅹ 深入理解BP神经网络

BP神经网络是一种多层的前馈神经网络,其主要的特点是:信号是前向传播的,而误差是反向传播的。具体来说,对于如下的只含一个隐层的神经网络模型:

BP神经网络的过程主要分为两个阶段,第一阶段是信号的前向传播,从输入层经过隐含层,最后到达输出层;第二阶段是误差的反向传播,从输出层到隐含层,最后到输入层,依次调节隐含层到输出层的权重和偏置,输入层到隐含层的权重和偏置。

神经网络的基本组成单元是神经元。神经元的通用模型如图所示,其中常用的激活函数有阈值函数、sigmoid函数和双曲正切函数。 

神经元的输出为: 

神经网络是将多个神经元按一定规则联结在一起而形成的网络,如图 所示。 

从图 可以看出,一个神经网络包括输入层、隐含层(中间层)和输出层。输入层神经元个数与输入数据的维数相同,输出层神经元个数与需要拟合的数据个数相同,隐含层神经元个数与层数就需要设计者自己根据一些规则和目标来设定。在深度学习出现之前,隐含层的层数通常为一层,即通常使用的神经网络是3层网络。 

BP网络采用的传递函数是非线性变换函数——Sigmoid函数(又称S函数)。其特点是函数本身及其导数都是连续的,因而在处理上十分方便。为什么要选择这个函数,等下在介绍BP网络的学习算法的时候会进行进一步的介绍。S函数有单极性S型函数和双极性S型函数两种,单极性S型函数定义如下:f(x)=1/1+e−x

其函数曲线如图所示:

双极性S型函数:f(x)=1−e−x/1+e−x

使用S型激活函数时,输入:

输出:

输出的导数:

使用S型激活函数时,BP网络的输出及其导数图形:

根据S激活函数的图形:

net在 -5~0 的时候导数的值为正,且导数的值逐渐增大, 说明此时f(x)在逐渐变大 且 变大的速度越来越快

net在 0~5  的时候导数的值为正,且导数的值逐渐减小, 说明此时f(x)在逐渐变大 但是 变大的速度越来越慢

对神经网络进行训练,我们应该尽量将net的值尽量控制在收敛比较快的范围内。

1.  定义一个BP神经网络的类,设置网络相关参数

2.    实例化该神经网络,按下图被构建成一个输出3维,输出1维,带有3个隐藏层(每个隐藏层10个节点)的BP网络;(此处还可以随意扩展输入、输出维度和隐藏层相关系数)

3.    初始化BP神经网络的时候,开始初始化各层网络节点的 权重、权重动量、误差初始值

4.  引入学习训练数据;4组输入、输出数据迭代5000次

    5000次中不断向前逐层计算输出的节点数据

    并同时逐层计算误差反向修改权重值,直到迭代完毕;注意误差函数值必须呈现下降趋势

5.  引入数据进行结果预测,将数据带回模型计算得结果;最终可知预测结果趋近于0.7

神经网络利用现有的数据找出输入与输出之间得权值关系(近似),然后利用这样的权值关系进行仿真,例如输入一组数据仿真出输出结果,当然你的输入要和训练时采用的数据集在一个范畴之内。例如预报天气:温度 湿度 气压等作为输入 天气情况作为输出利用历史得输入输出关系训练出神经网络,然后利用这样的神经网络输入今天的温度 湿度 气压等 得出即将得天气情况。同理,运用到自动化测试中,使用测试数据反映结果走向,bug数,质量问题等情况也可以做到提前预测的!

附录:

阅读全文

与bp神经网络是什么相关的资料

热点内容
便宜二手机4g网络 浏览:710
4k网络电视高清的多少钱一台 浏览:1000
手机如何设置网络休眠 浏览:340
郴州网络软件开发应用制作公司 浏览:342
网络词啥意思是什么 浏览:499
苹果如何设置联通的网络 浏览:522
如何给某个app授权网络 浏览:803
黑龙江医学网络药理学多少钱 浏览:905
检察网络安全培训 浏览:140
手机中无线与网络管理 浏览:625
手机如何没有网络也能上网 浏览:574
华擎主板如何连接网络 浏览:612
古剑奇谭3和网络版哪个好玩吗 浏览:793
网络语爆蛋糕是什么意思 浏览:893
手机运营商选择哪个网络 浏览:892
网络男红歌手机手 浏览:229
荣耀有wifi拒绝加入网络 浏览:282
手机连接网络说密码错误 浏览:89
中小学网络云平台在哪里下课程 浏览:737
请在设置中关闭网络代理 浏览:346

友情链接