目录
如果这篇文章对你有一点小小的帮助,请给个关注,点个赞喔~我会非常开心的~
花书+吴恩达深度学习(十二)卷积神经网络 CNN 之全连接层
花书+吴恩达深度学习(十三)卷积神经网络 CNN 之运算过程(前向传播、反向传播)
花书+吴恩达深度学习(十四)卷积神经网络 CNN 之经典案例(LetNet-5, AlexNet, VGG-16, ResNet, Inception Network)
0. 前言
本篇文章主要介绍卷积神经网络的运算过程。
整体卷积神经网络的运算趋势,是行和列逐渐减小,通道数逐渐增加。
1. 单层卷积网络
此处以单个样本为例子。
- 原始图像(上一层输出)作为 。
- 每一个过滤器的参数叠加在一起,组成这一层的权重 。
- 为每个过滤器加上偏差,组成偏差 ,在卷积之后的 2D 图像的每一个像素上加上偏差。
- 通过激活函数 ,激活函数同样针对 2D 图像的每一个像素。
- 则,每一个过滤器计算出来为 2D 图像,多个过滤器组合起来作为 3D 图像,下一层的输入。
2. 各参数维度
3. CNN 前向传播反向传播
对于每一个 3D 图像,可以看成是,行(长),列(宽),通道(高)。
定义一个 4 维张量 (也就是每一层的权重 ), 表示位于,输出通道 (这层第 个过滤器,输出的第 个通道),输入通道 (每个过滤器的第 个通道), 行, 列的值。
定义一个 3 维张量 (也就是输入数据 ), 表示位于,通道 (上层的第 个过滤器,输入的第 个通道), 行, 列的值。
定义一个 3 维张量 (也就是输出的 3D 数据), 表示位于,通道 (这层的第 个过滤器,输出的第 个通道), 行, 列的值。
则前向传播的卷积运算表示为:
在反向传播中,对 的求梯度为:
使用梯度下降,对权重 求梯度为:
如果不是神经网络的第一层,则需要对输入 求梯度:
如果这篇文章对你有一点小小的帮助,请给个关注,点个赞喔~我会非常开心的~