误差反向传播(Error Back Propagation, BP)算法
  1、BP算法的基本思想是,学习过程由信号的正向传播与误差的反向传播两个过程组成。
  1)正向传播:输入样本->输入层->各隐层(处理)->输出层
  注1:若输出层实际输出与期望输出(教师信号)不符,则转入2)(误差反向传播过程)
  2)误差反向传播:输出误差(某种形式)->隐层(逐层)->输入层
  其主要目的是通过将输出误差反传,将误差分摊给各层所有单元,从而获得各层单元的误差信号,进而修正各单元的权值(其过程,是一个权值调整的过程)。
  注2:权值调整的过程,也就是网络的学习训练过程(学习也就是这么的由来,权值调整)。
  2、BP算法实现步骤(软件):
  1)初始化
  2)输入训练样本对,计算各层输出
  3)计算网络输出误差
  4)计算各层误差信号
  5)调整各层权值
  6)检查网络总误差是否达到精度要求
  满足,则训练结束;不满足,则返回步骤2)
  3、多层感知器(基于BP算法)的主要能力:
  1)非线性映射:足够多样本->学习训练
  能学习和存储大量输入-输出模式映射关系。只要能提供足够多的样本模式对供BP网络进行学习训练,它便能完成由n维输入空间到m维输出空间的非线性映射。
  2)泛化:输入新样本(训练是未有)->完成正确的输入、输出映射
  3)容错:个别样本误差不能左右对权矩阵的调整
  4、标准BP算法的缺陷:
  1)易形成局部极小(属贪婪算法,局部最优)而得不到全局最优;
  2)训练次数多使得学习效率低下,收敛速度慢(需做大量运算);
  3)隐节点的选取缺乏理论支持;
  4)训练时学习新样本有遗忘旧样本趋势。
  注3:改进算法—增加动量项、自适应调整学习速率(这个似乎不错)及引入陡度因子
  BP算法基本介绍
  含有隐层的多层前馈网络能大大提高神经网络的分类能力,但长期以来没有提出解决权值调整问题的游戏算法。1986年,Rumelhart和McCelland领导的科学家小组在《Parallel Distributed Processing》一书中,对具有非线性连续转移函数的多层前馈网络的误差反向传播(Error Back Proragation,简称BP)算法进行了详尽的分析,实现了Minsky关于多层网络的设想。由于多层前馈网络的训练经常采用误差反向传播算法,人们也常把将多层前馈网
络直接称为BP网络。
  BP算法的基本思想是,学习过程由信号的正向传播与误差的反向传播两个过程组成。正向传播时,输入样本从输入层传人,经各隐层逐层处理后,传向输出层。若输出层的实际输出与期望的输出(教师信号)不符,则转入误差的反向传播阶段。误差反传是将输出误差以某种形式通过隐层向输入层逐层反传,并将误差分摊给各层的所有单元,从而获得各层单元的误差信号,此误差信号即作为修正各单元权值的依据。这种信号正向传播与误差反向传播的各层权值调整过程,是周而复始地进行的。权值不断调整的过程,也就是网络的学习训练过程。此过程一直进行到网络输出的误差减少到可接受的程度,或进行到预先设定的学习次数为止。
  5,BP算法的网络结构示意图
 
 
BP算法 输入、输出层各3节点,隐层要多少节点合适?
悬赏分:0 - 解决时间:2010-5-2 15:16
对下面九种模式实现正确的分类:
第一类输入样本(3/4, 1/8), (1/4, 1/4), (3/4, 3/4),
对于第一类样本对应的期望输出为(1;-1;-1)
第二类输入样本(1/2, 1/8), (3/4, 1/4), (1/4, 3/4),
对于第一类样本对应的期望输出为(-1;1;-1)
第三类输入样本(1/4, 1/2), (1/2, 1/2), (3/4, 1/2),
对于第一类样本对应的期望输出为(-1;-1;1)
提问者: dingyong198608 - 一级
最佳答案
可以使用试凑法,采用公式m=sqrt(n+l)+a,其中m为隐层结点数,n为输入层结点数,l为输出层结点数,a为1-5之间的常数。
 2
编辑本段
摘 要
  BP神经网络算法是在BP神经网络现有算法的基础上提出的,是通过任意选定一组权值,将给定的目标输出直接作为线性方程的代数和来建立线性方程组,解得待求权,不存在传统方法的局部极小及收敛速度慢的问题,且更易理解。
编辑本段
关键词
固定权值gauss消元法;BP算法
  人工神经网络(artificial neural networks,ANN)系统是20世纪40年代后出现的,它是由众多的神经元可调的连接权值连接而成,具有大规模并行处理、分布式信息存储、良好的自组织自学习能力等特点,在信息处理、模式识别、智能控制及系统建模等领域得到越来越广泛的应用。尤其误差反向传播算法(Error Back-propagation Training,简称BP网络)可以逼近任意连续函数,具有很强的非线性映射能力,而且网络的中间层数、各层的处理单元数及网络的学习系数等参数可根据具体情况设定,灵活性很大,所以它在许多应用领域中起到重要作用。近年来,
为了解决BP神经网络收敛速度慢、不能保证收敛到全局最小点,网络的中间层及它的单元数选取无理论指导及网络学习和记忆的不稳定性等缺陷,提出了许多改进算法。
1 传统的BP算法简述
  BP算法是一种有监督式的学习算法,其主要思想是:输入学习样本,使用反向传播算法对网络的权值和偏差进行反复的调整训练,使输出的向量与期望向量尽可能地接近,当网络输出层的误差平方和小于指定的误差时训练完成,保存网络的权值和偏差。具体步骤如下:
  (1)初始化,随机给定各连接权[w],[v]及阀值θi,rt。
  (2)由给定的输入输出模式对计算隐层、输出层各单元输出
  bj=f(■wijai-θj) ct=f(■vjtbj-rt)
  式中:bj为隐层第j个神经元实际输出;ct为输出层第t个神经元的实际输出;wij为输入层至隐层的连接权;vjt为隐层至输出层的连接权。
  dtk=(ytk-ct)ct(1-ct) ejk=[■dtvjt] bj(1-bj)
  式中:dtk为输出层的校正误差;ejk为隐层的校正误差。
  (3)计算新的连接权及阀值,计算公式如下:
  vjt(n+1)=vjt(n)+?琢dtkbj wij(n+1)=wij(n)+?茁ejkaik
  rt(n+1)=rt(n)+?琢dtk θj(n+1)=θj(n)+?茁ejk
  式中:?琢,?茁为学习系数(0<?琢<1,0<?茁<1)。
  (4)选取下一个输入模式对返回第2步反复训练直到网络设输出误差达到要求结束训练。
  传统的BP算法,实质上是把一组样本输入/输出问题转化为一个非线性优化问题,并通过负梯度下降算法,利用迭代运算求解权值问题的一种学习方法,但其收敛速度慢且容易陷入局部极小,为此提出了一种新的算法,即高斯消元法。
2 改进的BP网络算法
  2.1 改进算法概述
正则化改进算法  此前有人提出:任意选定一组自由权,通过对传递函数建立线性方程组,解得待求权。本文在此基础上将给定的目标输出直接作为线性方程等式代数和来建立线性方程组,不再通过对传递函数求逆来计算神经元的净输出,简化了运算步骤。没有采用误差反馈原理,因此用此法训练出来的神经网络结果与传统算法是等效的。其基本思想是:由所给的输入、输出模式对通过作用于神经网络来建立线性方程组,运用高斯消元法解线性方程组来求得未知权值,而未采用传统BP网络的非线性函数误差反馈寻优的思想。
  2.2 改进算法的具体步骤
  对给定的样本模式对,随机选定一组自由权,作为输出层和隐含层之间固定权值,通过传递函数计算隐层的实际输出,再将输出层与隐层间的权值作为待求量,直接将目标输出作为等式的右边建立方程组来求解。
  现定义如下符号(见图1):x (p)输入层的输入矢量;y (p)输入层输入为x (p)时输出层的实际输出矢量;t (p)目标输出矢量;n,m,r分别为输入层、隐层和输出层神经元个数;W为隐层与输入层间的权矩阵;V为输出层与隐层间的权矩阵。具体步骤如下:
  (1)随机给定隐层和输入层间神经元的初始权值wij。
  (2)由给定的样本输入xi(p)计算出隐层的实际输出aj(p)。为方便起见将图1网络中的阀值写入连接权中去,令:隐层阀值θj=wnj,x(n)=-1,则:
  aj(p)=f(■wijxi(p)) (j=1,2…m-1)。
  (3)计算输出层与隐层间的权值vjr。以输出层的第r个神经元为对象,由给定的输出目标值tr(p)作为等式的多项式值建立方程,用线性方程组表示为:
  a0(1)v1r+a1(1)v2r+…+am(1)vmr=tr(1)a0(2)v1r+a1(2)v2r+…+am(2)vmr=tr(2) ……a0(p)v1r+a1(p)v2r+…+am(p)vmr=tr(p) 简写为: Av=T
  为了使该方程组有唯一解,方程矩阵A为非奇异矩阵,其秩等于其增广矩阵的秩,即:r(A)=r(A┊B),且方程的个数等于未知数的个数,故取m=p,此时方程组的唯一解为: Vr=[v0r,v2r,…vmr](r=0,1,2…m-1)
  (4)重复第三步就可以求出输出层m个神经元的权值,以求的输出层的权矩阵加上随机固定的隐层与输入层的权值就等于神经网络最后训练的权矩阵。
3 计算机运算实例
  现以神经网络最简单的XOR问题用VC编程运算进行比较(取神经网络结构为2-4-1型),传统算法和改进BP算法的误差(取动量因子α=0.001 5,步长η=1.653)

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。