反向传播算法
BP算法(即反向传播算法)是在有导师指导下,适合于多层神经元网络的一种学习算法,它建立在梯度下降法的基础上。BP网络的输入输出关系实质上是一种映射关系:一个n输入m输出的BP神经网络所完成的功能是从n维欧氏空间向m维欧氏空间中一有限域的连续映射,这一映射具有高度非线性。它的信息处理能力来源于简单非线性函数的多次复合,因此具有很强的函数复现能力。这是BP算法得以应用的基础。
中文名:反向传播算法
外文名:Backpropagationalgorithm
简称:BP算法
本质:监督学习算法
别名:Delta法则
应用:前馈神经网络
1、简介
反向传播(英语:Backpropagation,缩写为BP),有时缩写为“BP”,是机器学习历史上最重要的算法之一。尽管该算法成为机器学习的主流算法是在20世纪80年代,但该算法第一次被提出是在1969年。这是一种与最优化方法(如梯度下降法)结合使用的,用来训练人工神经网络的常见方法。该方法计算对网络中所有权重计算损失函数的梯度。这个梯度会反馈给最优化方法,用来更新权值以最小化损失函数。
反向传播要求有对每个输入值想得到的已知输出,来计算损失函数梯度。因此,它通常被认为是一种监督式学习方法,虽然它也用在一些无监督网络(如自动编码器)中。它是多层前馈网络的Delta规则的推广,可以用链式法则对每层迭代计算梯度。反向传播要求人工神经元(或“节点”)的激励函数可微。简而言之,这意味着创作者可以通过在犯错时纠正错误来训练他们的网络。完成后,道具会修改神经网络中的不同连接,确保下次遇到同样问题时能得到正确的答案。
2、学习算法
BP算法(即误差反向传播算法)是在有导师指导下,适合于多层神经元网络的一种学习算法,它建立在梯度下降法的基础上。BP网络的输入输出关系实质上是一种映射关系:一个输入m输出的BP神经网络所完成的功能是从维欧氏空间向m维欧氏空间中一有限域的连续映射,这一映射具有高度非线性。它的信息处理能力来源于简单非线性函数的多次复合,因此具有很强的函数复现能力。这是BP算法得以应用的基础。
反向传播算法主要由两个环节(激励传播、权重更新)反复循环迭代,直到网络的对输入的响应达到预定的目标范围为止。
BP算法的学习过程由正向传播过程和反向传播过程组成。在正向传播过程中,输入信息通过输入层经隐含层,逐层处理并传向输出层。如果在输出层得不到期望的输出值,则取输出与期望的误差的平方和作为目标函数,转入反向传播,逐层求出目标函数对各神经元权值的偏导数,构成目标函数对权值向量的梯量,作为修改权值的依据,网络的学习在权值修改过程中完成。误差达到所期望值时,网络学习结束。
3、传播环节
每次迭代中的传播环节包含两步:
(前向传播阶段)将训练输入送入网络以获得激励响应;
(反向传播阶段)将激励响应同训练输入对应的目标输出求差,从而获得隐层和输出层的响应误差。
4、权重更新
对于每个突触上的权重,按照以下步骤进行更新:
将输入激励和响应误差相乘,从而获得权重的梯度;
将这个梯度乘上一个比例并取反后加到权重上。
这个比例将会影响到训练过程的速度和效果,因此称为“训练因子”。梯度的方向指明了误差扩大的方向,因此在更新权重的时候需要对其取反,从而减小权重引起的误差。
5、产生和发展
感知器
1958年,心理学家Rosenblatt提出了最早的前馈层次网络摸型,并称为感知器(Perceptroa)。在这种模型中.输入图形,通过各辅入结点分配给下一层的各结点,这下一层就是斩谓中间层,中间层可以是一层也可以是多层,最后通过输出层结点得到输出图形。在这类前馈网络巾没有反馈连接,没有层内连接,也没有隔层的前馈连接,每一结点只能前馈连到其下一层的所有结点。然而,对于含有隐蔽层的多层感知器当时没有可行的训练办法,所以初期研究的感知器为一层感知器。1969年,Minskey和Papert对Rosenblatt提出的简单感知器盛行了详细的分析。他们引用的一个典型侧子是所谓XOR(exclusive—or)问题Minskey和Papert指出没有隐层的简单感知器在许多像XOR问题的情形下显得无能为力,并证明了简单感知器只能解决线性分类问题和一阶谓诃同题。对于非线性分类问题和高阶谓词问题,必须引用隐单元层。隐单元可以在某一权值下对输入模式进行再编码,使得在新编码中模式的相似性能支持任何需要的输入输出映射,而不再像简单感知器那样使映射难以实现。
BP算法
隐层的引入使网络具有很大的潜力。但正像Minskey和Papert当时所指出的.虽然对所有那些能用简单(无隐层)网结解决的问题有非常简单的学习规则,即简单感知器的收敛程序(主要归功于Widrow和HMf于1960年提出的Delta规刚),但当时并没有找到同样有技的含隐层的同培的学习规则。对此问题的研究有三个基本的结果。一种是使用简单无监督学习规则的竞争学习方法.但它缺乏外部信息.难以确定适台映射的隐层结构。第二条途径是假设一十内部(隐层)的表示方法,这在一些先约条件下是台理的。另一种方法是利用统计手段设计一个学习过程使之能有技地实现适当的内部表示法,Hinton等人(1984年)提出的Bolzmann机是这种方法的典型例子.它要求网络在两个不同的状态下达到平衡,并且只局限于对称网络。Barto和他的同事(1985年)提出了另一条利用统计手段的学习方法。但迄今为止最有教和最实用的方瑶是Rumelhart、Hinton和Williams(1986年)提出的一般Delta法则,即反向传播(BP)算法。Parter(1985年)也独立地得出过相似的算法,他称之为学习逻辑。此外,Lecun(1985年)也研究出大致相似的学习法则。
6、特性
实现映射能力
BP网络的学习过程是一种误差修正型学习算法,由正向传播和反向传播组成。在正向传播过程中,输入信号从输入层通过作用函数后.逐层向隐含层,输出层传播,每一层神经元状态只影响下一层神经元状态。如果在输出层得不到期望的输出,则转入反向传播,将链接信号沿原来的连接通路返回。通过修改各层神经元的连接权值.使得输出误差信号最小BP网络的连接结构和映射过程与多层Perceptmn相同,只是后者阶跃的单元激发函数被换作Sigmoid函数.Rumelhart等人在1985年重新发现用梯度法修改权重(generalizeddeltarule)的样本学习算法可以有效地运用在多层网络上,使得过去在Pereeptron模型中无能为力的XOR等学习问题获得解决。含有输入、输出和单层隐单元的三层BP网络富有的功能引起人们的注意。Lippmann(1987年)指出三层网络可以处理凸区域上模式识别问题。
Wielanfl和Lelghton(1987年)给出了一个例子,用三层网络将空间划分成凹的子空间。Huang和Lipmann(1987年)仿真演示了三层同络可以处理几种很复杂的摸式辩识问题,这些研究促进了三层网络的广泛应用。Funashi和Hecht—Nielsen(1989年)分别证明了随着隐单元的增加,三层同络所实现的映射可以一致逼近紧急上的连续函数或按L范数逼近紧集上平方可积的函数.揭示了三层网络丰富的实现映射能力。
记忆机制
Mitchison和Durbin(1989年)给出在一定条件下,三层同络学习容量的上、下限的估计。三层网络的转入和输出单元都由应用的问题所规定,只有隐单元的数且是可变的应行仁(1990年)详细分析三层神经网络的记忆机制,指出具有足够多隐单元的三层神经同络可以记忆任给的样本集。采用渐进函数(非常一般的函数.包括阶跃函数、Sigmoid函数等)作为隐单元激发匾数的三层神经同络。k-1个隐单元能够准确记忆k个实验值样本。采用阶跃激发函数时.k+1个隧机给定的实数值样本能够被k+1个隐单元的阿络记忆的概率为零。联想记忆在Signaoid激发函数的同络中结果也是如此。
容错性
BP网络除具有较强的对信息分布式记忆特点外,还具有一定的容错性和抗干扰性.孙德保、高超对三层BP同络的容错性和抗干扰性进行了研究,得出了三层BP网络的容错能力取决于输入层到隐含层的连接权值矩阵与隐含层到辖出层连接权值矩阵的乘积的结果。
BP网络可以较好地实现宽频带、小噪比、信号模式较少情况下的信号识别和信噪分离。
上一篇: Windows混合现实
下一篇: 技术奇点