BP神经网络原理

人工神经网络有很多模型,但是日前应用最广、基本思想最直观、最容易被理解的是多层前馈神经网络及误差逆传播学习算法(Error Back-Prooaeation),简称为BP网络。

在1986年以Rumelhart和McCelland为首的科学家出版的《Parallel Distributed Processing》一书中,完整地提出了误差逆传播学习算法,并被广泛接受。

多层感知网络是一种具有三层或三层以上的阶层型神经网络。

典型的多层感知网络是三层、前馈的阶层网络(图4.1),即:输入层、隐含层(也称中间层)、输出层,具体如下:图4.1 三层BP网络结构(1)输入层输入层是网络与外部交互的接口。

一般输入层只是输入矢量的存储层,它并不对输入矢量作任何加工和处理。输入层的神经元数目可以根据需要求解的问题和数据表示的方式来确定。

一般而言,如果输入矢量为图像,则输入层的神经元数目可以为图像的像素数,也可以是经过处理后的图像特征数。

(2)隐含层1989年,Robert Hecht Nielsno证明了对于任何在闭区间内的一个连续函数都可以用一个隐层的BP网络来逼近,因而一个三层的BP网络可以完成任意的n维到m维的映射。

增加隐含层数虽然可以更进一步的降低误差、提高精度,但是也使网络复杂化,从而增加了网络权值的训练时间。

误差精度的提高也可以通过增加隐含层中的神经元数目来实现,其训练效果也比增加隐含层数更容易观察和调整,所以一般情况应优先考虑增加隐含层的神经元个数,再根据具体情况选择合适的隐含层数。

(3)输出层输出层输出网络训练的结果矢量,输出矢量的维数应根据具体的应用要求来设计,在设计时,应尽可能减少系统的规模,使系统的复杂性减少。

如果网络用作识别器,则识别的类别神经元接近1,而其它神经元输出接近0。

以上三层网络的相邻层之间的各神经元实现全连接,即下一层的每一个神经元与上一层的每个神经元都实现全连接,而且每层各神经元之间无连接,连接强度构成网络的权值矩阵W。

BP网络是以一种有教师示教的方式进行学习的。首先由教师对每一种输入模式设定一个期望输出值。然后对网络输入实际的学习记忆模式,并由输入层经中间层向输出层传播(称为“模式顺传播”)。

实际输出与期望输出的差即是误差。按照误差平方最小这一规则,由输出层往中间层逐层修正连接权值,此过程称为“误差逆传播”(陈正昌,2005)。

所以误差逆传播神经网络也简称BP(Back Propagation)网。随着“模式顺传播”和“误差逆传播”过程的交替反复进行。

网络的实际输出逐渐向各自所对应的期望输出逼近,网络对输入模式的响应的正确率也不断上升。通过此学习过程,确定下各层间的连接权值后。

典型三层BP神经网络学习及程序运行过程如下(标志渊,2006):(1)首先,对各符号的形式及意义进行说明:网络输入向量Pk=(a1,a2,...,an);网络目标向量Tk=(y1,y2,...,yn);中间层单元输入向量Sk=(s1,s2,...,sp),输出向量Bk=(b1,b2,...,bp);输出层单元输入向量Lk=(l1,l2,...,lq),输出向量Ck=(c1,c2,...,cq);输入层至中间层的连接权wij,i=1,2,...,n,j=1,2,...p;中间层至输出层的连接权vjt,j=1,2,...,p,t=1,2,...,p;中间层各单元的输出阈值θj,j=1,2,...,p;输出层各单元的输出阈值γj,j=1,2,...,p;参数k=1,2,...,m。

(2)初始化。给每个连接权值wij、vjt、阈值θj与γj赋予区间(-1,1)内的随机值。(3)随机选取一组输入和目标样本 提供给网络。

(4)用输入样本 、连接权wij和阈值θj计算中间层各单元的输入sj,然后用sj通过传递函数计算中间层各单元的输出bj。

基坑降水工程的环境效应与评价方法bj=f(sj) j=1,2,...,p (4.5)(5)利用中间层的输出bj、连接权vjt和阈值γt计算输出层各单元的输出Lt,然后通过传递函数计算输出层各单元的响应Ct。

基坑降水工程的环境效应与评价方法Ct=f(Lt) t=1,2,...,q (4.7)(6)利用网络目标向量 ,网络的实际输出Ct,计算输出层的各单元一般化误差 。

基坑降水工程的环境效应与评价方法(7)利用连接权vjt、输出层的一般化误差dt和中间层的输出bj计算中间层各单元的一般化误差 。

基坑降水工程的环境效应与评价方法(8)利用输出层各单元的一般化误差 与中间层各单元的输出bj来修正连接权vjt和阈值γt。

基坑降水工程的环境效应与评价方法(9)利用中间层各单元的一般化误差 ,输入层各单元的输入Pk=(a1,a2,...,an)来修正连接权wij和阈值θj。

基坑降水工程的环境效应与评价方法(10)随机选取下一个学习样本向量提供给网络,返回到步骤(3),直到m个训练样本训练完毕。

(11)重新从m个学习样本中随机选取一组输入和目标样本,返回步骤(3),直到网路全局误差E小于预先设定的一个极小值,即网络收敛。如果学习次数大于预先设定的值,网络就无法收敛。(12)学习结束。

可以看出,在以上学习步骤中,(8)、(9)步为网络误差的“逆传播过程”,(10)、(11)步则用于完成训练和收敛过程。通常,经过训练的网络还应该进行性能测试。

测试的方法就是选择测试样本向量,将其提供给网络,检验网络对其分类的正确性。测试样本向量中应该包含今后网络应用过程中可能遇到的主要典型模式(宋大奇,2006)。

这些样本可以直接测取得到,也可以通过仿真得到,在样本数据较少或者较难得到时,也可以通过对学习样本加上适当的噪声或按照一定规则插值得到。

为了更好地验证网络的泛化能力,一个良好的测试样本集中不应该包含和学习样本完全相同的模式(董军,2007)。

谷歌人工智能写作项目:神经网络伪原创

BP神经网络的工作原理

人工神经网络就是模拟人思维的第二种方式写作猫。这是一个非线性动力学系统,其特色在于信息的分布式存储和并行协同处理。

虽然单个神经元的结构极其简单,功能有限,但大量神经元构成的网络系统所能实现的行为却是极其丰富多彩的。人工神经网络首先要以一定的学习准则进行学习,然后才能工作。

现以人工神经网络对手写“A”、“B”两个字母的识别为例进行说明,规定当“A”输入网络时,应该输出“1”,而当输入为“B”时,输出为“0”。

所以网络学习的准则应该是:如果网络作出错误的的判决,则通过网络的学习,应使得网络减少下次犯同样错误的可能性。

首先,给网络的各连接权值赋予(0,1)区间内的随机值,将“A”所对应的图象模式输入给网络,网络将输入模式加权求和、与门限比较、再进行非线性运算,得到网络的输出。

在此情况下,网络输出为“1”和“0”的概率各为50%,也就是说是完全随机的。这时如果输出为“1”(结果正确),则使连接权值增大,以便使网络再次遇到“A”模式输入时,仍然能作出正确的判断。

如果输出为“0”(即结果错误),则把网络连接权值朝着减小综合输入加权值的方向调整,其目的在于使网络下次再遇到“A”模式输入时,减小犯同样错误的可能性。

如此操作调整,当给网络轮番输入若干个手写字母“A”、“B”后,经过网络按以上学习方法进行若干次学习后,网络判断的正确率将大大提高。

这说明网络对这两个模式的学习已经获得了成功,它已将这两个模式分布地记忆在网络的各个连接权值上。当网络再次遇到其中任何一个模式时,能够作出迅速、准确的判断和识别。

一般说来,网络中所含的神经元个数越多,则它能记忆、识别的模式也就越多。如图所示拓扑结构的单隐层前馈网络,一般称为三层前馈网或三层感知器,即:输入层、中间层(也称隐层)和输出层。

它的特点是:各层神经元仅与相邻层神经元之间相互全连接,同层内神经元之间无连接,各层神经元之间无反馈连接,构成具有层次结构的前馈型神经网络系统。

单计算层前馈神经网络只能求解线性可分问题,能够求解非线性问题的网络必须是具有隐层的多层神经网络。

BP神经网络(误差反传网络)

虽然每个人工神经元很简单,但是只要把多个人工神经元按一定方式连接起来就构成了一个能处理复杂信息的神经网络。采用BP算法的多层前馈网络是目前应用最广泛的神经网络,称之为BP神经网络。

它的最大功能就是能映射复杂的非线性函数关系。

对于已知的模型空间和数据空间,我们知道某个模型和他对应的数据,但是无法写出它们之间的函数关系式,但是如果有大量的一一对应的模型和数据样本集合,利用BP神经网络可以模拟(映射)它们之间的函数关系。

一个三层BP网络如图8.11所示,分为输入层、隐层、输出层。它是最常用的BP网络。理论分析证明三层网络已经能够表达任意复杂的连续函数关系了。只有在映射不连续函数时(如锯齿波)才需要两个隐层[8]。

图8.11中,X=(x1,…,xi,…,xn)T为输入向量,如加入x0=-1,可以为隐层神经元引入阀值;隐层输出向量为:Y=(y1,…,yi,…,ym)T,如加入y0=-1,可以为输出层神经元引入阀值;输出层输出向量为:O=(o1,…,oi,…,ol)T;输入层到隐层之间的权值矩阵用V表示,V=(V1,…,Vj,…,Vl)T,其中列向量Vj表示隐层第j个神经元的权值向量;隐层到输出层之间的权值矩阵用W表示,W=(W1,…,Wk,…,Wl)T,其中列向量Wk表示输出层第k个神经元的权值向量。

图8.11 三层BP网络[8]BP算法的基本思想是:预先给定一一对应的输入输出样本集。学习过程由信号的正向传播与误差的反向传播两个过程组成。

正向传播时,输入样本从输入层传入,经过各隐层逐层处理后,传向输出层。若输出层的实际输出与期望的输出(教师信号)不符,则转入误差的反向传播。

将输出误差以某种形式通过隐层向输入层逐层反传,并将误差分摊给各层的所有神经元,获得各层的误差信号,用它们可以对各层的神经元的权值进行调整(关于如何修改权值参见韩立群著作[8]),循环不断地利用输入输出样本集进行权值调整,以使所有输入样本的输出误差都减小到满意的精度。

这个过程就称为网络的学习训练过程。当网络训练完毕后,它相当于映射(表达)了输入输出样本之间的函数关系。

在地球物理勘探中,正演过程可以表示为如下函数:d=f(m) (8.31)它的反函数为m=f-1(d) (8.32)如果能够获得这个反函数,那么就解决了反演问题。

一般来说,难以写出这个反函数,但是我们可以用BP神经网络来映射这个反函数m=f-1(d)。

对于地球物理反问题,如果把观测数据当作输入数据,模型参数当作输出数据,事先在模型空间随机产生大量样本进行正演计算,获得对应的观测数据样本,利用它们对BP网络进行训练,则训练好的网络就相当于是地球物理数据方程的反函数。

可以用它进行反演,输入观测数据,网络就会输出它所对应的模型。BP神经网络在能够进行反演之前需要进行学习训练。训练需要大量的样本,产生这些样本需要大量的正演计算,此外在学习训练过程也需要大量的时间。

但是BP神经网络一旦训练完毕,在反演中的计算时间可以忽略。要想使BP神经网络比较好地映射函数关系,需要有全面代表性的样本,但是由于模型空间的无限性,难以获得全面代表性的样本集合。

用这样的样本训练出来的BP网络,只能反映样本所在的较小范围数据空间和较小范围模型空间的函数关系。对于超出它们的观测数据就无法正确反演。

目前BP神经网络在一维反演有较多应用,在二维、三维反演应用较少,原因就是难以产生全面代表性的样本空间。

matlab BP神经网络 performance 图这五条线的详细解释

图上的三个彩色实线分别是:每一代BP训练过程的MSE指标的性能,每一代BP交叉验证过程的MSE指标的性能以及BP测试的MSE指标在每一代中执行的过程。

特别是,应该注意内部的TEST红线,这是BP计算/训练结果。BEST虚线表示当BP网络被训练到第八代时,BP训练结果是最佳的。

GOAL虚线是在编程或直接使用MATLAB的ANN工具箱训练此BP时设置的网络容量训练停止目标(一个)。

扩展资料:BP(Back Propagation)神经网络是由Rumelhart和McCelland领导的一组科学家于1986年提出的。

BP(Back Propagation)是由反向传播误差反向传播算法训练的多层前馈网络,是使用最广泛的神经网络模型之一。

BP网络可以学习并存储大量的输入-输出模式映射关系,而无需事先揭示描述这些映射关系的数学方程式。

BP网络的学习规则是使用最速下降法,并通过反向传播来不断调整网络的权重和阈值,以最小化网络的平方误差之和。 BP神经网络模型的拓扑包括输入层,隐藏层和输出层。

什么是BP神经网络?

BP算法的基本思想是:学习过程由信号正向传播与误差的反向回传两个部分组成;正向传播时,输入样本从输入层传入,经各隐层依次逐层处理,传向输出层,若输出层输出与期望不符,则将误差作为调整信号逐层反向回传,对神经元之间的连接权矩阵做出处理,使误差减小。

经反复学习,最终使误差减小到可接受的范围。具体步骤如下:1、从训练集中取出某一样本,把信息输入网络中。2、通过各节点间的连接情况正向逐层处理后,得到神经网络的实际输出。

3、计算网络实际输出与期望输出的误差。4、将误差逐层反向回传至之前各层,并按一定原则将误差信号加载到连接权值上,使整个神经网络的连接权值向误差减小的方向转化。

5、対训练集中每一个输入—输出样本对重复以上步骤,直到整个训练样本集的误差减小到符合要求为止。

MATLAB做的BP神经网络,这个图是什么图

BP神经网络训练生成的图片解释,急求。

那这张呢,到了最大迭代次数了,可是还是收敛不到指定的精度。出现的情况就是像图上一样,均方误差达到0.00128左右的时候就无法继续下去了,误差梯度总是反复,先下降,一会又缩回去了。

即使我把迭代次数设置到10000次均方误差也就稳定在0.00128左右了,主要是误差梯度总是不停的反复,这是为什么呢?是收敛失败吗?

bp神经网络图像压缩原理图,bp神经网络图像分类相关推荐

  1. BP学习算法-构建三层神经网络

    引: 人工神经网络(Artificial Neural Networks,简写为ANNs)也简称为神经网络(NNs)或称作连接模型(Connection Model),是一种模仿动物神经网络行为特征, ...

  2. 经典神经网络分类器之BP算法和自组织竞争网络

    经典神经网络分类器 感知器 感知器学习算法是误分类驱动的在线学习算法,任意选取一个具有参数的分离超平面,采用随机梯度下降法不断极小化损失函数,多次迭代训练得到感知器参数w b. 定义损失函数(训练样本 ...

  3. 如何提高bp神经网络精度,改进bp神经网络的方案

    1.BP神经网络的核心问题是什么?其优缺点有哪些? 人工神经网络,是一种旨在模仿人脑结构及其功能的信息处理系统,就是使用人工神经网络方法实现模式识别.可处理一些环境信息十分复杂,背景知识不清楚,推理规 ...

  4. 机器学习:BP神经网络,CNN卷积神经网络,GAN生成对抗网络

    1,基础知识 1.1,概述 机器学习:概念_燕双嘤-CSDN博客1,机器学习概述1.1,机器学习概念机器学习即Machine Learning,涉及概率论.统计学.逼近论.凸分析.算法复杂度理论等多门 ...

  5. 神经网络初认识——BP神经网络(7月18,再次认识)

    BP神经网络--Error back Propagtion BP网络属于多层前向神经网络,BP网络是前向神经网络的核心部分,也是整个人工神经网络体系的精华,解决非线性问题**广泛应用在分类识别,逼近, ...

  6. bp神经网络预测模型原理,BP神经网络预测模型

    深度学习与神经网络有什么区别 深度学习与神经网络关系2017-01-10最近开始学习深度学习,基本上都是zouxy09博主的文章,写的蛮好,很全面,也会根据自己的思路,做下删减,细化. 五.DeepL ...

  7. bp神经网络预测模型例题,bp神经网络模型是什么

    1.BP神经网络中隐藏层节点个数怎么确定最佳? 1.神经网络算法隐含层的选取 1.1 构造法 首先运用三种确定隐含层层数的方法得到三个隐含层层数,找到最小值和最大值,然后从最小值开始逐个验证模型预测误 ...

  8. 提高bp神经网络预测精度,bp神经网络数据预处理

    bp神经网络对输入数据和输出数据有什么要求 p神经网络的输入数据越多越好,输出数据需要反映网络的联想记忆和预测能力.BP网络能学习和存贮大量的输入-输出模式映射关系,而无需事前揭示描述这种映射关系的数 ...

  9. 提高bp神经网络预测精度,bp神经网络收敛速度慢

    1.如何提高bp神经网络的预测精度啊 跟你的预测对象有很大关系. 1. 根据你的预测对象的特性选取合适的输入层.输出层和隐层神经元数目. 2. 选择合适的神经网络训练函数. 3. 保证足够的训练样本数 ...

  10. bp神经网络时间序列预测,bp神经网络数据预处理

    怎么用已经训练好的BP神经网络进行预测下一个值? 谷歌人工智能写作项目:神经网络伪原创 bp神经网络如何用于预测 如何人工神经网络来预测下一个数值 newff函数建立BP神经网络,历史数据作为样本,例 ...

最新文章

  1. 位运算+取某一位+java_Java位运算小节
  2. Java中的匿名对象
  3. C#开发Unity游戏教程之Unity中方法的参数
  4. Windows API一日一练(56)SetEndOfFile和GetFileSizeEx函数
  5. 15个Spring的核心注释示例
  6. Ueeidor 使用
  7. DrawerLayoutDemo【侧边栏(侧滑菜单)简单实现】
  8. matlab gui 中指定axes窗口画进度条
  9. 使用Lucene的新FreeTextSuggester查找长尾建议
  10. 设置XMLHttpRequest“ withCredentials”属性问题,axios请求不成功
  11. 快1倍,我在 M1 Max 上开发 iOS 应用有了这些发现
  12. linq的字段自增长属性设置_云途晨报9月9日前,这5类ebay物品属性必须完成更新;Wish体积重计算方式即将更新...
  13. Linux查看被监听的端口
  14. 网易云解析接口PHP源码,网易云音乐直链解析API源代码^-^
  15. UOS国产操作系统_三方源
  16. cd linux 镜像,cdlinux镜像 v0.9.7官方版
  17. 详解如何在Sbo Add-on开发中使用Folder控件
  18. 定制属于你的专属上网导航页,个性域名、个性皮肤,你说了算!
  19. 爬取智联招聘岗位描述并根据描述生成词云
  20. uni-app uni-fab修改图标 浮窗位置 是否展开

热门文章

  1. 《Linux防火墙(第4版)》——导读
  2. 英汉汉英词典,牛津高级词典,电子词典,离线英汉,汉英词典的使用方法
  3. java识别答题卡纸_识别复杂的答题卡的主要算法
  4. 网马(原理)及制作全过程
  5. Flex在线拍照功能
  6. java 反编译 知识学习汇总 java网络爬取网页代码
  7. Tar的详细用法(转自Linux伊甸园)_拔剑-浆糊的传说_新浪博客
  8. 重复文件清理绿色工具——DoubleKiller
  9. debian系统离线安装iperf2
  10. 修复shapefile编码问题