提纲

  • 上下文
  • 卷积:空洞卷积
  • 池化:Adaptive Pool
  • 填充:paddings=[h_diff//2, h_diff - h_diff//2, w_diff//2, w_diff - w_diff//2]
  • 感受野、多尺度:不同层的特征图、不同尺度卷积核、空洞卷积
  • 上采样 / 特征图变大的三种方式:双线性插值、反卷积、反池化
  • 信息融合的方式:直接相加、concat + 1x1 卷积

PS :

  • a,b = 1 是将数值1同时赋值给a、b 两个变量
  • 网络安全:美团密码不能是身份证中连续数字

上下文

【小组汇报】20201027-卷积、池化、上采样

图1:上下文

上下文是什么?

  • 物体空间依赖:人脸是人体的一部分
  • 语义类别依赖:厨房中常见厨具(共现关系),厨房中不应该出现床(互斥关系)
  • 场景先验:在知道背景是操场的情况下,应该出现草地、足球,而不应该出现床或者厨具。

  通俗理解来说:一篇文章,给你摘录一小段,没前没后,你读不懂,是因为没有了语境,也就是没有了语言环境的存在,一段话说了什么,要通过上下文(文章的上下文)来推断(链接 )。
  而在深度学习中,上下文信息对当前像素位置的信息判断也是有帮助的,举个例子:有一个物体,你对它的预测是 汽车 或者是 且预测的可能性是相同的,这时候如果你知道它周围的像素都是属于 那一类,自然就应该将该物体分类为船,而不是汽车。在这里“ 它周围的像素都是属于 那一类 ” 就是上下文。

卷积(Convolution)

卷积

  • 卷:翻转 + 滑动
  • 积:加权求和

整体看来是这么个过程:
翻转——>滑动——>叠加——>滑动——>叠加——>滑动——>叠加…
【小组汇报】20201027-卷积、池化、上采样

图 x :卷积动图

此图出处:链接

为什么实际过程中没有对卷积核进行翻转操作?
  因为卷积核的参数是可学习的,将其翻转之后在学习和直接对不翻转的卷积核进行学习,学习到的卷积核结果是一样的(一样的体现:二者差的只是一个翻转,如果翻转后,二者会完全一样)。

卷积公式
【小组汇报】20201027-卷积、池化、上采样

空洞卷积(Dilated Convolution)

【小组汇报】20201027-卷积、池化、上采样

空洞卷积

【小组汇报】20201027-卷积、池化、上采样

图 x :空洞卷积图解

此图出处:[链接](https://aistudio.baidu.com/aistudio/education/preview/766199)
  • 空洞卷积,中间空出来的位置填0 ,卷积核只是看起来是变大了
  • 空洞卷积优点:增大感受野

空洞卷积公式
【小组汇报】20201027-卷积、池化、上采样

图 x :空洞卷积公式

此图出处:链接

  • 其中 D ,是空洞卷积中的参数,表示的是将原

参考文章:

  • 从不同角度理解卷积:知乎链接
  • 关于卷积的一些想了解的问题:CSDN链接
    • 卷积核一定越大越好?(不一定,因为卷积核越大,记录的信息越多,计算量越大,不利于模型深度的增加。)
    • 每层卷积只能用一种尺寸的卷积核?(Inception结构,一层卷积中使用了不同尺度的卷积模块。但参数量增加导致计算量增加了)
    • 怎样才能减少卷积层参数量?(1x1 卷积降维)
    • 能否让固定大小的卷积核看到更大范围的区域?(Dilated convolution,空洞卷积)
    • 未来一些趋势:
      • 卷积核方面:
        • 大卷积核用多个小卷积核代替;
        • 单一尺寸卷积核用多尺寸卷积核代替;
        • 固定形状卷积核趋于使用可变形卷积核;
        • 使用1×1卷积核(bottleneck结构)。
      • 卷积层通道方面:
        • 标准卷积用depthwise卷积代替;(depthwise卷积,对输入层的每个通道独立进行卷积运算)
        • 使用分组卷积;
        • 分组卷积前使用channel shuffle;
        • 通道加权计算。
      • 卷积层连接方面:
        • 使用skip connection,让模型更深;(残差块的连接方式,为了解决在训练的过程中梯度爆炸和梯度消失问题。)
        • densely connection,使每一层都融合上其它层的特征输出(DenseNet)
  • 如何理解空洞卷积:知乎链接,主要是有两个gif动图,形象的描述了正常卷积和空洞卷积。

填充:paddings=[h_diff//2, h_diff - h_diff//2, w_diff//2, w_diff - w_diff//2]


池化

  • 最大池化
  • 平均池化
  • Adaptive Pool:池化结果可以不满足 H=W

Adaptive Pool
【小组汇报】20201027-卷积、池化、上采样

  • 行列是分开计算的, i 就是指具体的第 i 行 或 第i列 。
  • 区别:
    • 正常的池化操作,Hin/Hout 在 H 和 W 维度,二者是相等的。
    • Adaptive Pool,Hin/Hout 在 H 和 W 维度,二者是可以不同的。

感受野

【小组汇报】20201027-卷积、池化、上采样

  感受野:在卷积神经网络中,感受野(Receptive Field)的定义是卷积神经网络每一层输出的特征图(feature map)上的像素点在输入图片上映射的区域大小。再通俗点的解释是,特征图上的一个点对应输入图上的区域

为什么需要多尺度?

  • 距离不同,在原图上所占区域不同:近大远小。
  • 个体差异:距离相同,人和猫在原图上所占区域不同。

【小组汇报】20201027-卷积、池化、上采样

不同层的特征图

【小组汇报】20201027-卷积、池化、上采样

不同尺度的卷积核

【小组汇报】20201027-卷积、池化、上采样

空洞卷积


上采样(特征图变大的三种方式)

参考链接:博客园链接
【小组汇报】20201027-卷积、池化、上采样

1. 双线性插值



【小组汇报】20201027-卷积、池化、上采样

双线性插值举例

【小组汇报】20201027-卷积、池化、上采样

2. 反池化


问:反池化时:填回去的时候怎么知道填在哪?

答:有一些框架在实现 UnPooling 时需要给一个 Indices 来记录原来哪些最大值所在的 block 中的位置信息。


【小组汇报】20201027-卷积、池化、上采样

3. 反卷积

【小组汇报】20201027-卷积、池化、上采样
反卷积计算过程


反卷积计算过程:

  • 第一步:将卷积核做一个翻转(水平翻转 + 垂直翻转 --> 最终是关于原来的一个中心翻转)。(PS:标准卷积过程是先对卷积核做180度的中心翻转,然后进行滑窗卷积过程)
  • 第二步:padding ,简单来说,填充实现的目标是:卷积核右下角元素与数据左上角元素能够重合。(填充 = (卷积核大小 - 1 )* 2 , 乘 2 原因是因为在上下左右两侧都需要进行填充)。
  • 第三步:执行正常的卷积过程,卷积结果就是上采样得出的结果。

矩阵角度理解反卷积

【小组汇报】20201027-卷积、池化、上采样

正常卷积过程 --> 矩阵展示

【小组汇报】20201027-卷积、池化、上采样

反卷积过程 --> 矩阵展示


信息融合的方式:

  • 直接相加:后面再接其他卷积核进行学习
  • concat + 1x1 卷积(降维,否则计算量太大) 【小组汇报】20201027-卷积、池化、上采样
    concat 举例

相关文章:

  • 2021-06-08
  • 2021-12-15
  • 2022-12-23
  • 2021-04-07
  • 2022-12-23
  • 2021-09-01
  • 2021-09-30
猜你喜欢
  • 2021-05-31
  • 2021-05-03
  • 2021-12-17
  • 2021-07-05
  • 2021-11-23
相关资源
相似解决方案