反向传播算法

反向传播算法一. 概述多层网络的学习拟合能力比单层网络要强大很多。所以想要训练多层网络,前面的简单感知机学习方法显然有些不足,需要拟合能力更加强大的算法。反向传播算法(BackPropagation,BP)是其中的经典方法,它可以说是现今最成功的神经网络算法,现实当中使用到神经网络时,大多是使用

大家好,欢迎来到IT知识分享网。

一. 概述

多层网络的学习拟合能力比单层网络要强大很多。所以想要训练多层网络,前面的简单感知机学习方法显然有些不足,需要拟合能力更加强大的算法。反向传播算法( Back Propagation,BP)是其中的经典方法,它可以说是现今最成功的神经网络算法,现实当中使用到神经网络时,大多是使用BP算法训练的。BP算法不仅可以用于多层前馈神经网络,还可以用于其他类型神经网络,例如LSTM模型,通常所说的BP网络,一般是用BP算法训练的多层前馈网络。

二. BP算法

我们可以先通过BP网络的走向图大致掌握以下反向传播算法的主要用处,从输入层开始,数据进入到网络中经过每一层的计算变化,最终得出实际输出。然后和期望输出做比较计算损失值,此时的损失值将按照反方向逐渐向前传播计算,通过梯度下降的方式优化网络中的参数,求取出符合要求的网络模型。如图1中所示:

image.png

图1:BP网络结构图

接下来我们将通过公式计算逐步的展示BP网络的基本结构。最开始要假设我们有一个固定训练集合{(x1,y1),…,(xm,ym)},它的样本总数为m。这样我们就可以利用批量梯度下降法来求解参数,也属于有监督学习方法。具体到每个样本(x,y),其代价函数为下式:

image.png

对于给定有m个样本的数据集,我们可以定义整体的代价函数为:

image.png

上式中的第一项J(w,b)是均方差项。而第二项则是规则化项,是用来约束解以达到结构风险最小化( Structural risk minimization,SRM),目的是防止模型出现过拟合( over fitting)。

我们利用梯度下降法,每一次迭代都按照下面的公式对参数W和b进行更新:

image.png

其中α是学习速率。关键步骤在于计算偏导数。我们现在开始反向传播算法的介绍,它是计算偏导数的一种有效方法。

首先了解一下如何使用反向传播算法来计算image.pngimage.png,这两项是单个样例(x,y)的代价函数J(W,b;x,y)的偏导数。只有我们求出该偏导数,后面才可以推导出整体代价函数J(W,b)的偏导数:

image.png

以上两行公式稍有不同,第一行比第二行多出一项,因为权重衰减是作用于W而不是b。

BP算法的总体流程:首先对每个样本数据,进行前向传播计算,依次计算出每层每个单元的激活值。接着计算出第l层的每个节点i的“残差”值δ,该值直接体现了这个单元对最终的输出有多大的影响力。最后一层输出层则可以直接获得最终结果和输出结果的差值,我们定义为δ(,而对于中间的隐藏层的残差,我们则通过加权平均下层(l+1层)残差来计算。

BP算法的具体推导过程如下:

1)前馈网络传导的计算,逐层算出L2到最后一层的每层节点的激活值。

2)计算各节点的残差值,对于输出层,使用如下公式:

image.png

上式子中的推导过程如下:

image.png

3)从最后一层依次向前推导到第2层,第l层的残差为:

image.png

推导可得出:

image.png

image.png

依照上面只需将nl替换为l就可以推导到中间层l与l=1的残差关系。可以更新所需的偏导数:

image.png

最后得出BP算法的描述:

在下面的伪代码中,ΔW0是一个与矩阵W维度相同的矩阵,△b0是一个与b0维度相同的向量。注意这里“ΔW”是一个矩阵。下面,我们实现批量梯度下降法中的一次迭代:

1)对于所有l,令△W0:=0,Δb0:=0(设置为全零矩阵或全零向量)。

2)对于i=1到m,

a)使用反向传播算法计算image.pngimage.png

b)计算image.png

c)计算image.png

3)更新权重参数:

image.png

现在,我们可以重复梯度下降法的迭代步骤来减小代价函数J(w,b)的值,进而求解我们的神经网络。

三. 总结

整体来说BP网络就是一种具有自我更新参数能力,还具有一定的容错性和抗干扰性。反向传播算法的基本思想:学习过程由数据集信号的正向传播和误差的反向传播两个过程组成,数据集从输入层输入,经隐层处理以后,传向输出层。如果输出层的实际输出和期望输出不符合,就进入误差的反向传播阶段。反向传播阶段接收损失值逐步前向求偏导,进行梯度下降更新参数,最后使得输出的结果符合我们的要求,模型训练完成。

免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://yundeesoft.com/30967.html

(0)

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注微信