当前位置:   article > 正文

上采样层什么意思_深度学习网络层之上采样(Unpooling)

上采样层

之前一篇博文中介绍了深度学习中的pooling层,在本篇中主要介绍转置卷积这种上采样操作。转置卷积也是一种卷积。

L2 pooling

\[a^l={1\over k}\sqrt{\sum_{j=1}^k(a_j^{l-1})^2}

\]

pooling除了仅输出一个值, 也可以输出top k个(mix pooling).

CNN中的上采样

Unpooling:

近邻,以复制的方式.

"Bed of Nails":其他位置用0填充

"Max Unpooling" 在对称的max pooling中记录最大值的位置,在unpooling时将最大值位置设置为特征值,其他位置置0.

转置卷积:Transpose Convolution,参数可学习,而上述的上采样方式都是固定的函数,不可学习.

转置卷积

转置卷积计算过程是将输入的每个元素值作为卷积核的权重,相乘后作为该元素对应的上采样输出,不同输入的重叠的输出部分直接相加作为输出.示意图如下:

2-D转置卷积操作:在输入的相邻像素间填充stride-1个0,再在边缘填充kernel_size - 1 - crop个 zero-padding,再进行卷积运算。最后一步还要进行裁剪。

转置卷积运算示意图如下:

为什么叫转置卷积? 因为卷积的 im2col 矩阵乘实现中对卷积核展开成了二维的矩阵, 大小如k2×nk2×n,而转置卷积中需要的卷积矩阵的维度是n×k2n×k2, 所以在形式上是转置的形式.

转置卷积也被称为小数步长卷积(Fractionally Strided Convolution),如果前向卷积中步长s>1s>1,那么转置卷积中步长s<1s<1,但是小于1的步长不能够直接实现,可以从另外的方式实现:在输入特征单元之间插入 s−1 个0,此时步长 s′ 设置为1,不再是小数。o=i+2pks+1o=i+2pks+1,如果i+2pki+2pk是s的整数倍,那么转置卷积中: o=s(i1)+k2po=s(i1)+k2p, (k=k,s=1,p=kp1k=k,s=1,p=kp1).

转置卷积的用途

CNN可视化:通过转置卷积将feature map还原到像素空间,以观察特定的feature map对哪些pattern的图片敏感。

上采样:在图像语义分割或生成对抗网络中需要像素级别的预测,需要较高的图像尺寸。

参考:

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/盐析白兔/article/detail/75134
推荐阅读
相关标签
  

闽ICP备14008679号