卷积知识点

卷积知识点

参考文献找不到了,略

1.什么是卷积

图像滤波矩阵(滤波器、卷积核)做内积的操作就是卷积。单次卷积操作就是对应位置的两个元素相乘,之后所有乘积相加。像滑动窗口一样进行。

卷积其实在图像处理领域被广泛的应用,像滤波边缘检测图片锐化等,都是通过不同的卷积核来实现的。

在卷积神经网络中,通过卷积操作,可以提取图片中的特征低层的卷积层可以提取到图片的一些边缘、线条、角等特征,高层的卷积能够从低层的卷积层中学到更复杂的特征,从而利用提取到的特征,可以进行分类、目标检测等任务。高层的复杂特征具体是代表啥,谁也不知道。

2.卷积的特点

最主要的特点就是局部感知权值共享

局部感知:卷积的大小是远远小于图像的,只需要感知图像中的较小局部信息,然后在更高层次进行信息组合就可以得到全局信息,减少了计算量。图像的空间联系是局部的像素联系比较密切,而距离较远的像素相关性较弱。(这个联系其实挺重要的,你在低层的卷积中,如果去感受距离很远的像素,鬼知道感知了个啥,在底层还是老老实实感知边缘特征这些吧)。因此,每个神经元没必要对全局图像进行感知,只要对局部进行感知,然后在更高层将局部的信息综合起来得到全局信息。
权值共享:使用同一模板(相同的卷积核、参数)按滑动窗口的方式去提取特征,参数可以共享。这个可以带来平移不变性,而且一个卷积核可以只干一件事,只提取某一个特征。
头重脚轻:越靠近输入层,参数数量越少,越靠近输出层,参数数量越多,呈现出一个倒三角的形态,这就很好地避免了BP神经网络中反向传播的时候梯度损失得太快。(避免梯度损失,可能是由于,1个参数产生多个输出,就可以获得这些输出的梯度,如果一对一这样前向传播的话,梯度衰减更容易)

3.卷积和全连接的区别

区别:输入输出不同,卷积输入输出都是NCHW格式,全连接输入输出都是NV结构;全连接网络两层之间的神经元是两两相连,卷积是部分相连;

全连接不适合做CV:1)参数量过多扩展性差;2)网络局限,梯度传播很难超过3层;3)没有利用像素之间的位置关系
卷积适合做CV:局部连接、权值共享以及池化,减少参数、利用像素之间的关系。

4.卷积的计算

h o u t / w o u t = ⌊ h i n / w i n + 2 p − f s ⌋ + 1 h_{out}/w_{out} = \left \lfloor \frac{h_{in}/w_{in}+2p-f}{s} \right \rfloor+1 hout/wout=shin/win+2pf+1
参数量:
n u m = f ∗ f ∗ c i n ∗ c o u t num=f*f*c_{in}*c_{out} num=ffcincout

5.感受野

感受野1
感受野2
是输出特征图上的像素点对于原图的映射区域的大小,特征图上的一个点相对于原图的大小。代表该像素点是由其感受野范围内的所有像素点得到的。

注意:

  • 实际上的有效感受野远远小于理论感受野,因为越中心的像素,被计算的次数更多,占的权重越大
  • anchor应该根据感受野来设置

计算
首先需要知道当前的步长
stride:网络中的每一层都有一个stride,该stride是之前所有层的stride的乘积
s t r i d e i = s t r i d e 1 ∗ s t r i d e 2 ∗ … ∗ s t r i d e ( i − 1 ) stride_i=stride_1*stride_2*…*stride_(i-1) stridei=stride1stride2stride(i1)
注意:当前的步长,是之前所有层的步长的乘积,不包含当前层,只有计算下一层的时候,才使用当前层的步长

感受野公式:
r f i + 1 = r f i + ( f i + 1 − 1 ) ∗ s t r i d e i ∗ d i l a t i o n i + 1 rf_{i+1}=rf_i+(f_{i+1}-1)*stride_i*dilation_{i+1} rfi+1=rfi+(fi+11)strideidilationi+1
其中 rf_i 为第 i 层感受野,f_(i+1) 为第 i+1 层卷积核 size ,dilation_(i+1) 为第 i+1 层空洞率
最开始的输入层:i=0,rf_0=1,即第一层卷积之后的特征图感受野的大小等于卷积核的 size

计算注意:

  • 第一层卷积层的输出特征图像素的感受野的大小等于滤波器的大小
  • 深层卷积层的感受野大小和它之前所有层的滤波器大小和步长有关系
  • 计算感受野大小时,忽略了图像边缘的影响,即不考虑padding的大小

我们知道,神经元感受野的值越大表示其能接触到的原始图像范围就越大,也意味着它可能蕴含更为全局,语义层次更高的特征;相反,值越小则表示其所包含的特征越趋向局部和细节。因此感受野的值可以用来大致判断每一层的抽象层次。

6.反卷积(转置卷积)

反卷积

上采样就是扩大图片的size,有:双线性插值(bilinear),反卷积(Transposed Convolution),反池化。即反卷积属于上采样。

反卷积是一种特殊的正向卷积,先按照一定的比例通过补 [公式] (padding)来扩大输入图像的尺寸,接着旋转卷积核,再进行正向卷积。反卷积的参数不需要反向传播,行列转置之前卷积核的参数进行了。

正向卷积:Y=CX
反卷积:X=C^T Y
但是,如果你代入数字计算会发现,反卷积的操作只是恢复了矩阵 X 的尺寸大小,并不能恢复 X 的每个元素值。反卷积操作并不能还原出卷积之前的图片,只能还原出卷积之前图片的尺寸。

如果反卷积的步长为1,则padding补的是边缘;若步长为2,则padding进行插值补,参考上面链接的图。在进行反卷积的时候设置的stride并不是指反卷积在进行卷积时候卷积核的移动步长,而是被卷积矩阵填充的padding。
注意的是,反卷积不是卷积的逆运算

反卷积有哪些用途?
实现上采样;近似重构输入图像,卷积层可视化

7.空洞卷积

空洞卷积1
空洞卷积2
需要一种骚操作可以在增加感受野的同时保持特征图的尺寸不变,从而代替下采样和上采样操作,在这种需求下,空洞卷积就诞生了。还可以代替池化。
多了一个扩张率,即卷积核的格子不是相连接的,卷积核有空格的卷积。
卷积核不连续,会遗漏信息;处理大物体更好(上面说的)

空洞卷积可以增大感受野,但是可以不改变图像输出特征图的尺寸,即卷积之后size的计算不受空洞率影响

缺点:

  • 由于空洞卷积的计算方式类似于棋盘格式,某一层得到的卷积结果,来自上一层的独立的集合,没有相互依赖,因此该层的卷积结果之间没有相关性,即局部信息丢失。
  • 远距离获取的信息没有相关性:由于空洞卷积稀疏的采样输入信号,使得远距离卷积得到的信息之间没有相关性

解决方案:设计不规则的空洞来卷积,即某些卷积格子还是相连

8.空间可分离卷积

各种卷积
空间可分离卷积就是将 n x n 的卷积分成 n x 1 和 1 x n 两步计算。
设特征图为5 x 5,则 3 x 3 卷积进行的乘法操作为
( m − n + 1 ) 2 ∗ n 2 = 81 (m-n+1)^2 * n^2=81 (mn+1)2n2=81
空间可分离卷积为45+27=72

虽然空间可分离卷积可以节省计算成本,但一般情况下很少用到。主要原因之一是并非所有kennels都可以分为两个较小的kennels。如果用空间可分离卷积代替所有传统的卷积,在训练过程中,我们将限制卷积核的类型,训练结果可能不是最佳的

9.深度可分离卷积

Depthwise Convolution(逐深度卷积)与Pointwise Convolution(逐点1*1卷积)

逐深度卷积:将单个卷积核应用到单个通道并生成单个特征图

逐点 1 x 1 卷积:跟普通卷积一样,不过使用的是 1 x 1 的卷积,这样可以把深度卷积后的特征图的通道数增加

深度可分离卷积可大幅度减少卷积的参数。
因此对于规模较小的模型,如果将2D卷积替换为深度可分离卷积,其模型大小可能会显著降低,模型的能力可能会变得不太理想,因此得到的模型可能是次优的。但如果使用得当,深度可分离卷积能在不牺牲模型性能的前提下显著提高效率

优点:深度可分离卷积比普通卷积减少了所需要的参数。重要的是深度可分离卷积将以往普通卷积操作同时考虑通道和区域改变成,卷积先只考虑区域,然后再考虑通道。实现了通道和区域的分离。

10.分组卷积

设原通道为c_1,目标通道为c_2
将特征图在通道上拆分为 g 个 H x W x (c_1 / g),对每个 (c_1 / g) 都进行 (c_2 / g) 个 3 x 3 x (c_1 / g) 的标准卷积,之后再拼接起来。相当于参数少了 g 倍。

如果 g 等于输入通道数,就变成了Depthwise Convolution;如果 g 等于输入通道数,而且卷积 size 等于输入图片 size,就变成了全局加权池化,权重是可学习的。

11.可变形卷积

可变形卷积
实际是根据输入的图像,进行卷积来学一个偏移,学的是卷积核的偏移,然后进行正常卷积的时候,使用的偏移之后的像素

12. 1*1卷积

最初是在2014年GoogLeNet中首先应用
作用:
1)实现跨通道的交互和信息整合;
2)进行卷积核通道数(特征)的降维和升维;
3)可以实现与全连接层等价的效果
4)加入非线性(由于经过激活函数层)
5)通道融合
6)减少参数及计算量(MobileNet)

13. 3D卷积

3D卷积
实际就是多了一个维度,时间的维度,2D是<n, c, h, w>,3d是<n, c, t, h, w>
多的一个维度可以看成跟h或者w一样的计算方式

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值