神经网络与深度学习期末复习(3)---卷积神经网络

本文详细解析了卷积神经网络的基本结构,包括卷积层的参数(如卷积核、步长、填充)、池化层的操作方法及其在反向传播中的处理。并通过LeNet5模型实例,逐层剖析了每一层的参数计算和功能。
摘要由CSDN通过智能技术生成

文章目录

  • 1. 基本结构
    • 1.1 卷积
    • 1.2 池化
  • 2. 反向传播
    • 2.1 卷积层反向传播
    • 2.2 池化层反向传播
  • 3. 基础公式
  • 4. 以LeNet5为案例分析
    • 4.1 架构图
    • 4.2 C1层
    • 4.3 S2层
    • 4.4 C3层
    • 4.5 S4层
    • 4.6 C5层
    • 4.7 F6层
    • 4.8 OUTPUT层:


1. 基本结构

 卷积神经网络基本组成:输入层、卷积层、池化层、全连接层、输出层。
 卷积神经网络结构:输入层、卷积层1、池化层1、卷积层2、池化层2、全连接层1、全连接层2、输出层。

1.1 卷积

 1. 卷积参数:
 (1) 卷积核大小(Kernel Size):卷积核大小定义了卷积的视野。 2 2 2 维中的常见选择是 3 × 3 3×3 3×3 像素矩阵。
 (2) 步长(Stride):步长定义遍历图像时卷积核的移动的步长。虽然它的默认值通常为 1 1 1,但我们可以使用值为 2 2 2 的步长来对类似于最大池化的图像进行下采样。
 (3) 填充(Padding):填充定义如何处理样本的边界。填充的目的是保持卷积操作的输出尺寸等于输入尺寸,因为如果卷积核大于 1 1 1,则不加填充会导致卷积操作的输出尺寸小于输入尺寸。
 (4) 输入和输出通道(Channels):卷积层通常需要一定数量的输入通道(I),并计算一定数量的输出通道(O)。
在这里插入图片描述

 2. 卷积就是用过滤器(f x f)从左到右、从上到下的扫描一个矩阵(n x n),填充为padding,步长s。有两种卷积操作,一种称为valid-conv,一种称为same-conv。若原图像大小为 n×n,过滤器大小为 f×f,那么需要填充的大小为 p=(f-1)/2。
 步长默认为1。卷积后的尺寸大小:(1) valid-conv:(n-f+1)×(n-f+1);(2) same-conv:((n+2p-f)+1)×((n+2p-f)+1)。 :完整公式为 ((n+2p-f)/s+1) x ((n+2p-f)/s+1)

 3. 卷积计算的一道例题:

在这里插入图片描述

1.2 池化

 1. 池化层是通过减小输入的大小降低输出值的数量。池化层一般在卷积层之后,也可以看成一个过滤器,实际上实现一个采样的功能,其主要思想是,着重提取具有某种倾向的特征,比如最大池化对应的是更显著的特征;平均池化对应的是更加平滑的特征。

 2. 池化核参数少,只有两个超参数,分别是 f f f 大小,以及 s s s 步长。一般很少使用填充。因此没有需要学习的参数,是卷积神经网络中的静态属性。不同的通道单独使用池化层,因此输入和输出是相同通道数。

在这里插入图片描述

 3. 池化一般通过简单的最大值、最小值或平均值操作完成。主要功能有以下几点:
 (1) 抑制噪声,降低信息冗余。
 (2) 提升模型的尺度不变性、旋转不变形。
 (3) 降低模型计算量。
 (4) 防止过拟合。

2. 反向传播

2.1 卷积层反向传播

 卷积层中反向传播的卷积核是由前向传播的卷积核经过180度旋转后得到(斜对角线对称)。
 下面的 δ δ δ 就理解成输出的梯度。

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

2.2 池化层反向传播

 1. 平均池化反向传播:将元素的梯度等分为多份上传到上一层。例如假设池化层是将 8×8 的矩阵进行缩放,输出的特征图是 4×4:

在这里插入图片描述

 2. 最大池化反向传播:将梯度直接上传给前一层的某一个像素,而其他像素记为0(这里在进行池化运算时就要记录最大值的原始位置)。

在这里插入图片描述

3. 基础公式

 这里就是有两个 3 3 3 通道的卷积核;或者理解成有 6 6 6 3 × 3 3×3 3×3
 从下图中可发现:偏置数量=输出通道数;卷积核种类=输出通道数。

在这里插入图片描述

4. 以LeNet5为案例分析

4.1 架构图

在这里插入图片描述

4.2 C1层

 输入图片大小: 32 ∗ 32 32*32 3232
 卷积窗大小: 5 ∗ 5 5*5 55
 卷积窗种类: 6 6 6
 输出特征图数量:6
 输出特征图大小: 28 ∗ 28 28*28 2828
 神经元数量: 4704 4704 4704 [ ( 28 ∗ 28 ) ∗ 6 ) ] [(28*28)*6)] [(2828)6)]
 连接数: 12304 12304 12304 [ ( 5 ∗ 5 + 1 ) ∗ 6 ] ∗ ( 28 ∗ 28 ) [(5*5+1)*6]*(28*28) [(55+1)6](2828)
 可训练参数: 156 156 156 ( 5 ∗ 5 ) ∗ ( 1 ∗ 6 ) + 6 (5*5)*(1*6)+6 (55)(16)+6

注解:
(1) ( 32 − 5 ) + 1 = 28 (32-5)+1=28 (325)+1=28
(2) 一个 28 ∗ 28 28*28 2828 的输出特征图,上面每一个结果的得到都经过一个神经元。即一个神经元对应一个输出,与像素点个数相同。
(3) 连接数按我们老师上课讲的,就先看一次卷积,加 1 1 1 是偏置,再乘上神经元数。
(4) 可训练参数套公式就可以。

4.3 S2层

 输入图片大小: ( 28 ∗ 28 ) ∗ 6 (28*28)*6 (2828)6
 卷积窗大小: 2 ∗ 2 2*2 22
 卷积窗种类: 6 6 6
 输出下采样图数量: 6 6 6
 输出下采样图大小: 14 ∗ 14 14*14 1414
 神经元数量: 1176 1176 1176 ( 14 ∗ 14 ) ∗ 6 (14*14)*6 (1414)6
 连接数: 5880 5880 5880 [ ( 2 ∗ 2 + 1 ) ∗ 6 ] ∗ ( 14 ∗ 14 ) [(2*2+1)*6]*(14*14) [(22+1)6](1414)
 可训练参数: 12 12 12 ( 6 ∗ 2 ) (6*2) (62)

在这里插入图片描述

注解:
(1) 步长为 2 2 2
(2) 一个池化对应两个参数。

4.4 C3层

 输入图片大小: ( 14 ∗ 14 ) ∗ 6 (14*14)*6 (1414)6
 卷积窗大小: 5 ∗ 5 5*5 55
 卷积窗种类: 16 16 16
 输出特征图数量: 16 16 16
 输出特征图大小: 10 ∗ 10 10*10 1010
 神经元数量: 1600 1600 1600 [ ( 10 ∗ 10 ) ∗ 16 ) ] [(10*10)*16)] [(1010)16)]
 连接数: 151600 151600 151600 [ 60 ∗ 25 + 16 ] ∗ ( 10 ∗ 10 ) [60*25+16]*(10*10) [6025+16](1010) (部分连接)
 可训练参数: 1516 1516 1516 60 ∗ 25 + 16 60*25+16 6025+16

在这里插入图片描述

注解:
(1) ( 14 − 10 ) + 1 = 5 (14-10)+1=5 (1410)+1=5
(2) 按照正常思维,卷积核的数量有 6 × 16 6×16 6×16 个,数量太大。这里早期设计改为了部分连接,有 60 60 60 个卷积核。
(3) 连接数的计算如下。每一个像素点的得到,都经过卷积,一个卷积核大小 5 × 5 5×5 5×5,共 60 60 60 个卷积核;一个图像中的一个像素点的得到需要 16 16 16 个偏置,有 16 16 16 10 × 10 10×10 10×10 图像,所以偏置数为 1 × 10 × 10 × 16 1×10×10×16 1×10×10×16:下面图片中的公式写错了,参考上面。
在这里插入图片描述

4.5 S4层

 输入图片大小: ( 10 ∗ 10 ) ∗ 16 (10*10)*16 (1010)16
 卷积窗大小: 2 ∗ 2 2*2 22
 卷积窗种类: 16 16 16
 输出下采样图数量: 16 16 16
 输出下采样图大小: 5 ∗ 5 5*5 55
 神经元数量: 400 400 400 ( 5 ∗ 5 ) ∗ 16 (5*5)*16 (55)16
 连接数: 2000 2000 2000 [ ( 2 ∗ 2 + 1 ) ∗ 16 ] ∗ ( 5 ∗ 5 ) [(2*2+1)*16]*(5*5) [(22+1)16](55)
 可训练参数: 32 32 32 ( 16 ∗ 2 ) (16*2) (162)

在这里插入图片描述

注解:步长为 2 2 2

4.6 C5层

 输入图片大小: ( 5 ∗ 5 ) ∗ 16 (5*5)*16 (55)16
 卷积窗大小: 5 ∗ 5 5*5 55
 卷积窗种类: 120 120 120
 输出特征图数量: 120 120 120
 输出特征图大小: 1 ∗ 1 1*1 11
 神经元数量: 120 120 120 120 ∗ ( 1 ∗ 1 ) 120*(1*1) 120(11)
 连接数: 48120 48120 48120 [ 5 ∗ 5 ∗ 120 ∗ 16 + 120 ] ∗ ( 1 ∗ 1 ) [5*5*120*16+120]*(1*1) [5512016+120](11)

在这里插入图片描述

注解:
(1) 120 120 120 个向量或点。
(2) 每个 1 × 1 1×1 1×1 的输出与前面的 16 16 16 个卷积核都有连接, 16 16 16 个卷积求和后加一个偏置。

4.7 F6层

 输入图片大小: ( 1 ∗ 1 ) ∗ 120 (1*1)*120 (11)120
 卷积窗大小: 1 ∗ 1 1*1 11
 卷积窗种类: 84 84 84
 输出特征图数量: 84 84 84
 输出特征图大小: 1 1 1
 神经元数量: 84 84 84
 连接数: 10164 10164 10164 [ 120 ∗ 84 ∗ 1 + 84 ] ∗ ( 1 ∗ 1 ) [120*84*1+84]*(1*1) [120841+84](11)
 可训练参数: 10164 10164 10164 120 ∗ 84 + 84 120*84+84 12084+84

在这里插入图片描述

4.8 OUTPUT层:

 输入向量: 84 84 84
 输出向量: 10 10 10

  • 22
    点赞
  • 35
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

冒冒菜菜

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值