前言
这是卷积神经网络的学习路线的第四篇文章,这篇文章主要为大家介绍一下如何减少卷积层的计算量,使用宽卷积的好处以及转置卷积中的棋盘效应。
如何减少卷积层计算量?
从本系列的前面几篇文章看,减少卷积层的计算量主要有以下几种方法:
- 使用池化操作。在卷积层前使用池化操作降低特征图分辨率。
- 使用堆叠的小卷积核代替大卷积核。VGG16中使用个卷积代替一个卷积。
- 使用深度可分离卷积。将原始的的卷积核分成和两部分操作。
- 应用卷积。将卷积(假设通道数为)直接应用在某个卷积层(假设维度为)之前,当满足$C_2
使用宽卷积的好处?
所谓宽卷积就是指在卷积操作时填充方式为same
方式。而与之对应的窄卷积就是指在卷积操作时填充方式为valid
方式。same
方式的填充通常使用0填充的方式对卷积核不满足整除条件的输入特征图进行补全,使得卷积层的输出维度和输入维度一致。valid
方式的填充就是不进行任何填充,在输入特征边缘位置若不足以进行卷积操作,则对边缘信息进行舍弃,因此在步长为1的情况下该填充方式的卷积层输出特征维度可能会略小于输入特征的维度。我们可以发现宽卷积(same
填充方式卷积)的好处就是通过补0操作可以有效的保留原始输入特征图的边界特征信息。
转置卷积和棋盘效应?
当我们在用反卷积(转置卷积)做图像生成或者上采样的时候或许我们会观察到我们生成的图片会出现一些奇怪的棋盘图案或者说你感觉到你生成的图片有颗粒感。如下图所示(图的原始来源附