深度学习的数学-卷积神经网络的误差反向传播

排版可能更好一点的永久原文链接:深度学习的数学-卷积神经网络的误差反向传播

前言

本篇博客主要记录反向传播法在卷积神经网络中的应用,如何像全连接的隐藏层那样,通过输出层的神经单元误差反向推算出所有层的神经单元误差,最终得到梯度。

正文

博主在看完卷积神经网络的正向运作流程后,其实是有一点懵圈的,于是我冷静了一天再继续看卷积神经网络的反向传递;正向运作流程中的 『池化』、『特征映射』应该怎么样用式子表示?经过了池化(最大/平均/L2)的神经单元输入,又怎样体现在神经单元误差的计算上?可以带着这些问题继续往下看。

卷积神经网络中的关系式

在进行推算之前,首先确定好每个层神经单元之间的关系式
在这里插入图片描述

卷积层

卷积层中每个神经单元的输入可以理解为过滤器的加权输出,卷积层神经单元的输出套上激活函数就可以了。
所以关系式是下面这个样子的:

池化层

池化层的输入等于输出,如果是最大池化,则使用Max求一定范围内的极值就可以了(当前例子是将 4 * 4 的卷积最大池化为 2 * 2 的池化层)

输出层

而输出层和池化层的神经单元是全连接的,所以就是熟悉的 权重 * 池化输出求和 公式
在这里插入图片描述

平方误差(损失函数)

平方误差依旧由 正解 - 输出神经单元的输出,做平方和

梯度下降法

梯度下降如果有些忘了的话,链接在此:深度学习的数学-梯度下降
梯度就可以看作是代价函数的导数整体下降速度最快的分量,每个变量只需要顺着梯度做减法,即可以最快速度达到整体极值点的位置

各个神经单元的的权重、偏置都是变量,为方便理解书中也把每个变量代表的含义标了一下,如下图所示:
在这里插入图片描述

卷积层和输出层的神经单元误差(重点)

在全连接隐藏层反向递推的过程中,有一个神经单元误差的概念,忘了的可以看一下之前记录的博客:深度学习的数学-神经单元误差和反向传播

简单来说就是损失函数对神经单元的综合输入求偏导数,这个偏导数衡量这个神经单元与理想状态(理想是达到0)的差距

而卷积神经网络中,有卷积层和输出层两种类型的神经元,分别定义如下

PS:池化层输入等于输出是没有额外变量的,过滤器的偏置和权重都体现在了卷积层的综合输入 z 上

这两个神经单元误差影响整体平方误差画一个图就像下面这样:
在这里插入图片描述

输出层的神经单元误差计算

在看神经单元误差对权重偏置的影响之前,先看一下怎么计算输出层的神经单元误差,其定义如下:

由平方误差的定义式可以知道 C 对 a n o a_n^o ano 的偏导数

PS:乘 1/2 就是为了不让偏导数前面带常数 2

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值