赞
踩
之前一篇博文中介绍了深度学习中的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×n
转置卷积也被称为小数步长卷积(Fractionally Strided Convolution),如果前向卷积中步长s>1
转置卷积的用途
CNN可视化:通过转置卷积将feature map还原到像素空间,以观察特定的feature map对哪些pattern的图片敏感。
上采样:在图像语义分割或生成对抗网络中需要像素级别的预测,需要较高的图像尺寸。
参考:
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。