讲清楚了反卷积
Posted 刘二毛
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了讲清楚了反卷积相关的知识,希望对你有一定的参考价值。
搞明白了卷积网络中所谓deconv到底是个什么东西后,不写下来怕又忘记,根据参考资料,加上我自己的理解,记录在这篇博客里。
先来规范表达
- 为了方便理解,本文出现的举例情况都是2D矩阵卷积,卷积输入和核形状都为正方形,x和y轴方向的padding相同,stride也相同。
- 记号:
i,o,k,p,s 分别表示:卷积/反卷积的输入大小 input size ,卷积/反卷积输出大小 output size ,卷积/反卷积核大小 kernel size , padding , stride 。 - 举例(如下左图):
输入 X∈ℝ(4,4) 矩阵,卷积核 w∈ℝ(3,3),padding=0,stride=1 的情况下,卷积的输出 Y∈ℝ(2,2) ,就记为 i=4,o=2,k=3,p=0,s=1 。
推翻错误的理解
第一次看到deconv这个词,以为deconv的结果就是卷积的逆,觉得神奇,不禁产生了“哦?转置的卷积就可以求逆了吗?”这样的想法,然后在matlab里面实验求证,我还记得当时以为反卷积能够求逆,考虑到图片进行常规卷积操作输出大小又不可能变大(same/valid),于是我还假设反卷积输出大小不变,用了same padding和原核的转置作为反卷积配置,结果发现根本不是那么一回事好吗。
其实DL中的deconv,是一种上采样过程,举个比方:输入
X∈ℝ(4,4)数据仓库数据湖流批一体,终于有大神讲清楚了!