什么是BP神经网络?

2024-05-14

1. 什么是BP神经网络?

科普中国·科学百科:BP神经网络

什么是BP神经网络?

2. BP人工神经网络

人工神经网络(artificialneuralnetwork,ANN)指由大量与自然神经系统相类似的神经元联结而成的网络,是用工程技术手段模拟生物网络结构特征和功能特征的一类人工系统。神经网络不但具有处理数值数据的一般计算能力,而且还具有处理知识的思维、学习、记忆能力,它采用类似于“黑箱”的方法,通过学习和记忆,找出输入、输出变量之间的非线性关系(映射),在执行问题和求解时,将所获取的数据输入到已经训练好的网络,依据网络学到的知识进行网络推理,得出合理的答案与结果。
岩土工程中的许多问题是非线性问题,变量之间的关系十分复杂,很难用确切的数学、力学模型来描述。工程现场实测数据的代表性与测点的位置、范围和手段有关,有时很难满足传统统计方法所要求的统计条件和规律,加之岩土工程信息的复杂性和不确定性,因而运用神经网络方法实现岩土工程问题的求解是合适的。
BP神经网络模型是误差反向传播(BackPagation)网络模型的简称。它由输入层、隐含层和输出层组成。网络的学习过程就是对网络各层节点间连接权逐步修改的过程,这一过程由两部分组成:正向传播和反向传播。正向传播是输入模式从输入层经隐含层处理传向输出层;反向传播是均方误差信息从输出层向输入层传播,将误差信号沿原来的连接通路返回,通过修改各层神经元的权值,使得误差信号最小。
BP神经网络模型在建立及应用过程中,主要存在的不足和建议有以下四个方面:
(1)对于神经网络,数据愈多,网络的训练效果愈佳,也更能反映实际。但在实际操作中,由于条件的限制很难选取大量的样本值进行训练,样本数量偏少。
(2)BP网络模型其计算速度较慢、无法表达预测量与其相关参数之间亲疏关系。
(3)以定量数据为基础建立模型,若能收集到充分资料,以定性指标(如基坑降水方式、基坑支护模式、施工工况等)和一些易获取的定量指标作为输入层,以评价等级作为输出层,这样建立的BP网络模型将更准确全面。
(4)BP人工神经网络系统具有非线性、智能的特点。较好地考虑了定性描述和定量计算、精确逻辑分析和非确定性推理等方面,但由于样本不同,影响要素的权重不同,以及在根据先验知识和前人的经验总结对定性参数进行量化处理,必然会影响评价的客观性和准确性。因此,在实际评价中只有根据不同的基坑施工工况、不同的周边环境条件,应不同用户的需求,选择不同的分析指标,才能满足复杂工况条件下地质环境评价的要求,取得较好的应用效果。

3. 人工神经网络(ANN)简述

 我们从下面四点认识人工神经网络(ANN: Artificial  Neutral Network):神经元结构、神经元的激活函数、神经网络拓扑结构、神经网络选择权值和学习算法。
    1. 神经元:    我们先来看一组对比图就能了解是怎样从生物神经元建模为人工神经元。
                                           下面分别讲述:   生物神经元的组成包括细胞体、树突、轴突、突触。树突可以看作输入端,接收从其他细胞传递过来的电信号;轴突可以看作输出端,传递电荷给其他细胞;突触可以看作I/O接口,连接神经元,单个神经元可以和上千个神经元连接。细胞体内有膜电位,从外界传递过来的电流使膜电位发生变化,并且不断累加,当膜电位升高到超过一个阈值时,神经元被激活,产生一个脉冲,传递到下一个神经元。
   为了更形象理解神经元传递信号过程,把一个神经元比作一个水桶。水桶下侧连着多根水管(树突),水管既可以把桶里的水排出去(抑制性),又可以将其他水桶的水输进来(兴奋性),水管的粗细不同,对桶中水的影响程度不同(权重),水管对水桶水位(膜电位)的改变就是水桶内水位的改变,当桶中水达到一定高度时,就能通过另一条管道(轴突)排出去。   
                                           
   按照这个原理,科学家提出了M-P模型(取自两个提出者的姓名首字母),M-P模型是对生物神经元的建模,作为人工神经网络中的一个神经元。
                                                                                   由MP模型的示意图,我们可以看到与生物神经元的相似之处,x_i表示多个输入,W_ij表示每个输入的权值,其正负模拟了生物神经元中突出的兴奋和抑制;sigma表示将全部输入信号进行累加整合,f为激活函数,O为输出。下图可以看到生物神经元和MP模型的类比:
                                           往后诞生的各种神经元模型都是由MP模型演变过来。
    2. 激活函数    激活函数可以看作滤波器,接收外界各种各样的信号,通过调整函数,输出期望值。ANN通常采用三类激活函数:阈值函数、分段函数、双极性连续函数(sigmoid,tanh):   
                                           
    3. 学习算法    神经网络的学习也称为训练,通过神经网络所在环境的刺激作用调整神经网络的自由参数(如连接权值),使神经网络以一种新的方式对外部环境做出反应的一个过程。每个神经网络都有一个激活函数y=f(x),训练过程就是通过给定的海量x数据和y数据,拟合出激活函数f。学习过程分为有导师学习和无导师学习,有导师学习是给定期望输出,通过对权值的调整使实际输出逼近期望输出;无导师学习给定表示方法质量的测量尺度,根据该尺度来优化参数。常见的有Hebb学习、纠错学习、基于记忆学习、随机学习、竞争学习。
    4. 神经网络拓扑结构    常见的拓扑结构有单层前向网络、多层前向网络、反馈网络,随机神经网络、竞争神经网络。   
                                                                                   
    5. 神经网络的发展 
                                                                                                                                                                                                                                                                                           (不能贴公式不好解释啊 -_-!)sigma是误差信号,yita是学习率,net是输入之和,V是输入层到隐含层的权重矩阵,W是隐含层到输出层的权重矩阵。
   之后还有几种
                                                                                   随着计算机硬件计算能力越来越强,用来训练的数据越来越多,神经网络变得越来越复杂。在人工智能领域常听到DNN(深度神经网络)、CNN(卷积神经网络)、RNN(递归神经网络)。其中,DNN是总称,指层数非常多的网络,通常有二十几层,具体可以是CNN或RNN等网络结构。
    参考资料 :

人工神经网络(ANN)简述

4. 人工神经网络(ANN)

人工神经网络,也就是ANN(Artificial Neural Network),它是模拟人类大脑处理信息的生物神经网络所产生出来的一种计算模型。而它主要用于机器学习的研究与调用,例如语音识别,计算机图像处理,NLP等。
  
 在神经网络中,计算的最小单元就是神经元。它从其他的神经元接收输入参数,并且计算之后输出最后结果。
  
 而每个输入都伴随着一个 Weight ,即(w),并且输入的参数中也包含一个很重要的参数 bias 。并且每个神经元都会应用一个函数 f(wx+b) 来得到最后的输出。如下图所示:
                                          
 该神经元接收 X1 与 X2 两个参数,并且有 W1 与 W2 两个权重(Weight),同时还有一个 b 作为 Bias 作为输入。而输出 Y 则是作为该神经元计算后的输出。
  
 在生活中,通常很多事情或者说计算都不是一条线性的曲线。所以,为了尽量拟合生活中的运算或者计算规律(统计学、概率论等等),于是需要把线性(non-linear)计算后的结果,通过函数转变成拟合概率论的非线性函数结果。而这个过程,就叫做激活,而转变的函数也就叫做激活函数。
  
 激活函数的目的是为了将线性的结果转变成非线性的结果,让计算结果更加贴近于生活。
  
 而每个激活函数或者非线性函数都会根据一个单独的数进行一些数学的操作,将原来的结果变成一个非线性的结果。
  
 常用的Activation Function有如下:
                                          
 前向神经网络主要由多个神经元,以及多神经元层构成。
  
 主要包括三部分:
                                          
 多层感知机,即Multi Layer Perceptron。主要由一个或者多个隐藏层构成。而不包含隐藏层,只有输入和输出层的被称为单层感知机。即Single Layer Perceptron。
  
 不包含隐藏层的单层感知机只能学习线性的变化,一旦包含了隐藏层,就可以学习非线性变化了。
  
 对于隐藏层中的神经元而言,每个神经元都会与前一层(如输入层)的所有神经元相连接,并且连接时都会带有权重,这种也被称之为全连接层(Full Connect Layer)。
  
 通过隐藏层不同的神经元,以及每个神经元所携带的权重,就可以完成非线性的预测了。
                                          
 训练多层感知机模型通常都用反向传播算法(Back-Propagation)。
  
 训练多层感知机模型的目的是为了能够更准确的预测事物,而反向传播算法则可以根据结果让计算机可以学习到正确的Weight与Bias。
  
 反向传播算法:
  
 一旦这个过程终止之后,我们就拥有一个已经训练过的模型了,就可以考虑使用新的输入进行预测。
  
 在分类的任务中,通常会使用 SoftMax 的函数作为Activation Function,因为它可以在多个输入之间实现归一化,保证最终的分类结果的概率为1。
   
                                          
 
  
 在MNIST的数据集中,提供了很多手写体的数字。例如下图中的5。
  
 而该神经网络拥有784个像素点(因为宽高为28*28=784),所以在输入层会有784个节点。
  
 而在第一层隐藏层有300个节点,在第二层隐藏层有100个节点,在最终的输出层会有10个节点,对应着0-9这十个数字。
  
 使用更亮的颜色来代表输出值更高的节点。在输入层,亮的节点就是代表像素值的数值更高的节点。而在输出层,只有一个亮的节点代表数字5,它输出的结果概率值为1,而其他9个数字的节点概率值为0.
  
 这张图表明了MLP可以正确的分类输入的数字。
                                          
  https://ujjwalkarn.me/2016/08/09/quick-intro-neural-networks/ 
    https://ujjwalkarn.me/2016/08/11/intuitive-explanation-convnets/

5. BP神经网络的神经网络

在人工神经网络发展历史中,很长一段时间里没有找到隐层的连接权值调整问题的有效算法。直到误差反向传播算法(BP算法)的提出,成功地解决了求解非线性连续函数的多层前馈神经网络权重调整问题。BP (Back Propagation)神经网络,即误差反传误差反向传播算法的学习过程,由信息的正向传播和误差的反向传播两个过程组成。输入层各神经元负责接收来自外界的输入信息,并传递给中间层各神经元;中间层是内部信息处理层,负责信息变换,根据信息变化能力的需求,中间层可以设计为单隐层或者多隐层结构;最后一个隐层传递到输出层各神经元的信息,经进一步处理后,完成一次学习的正向传播处理过程,由输出层向外界输出信息处理结果。当实际输出与期望输出不符时,进入误差的反向传播阶段。误差通过输出层,按误差梯度下降的方式修正各层权值,向隐层、输入层逐层反传。周而复始的信息正向传播和误差反向传播过程,是各层权值不断调整的过程,也是神经网络学习训练的过程,此过程一直进行到网络输出的误差减少到可以接受的程度,或者预先设定的学习次数为止。BP神经网络模型BP网络模型包括其输入输出模型、作用函数模型、误差计算模型和自学习模型。(1)节点输出模型隐节点输出模型:Oj=f(∑Wij×Xi-qj) (1)输出节点输出模型:Yk=f(∑Tjk×Oj-qk) (2)f-非线形作用函数;q -神经单元阈值。(2)作用函数模型作用函数是反映下层输入对上层节点刺激脉冲强度的函数又称刺激函数,一般取为(0,1)内连续取值Sigmoid函数: f(x)=1/(1+e乘方(-x)) (3)(3)误差计算模型误差计算模型是反映神经网络期望输出与计算输出之间误差大小的函数:(4)tpi- i节点的期望输出值;Opi-i节点计算输出值。(4)自学习模型神经网络的学习过程,即连接下层节点和上层节点之间的权重矩阵Wij的设定和误差修正过程。BP网络有师学习方式-需要设定期望值和无师学习方式-只需输入模式之分。自学习模型为△Wij(n+1)= h ×Фi×Oj+a×△Wij(n) (5)h -学习因子;Фi-输出节点i的计算误差;Oj-输出节点j的计算输出;a-动量因子。

BP神经网络的神经网络

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

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

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

7. 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神经网络

8. BP神经网络

我不是大神。但可以给给意见。

1,遗传算法不能改变BP神经网络准确率低的本质问题的。只能在一定程度上优化BP神经网络。
2,你的数据是怎么增加的?由原来的80组数据基础上随意组合的?还有你的输出结果是3个等级。期望输出是什么类型?预测输出是什么类型?你判断正确率的标准是什么?这些都会对正确率有影响。
3,BP神经网络的正确率的提高可以通过:一,改变隐层的节点数。或增减隐层的层数。最少一个隐层,最多2个。二,改变传递函数,一般隐层用tansig,输出层用linear或者tansig。
4,最后的方法是不怎么重要的,就是数据的归一化,一般是归一化或不归一化都可以的,都试试。
我都是书本学过,做过点题目,只能给这些建议。
最新文章
热门文章
推荐阅读