深度学习笔记——卷积层和池化层的一些“冷门”小知识点

本文详细介绍了卷积层的定义和计算过程,强调了权值共享和感受野的概念,以及卷积运算中通道匹配的重要性。通过实例展示了卷积层输出形状的计算,并指出实际操作中通常采用向下取整的方式处理非整数解。此外,文章还提及池化层的作用,指出其无参数学习和保持通道数不变的特性。
摘要由CSDN通过智能技术生成

一.卷积层的定义和计算

 1.卷积层的定义

 卷积层 = 感受野 + 权值共享

每一个感受野( receptive field) 内会有多个filter,而每个filter的参数设置都不一样(一般随机初始化后,由神经网络自主学习得到)。每个filter负责侦测该感受野内出现的某种特征(pattern),而同样的特征可能会在图像的其他位置重复出现,因而同一张图片的不同区域需要同样的一组filter来侦测,即权值共享(Parameter Sharing),以实现filter的高效复用及参数量的缩减。

2.卷积层的计算

 假设输入的图像是(3,6,6),即channel = 3, H x W = 6 x 6的彩色图片,我们用一组,共64个(3,3,3)的filter,即channel = 3,kernel size = 3 x 3 ,padding = 0的卷积核,来进行卷积操作的话,输出的特征图(feature map )的形状该由下面的公式进行确定。

out=\frac{Hi-Hk+2P}{S}+1

其中,Hi、Hk分别表示输入图像的高和卷积核的高(把高换成宽公式不变),S为步长(stride),P表示Padding(如果有)。根据上面的例子,代入公式计算如下:

Out_h=\frac{6-3}{2}+1=2.5

Out_w=\frac{6-3}{2}+1=2.5

这里故意取了除不尽的数,因为很多博客都只是举了能除尽的整数解的情况,而往往实际遇到的很多都不是整数,看了下pytorch的源码,其中关于这部分的处理采用的是向下(左)取整,即2.5→2,其它框架应该也类似。因为总共有64个不同的卷积核,所以经过卷积后的输出为(64,2,2)。

       另外,还有一点需要注意的是,想必大家都知道卷积运算实际上就是把卷积核和图像某一区域(感受野)做矩阵点积运算(elementwise product 对应元素相乘再相加),但你是否知道每个卷积核的通道数需要和输入图像的通道数相匹配。这里其实有个容易被忽略但又十分重要的点是,每个卷积核对于图像的某一区域的卷积运算是在该图像的深度方向上同时进行的,也就是说上面的例子中,三通道的彩色图像的某一区域和卷积核做卷积运算时,是三通道的图像信息同时和一个三通道卷积核做点积,然后再把三通道的卷积结果相加得到一个卷积核的运算结果,总共有64个卷积核,所以输出结果的通道数是64,即卷积层的输出结果的通道数只取决于卷积核的数量,与输入图像的通道数无关。

(注:同一个卷积核的三个通道上的参数设置往往也是不同的。)

 二.池化层

       关于池化层,大家都知道它是用来实现降维,缩减参数量的。但有一点大家可能会忽略的是,池化层和卷积层的一大不同之处在于池化层没有参数需要学习,并且池化层也不改变输入图像(卷积层得到的特征图也可以看成某种意义上的图像)的通道数,所以在定义通道数的时候是省略通道数,只有大小(kernel size)和步长(stride)的定义,所以在pytorch等框架的实现中也是直接将池化层作用在输入图像的每一个通道上从而得到相同通道数的输出。池化层的输出图像大小计算公式与卷积层相同。

 

 参考

(强推)李宏毅2021春机器学习课程_哔哩哔哩_bilibili

如何理解卷积神经网络中的通道(channel)_Medlen-CSDN博客_卷积神经网络通道

 

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

daimashiren

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

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

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

打赏作者

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

抵扣说明:

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

余额充值