又是在地铁上,人到中年很无奈,每天貌似只有在地铁上的时间是属于我的…,有没有同道中人…
今天简单聊聊空洞卷积和转置卷积的区别:
- 空洞卷积,也有人译作扩张卷积,其实是一样的。
与普通的卷积相比,增加了一个扩张率(dilation rate)参数,主要用来表示扩张的大小。
扩张卷积与普通卷积的相同点在于,卷积核的大小是一样的,在神经网络中参数数量不变,区别在于扩张卷积具有更大的感受野。
- 什么是感受野?
其实本质上可以理解为:卷积核的边界宽度;
感受野公式:
![]()
对比:空洞卷积与转置卷积(吉米王) dilation : 扩张率
kernel : 卷积核大小
F:扩张卷积的感受野
百科找了张图:(扩张卷积其实本质上扩张的还是卷积核,而不是图像)
解释说明:a图中红点所在的绿色区域表示的是初始卷积核的位置和大小;
b图中为扩张率为2的时候,卷积核的变化情况,红点位置标示原卷积核数据,其余绿色区域用0填充;
c图中,为扩张率为4时,也就是4倍的扩张率,卷积核的变化情况,红点位置标示原卷积核数据,其余绿色区域用0填充;
- 转置卷积,在我们招聘讲师面试的过程中,也听别人叫过反卷积
- 反卷积是一种特殊的正向卷积
- 通俗的讲,就是在原图像上输入补0+卷积。先按照一定的比例通过补0来扩大输入图像的尺寸,再进行正向卷积即可。
关键点:转置卷积,改变的是原图像大大小,而空洞卷积改变的是卷积核的感受野的大小(卷积核);这块还需要大家好好分析一下;
卷积输出公式:(比较常见的一个公式)
备注:还有一种特殊情况记不太清了,等有时间我查下资料补上。
参数说明:
n:特征图的宽或者高
k:卷积核的尺寸
p:padding的数值,一般指单侧填充几个单元
stride:顾名思义卷积核的步长
到百科上找了个图片:(相当于对原图像进行放大,空白处用0填充,实际上我们可以通过一定的参数设置,利用转置卷积实现上采样的等同效果)
经典应用场景:
- 转置卷积用来增大特征图的分辨率的。
- 或者叫上采样,意思是一样的,印象中以前在某些经典的算法底层就在使用
# 反卷积上采样
x = Conv2DTranspose(filters, kernel_size=(2,2), strides=(2,2),padding="same")(input_tensor)
- 常见的上采样的API还有UpSampling2D等
对比:空洞卷积与转置卷积(吉米王)
就这样吧,下地铁了…,本来还想写点什么,没时间了,又是半篇文章。生活纵有千万个不如意,我亦勇往直前…