反向传播算法_神经网络之反向传播算法

一、前馈神经网络

定义一个多层的前馈神经网络结构如下所示:

反向传播算法_神经网络之反向传播算法_第1张图片

其中定义:

反向传播算法_神经网络之反向传播算法_第2张图片

神经网络经过下面的公式进行信息前向传播:

61394f0305039505a21e009cca4e443e.png

前馈神经网络可以通过逐层的信息传递, 得到网络最后的输出

。整个网络可以看作一个复合函数Ø(x;W,b),将向量x作为第一层的输入
,将第L层的输出
作为整个函数的输出。

efe5055c8acfa3effa568aa79ce7ac29.png

W, b表示网络中所有层的连接权重和偏置。

二、误差反向传播

给定一个样本 (x, y),将其输入到神经网络模型中,得到网络输出为y^, 假设损失函数为L(y, y^), 要进行参数学习就要计算损失函数关于每个参数的导数。

对第l层中参数

计算偏导数,因为L(y, y^)对
的偏导数计算审计向量对矩阵的微分,十分繁琐,因此我们先计算L(y, y^)关于参数矩阵中每个元素的偏导数,及L(y, y^)对
的偏导数,根据链式法则:

反向传播算法_神经网络之反向传播算法_第3张图片

(1)计算偏导数

8d9e5e8c5f833b71e320d055f10b1b4f.png

反向传播算法_神经网络之反向传播算法_第4张图片

02aa83c722c70d4453ee239c5a151905.png

(2)计算

b2a681f43b515c094459fc48a476644e.png

反向传播算法_神经网络之反向传播算法_第5张图片

(3)计算

21ad7047e4a7f68fd9709d04e95d721e.png

偏导数

a546067e4aa1cdec8a1cb92c7aa9d45a.png

表示第l层神经元对最终损失的影响,也反映了最终损失对第l层神经元的敏感程度,因此一般称为第l层神经元的误差项,用

来表示。

反向传播算法_神经网络之反向传播算法_第6张图片

因此根据链式法则,第l层的误差项为:

反向传播算法_神经网络之反向传播算法_第7张图片

从公式可以看出,第l层的误差项可以通过第l+1层的误差项计算得到,这就是误差的反向传播(BP),反向传播的含义是:第l层的一个神经元的误差项是所有与该神经元相连的第l+1层的神经元的误差项的权重和,然后,再乘上该神经元激活函数的梯度。

计算出上面三个式子后可以得到:

反向传播算法_神经网络之反向传播算法_第8张图片

反向传播算法_神经网络之反向传播算法_第9张图片

三、卷积神经网络中的反向传播算法

卷积层和池化层中误差项的计算有所不同:

  • 池化层

当第l层为池化层时,因为池化层时下采样操作,第l+1层的每个神经元误差项

对应于第l层的相应特征映射的一个区域,l层的第p个特征映射(特征映射定义见后面)中的每个神经元都有一条边和l+1层的第p个特征映射中 的一个神经元相连。根据链式法则,第l层的一个特征映射的误差项
,只需要将l+1层对应特征映射的误差项
进行上采样操作(和第l层的大小一样),再和l层特征映射的激活值偏导数逐元素相乘,就得到了
.

反向传播算法_神经网络之反向传播算法_第10张图片

其中

为第l层使用的激活函数导数,up为上采样函数,与池化层中使用的下采样操作相反。如果下采样采用的最大池化,误差项
每个值会直接传递到上一层对应区域中的最大值所对应的神经元,该区域中其他神经元的误差项都为0.如果下采样时平均池化误差项
中每个值会被平均分配到上一层对应区域的所有神经元上。

特征映射的定义:

特征映射(Feature Map)为一幅图像(或其他特征映射)在经过卷积提取到的特征每个特征映射可以作为一类抽取的图像特征. 为了提高卷积网络的表示能力,可以在每一层使用多个不同的特征映射,以更好地表示图像的特征.在输入层,特征映射就是图像本身. 如果是灰度图像,就是有一个特征映射,输入层的深度D=1输入层的深度如果是彩色图像, 分别有 RGB 三个颜色通道的特征映射,输入层的深度D=3.

不失一般性,假设一个卷积层的结构如下:

(1)输入特征映射组:

为三维张量(Tensor),其中每个切片(Slice)矩阵
为一个输入特征映射,1 =< d <= D;

(2)输出特征映射组:

为三维张量,其中每个切片矩阵
为一个输出特征映射,1 =< p <= P;

(3)卷积核

为四维张量,其中每个切片矩阵,
为一个二维卷积核1 =< p <= P,1 =< d <= D。

反向传播算法_神经网络之反向传播算法_第11张图片

为了计算输出特征映射

, 用卷积核
分别对输入特征映射
进行卷积,然后将卷积核结果相加并加上一个标量偏置b得到卷积层的净输入
  • 卷积层

当l+1层为卷积层时,假设特征映射净输入

其中第p(1<=p<=P)个特征映射净输入

1a2b7d3e99435e3ed70b291f9ade43cd.png

其中

为第l+1层的卷积核以及偏置,第l+1层中共有PXD个卷积核和P个偏置。

第l层的第d个特征映射的误差项

的具体推到过程如下:

反向传播算法_神经网络之反向传播算法_第12张图片

其中

3a5cc227f59490aab9c400697bf6a9d8.png

为宽卷积。

总结:

1、反向传播的含义是:第l层的一个神经元的误差项是所有与该神经元相连的第l+1层的神经元的误差项的权重和,然后,再乘上该神经元激活函数的梯度。

2、池化层和卷积层的误差反向传播是不同的。

参考资料:

--《神经网络与深度学习》

你可能感兴趣的:(反向传播算法)