卷积计算神经网络搭建过程包含_一文总结卷积神经网络相关计算

本文详述卷积神经网络(CNN)的核心组成部分,包括卷积层(valid, full, same卷积)、反卷积层、池化层、感受野的概念及计算方法,并探讨权重数量的计算。此外,提及了空间金字塔池化的应用,允许CNN处理不同尺度的图像,避免信息丢失。" 79735211,7297132,SpringBoot整合Mybatis实现登录功能,"['SpringBoot框架', 'Mybatis框架', 'Web开发', 'Java', 'Thymeleaf模板引擎']
摘要由CSDN通过智能技术生成

卷积神经网络是模式识别分类常用的网络结构之一,在大规模的图像识别等方面有着很大的优势。本文将总结卷积层、反卷积层、感受野、权重参数数量等卷积神经网络相关的原理和计算过程。

卷积层

valid卷积

valid卷积是最常用的下采样卷积,其特点是卷积核不能超出特征图的范围。如图,在卷积核为3×3且步长为1,且不会在周边增加扩充值的情况下,一个5×5的特征图经过卷积后,变成了3×3的尺寸大小。其计算过程如下: 8de0cc59b284909a61ae59f671e46af3.gif 54fba81ed7c50acbbe35449bbff5a3be.png

full卷积

full卷积式典型的上采样卷积,其特点式卷积核可以超出特征图的范围,但是卷积核的边缘要与特征图的边缘有交点。这种卷积将如图的2×2的特征图,在经过尺寸为3×3、步长为1的卷积核卷积后,变成了4×4的特征图。其输出特征维度的计算仍然满足式(1)。

75ee8bd0249a3fe8b522047fe5f0733b.gif

same卷积

same卷积是介于full卷积和valid卷积之间的一种卷积方式,其特点是卷积前后特征图的尺寸不变。由于same卷积的特点,其Padding值是固定设置的,计算式可通过式(1)推导出来。

e30ae5de4b5369337b4961d4bbb88f4c.png其中,n是输入或输出特征图的尺寸。 a4222c209942bdd9f45bbcb17980d3fd.gif

我们可以下面这个例子表述其卷积计算方式:

93d0b50065f0fea02c7d5faf5ef6374f.png cbd7930d454afcdfe5f5cf79dca41ca6.png

反卷积层

反卷积是一种常用的上采样方法。反卷积可以将图像恢复到卷积之前的尺寸,输出尺寸的计算式为:

6ee51fda24f4bc6566b446384b3313d0.png

在反卷积的计算中,其操作会先对输入进行填充,再进行正常的卷积操作。假设我们有这样的一个输入特征图

111
111
111

和3×3的卷积核

1

1

1

1

1

1

1

1

1

如果我们设定 S kernel=1,Padding = “SAME”,那么,在其输入特征图每个点周围不需要填充0,只需在周边补0,例如: 27f1988732925dbb9e1cd50108a98c90.gif看起来跟上采样的full卷积差不多,但实际意义不同。当  S kernel=2,Padding=”SAME”时,首先时在每个输入的元素之间填充0,个数为:  S kernel–1,填充结果如下。
10101
00000
10101
00000
10101
如果设置输出的尺寸为5×5,那么使计算的输出尺寸与设置的输出尺寸相同,那么输出为:
12121
24242
12121
24242
12121
计算演示过程如下 3f0c8ad149c7bcd4e9086c13bd9165f8.gif 如果输出尺寸为6×6,使计算的输出尺寸比设置的输出尺寸小且宽和高各相差1,那么还需要对输入的右列和下行填充0,如图。 2b5023f12cf60d835fa115e46ccfb72a.gif

池化层

池化通常有:最大池化、平均池化、重叠池化、空间金字塔池化。

最大池化顾名思义就是,每次从中取最大值作为输出结果。以滤波器大小为2×2以及步长为2为例,如下图所示。 b8fd8df5d5d168d9f11ccec261039df3.png平均池化是将几个数计算平均数后作为输出结果,如图。 b32668c29d95c412f5bfc95c3a3627d1.png

而重叠池化,则是上述两种池化时,池化尺寸大于步长的情况,滤波器的移动有重叠,故得名。当上述两种池化步长为1时,输出尺寸为3×3而不是2×2。

空间金字塔池化可以把任何尺度的图像的卷积特征转化成相同维度,这不仅可以让CNN处理任意尺度的图像,还能避免cropping和warping操作,导致一些信息的丢失,具有非常重要的意义。

一般的CNN都需要输入图像的大小是固定的,这是因为全连接层的输入需要固定输入维度,但在卷积操作是没有对图像尺度有限制,所有作者提出了空间金字塔池化,先让图像进行卷积操作,然后转化成维度相同的特征输入到全连接层,这个可以把CNN扩展到任意大小的图像。

7b327c09acf2716ca3aebfcf185b3d49.png

感受野

感受野是某一层输出结果中,一个元素(点)所对应的输入层的区域。感受野的计算式为:

eaf9cf81afa6164e99635734df9a4a31.png

其中, rin表示输入特征图的感受野大小,k表示卷积核的大小, jin表示两个连续的特征之间的距离,有

2765fd80701424eaee8e982cb6ba6c9c.png

可以看到感受野的计算是一个递推的关系。

8f5663f6f7ab7e64d33693d6e3a747a6.png 以该图为例,各层的kernel size、padding、stride超参数已在图中标出,右侧图为feature map和感受野中心对齐后的结果。第二层对应的第一层上的感受野大小为  r out =1+(3−1)×1=3,同样,第三层对应第一层上的感受野大小为  r out =3+(3−1)×2=7 。

权重数量计算

卷积层权重数量的计算与该层的卷积核尺寸、是否加偏置项bias、卷积核个数,以及输入层的特征深度有关。

4740756b6a539f6487af292cb3e10da5.png

其中, depthin是输入层特征深度, kh是卷积核尺寸的第一维, kw是卷积核尺寸第二维, bias为是否使用偏置项,使用时为1,否则为0, kernel为该层卷积核个数,也就是输出特征图的深度。

比如,输入层的特征图维度是(224,  224, 3),第一层卷积的配置为:卷积核尺寸为3×3,使用bias项,卷积核个数为32,那么,该层的权重数量=3×(3×3+1)×32=960。而卷积神经网络的总参数量只需要使用该方法计算所有卷积层权重数量,以及其他层权重数量之后加和即可得到。
往期精彩

ASRT开放免费测试版公共API

马赛克数据增强原理和实现流程

AI柠檬网站上线站内搜索引擎,支持语音搜索

YOLOv4论文详细解读

ASRT上线测试Demo啦

·END·

AI柠檬博客

分享AI技术文章

关注前沿科技

QQ交流群:  867888133

b7cb59d6ebfe947d27a6d551b9e9dff3.png

微信号:ailemon_me

博客网址:https://blog.ailemon.me

点击下方“ ”即可阅读博客原文,并参与评论和互动。

点在看,让柠檬菌知道你在看~

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值