上采样层什么意思_深度学习网络层之上采样(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 矩阵乘实现中对卷积核展开成了二维的矩阵, 大小如\(k^2\times n\),而转置卷积中需要的卷积矩阵的维度是\(n\times k^2\), 所以在形式上是转置的形式.

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

转置卷积的用途

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

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

参考:

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值