导读
我们都习惯使用3*3的卷积核,这篇文章介绍了偶数卷积核其实表现更强 。
首先附上文章地址:
Convolution with even-sized kernels and symmetric padding【PDF】
摘要
紧凑型卷积神经网络主要通过深度卷积,扩展的通道和复杂的拓扑来提高效率,这反过来又加剧了训练过程。 此外,在这些模型中,3×3内核占主导地位,而偶数大小的内核(2×2、4×4)很少被采用。 在这项工作中,我们通过信息侵蚀假设来量化偶数大小的核卷积中发生的偏移问题,并通过在特征图的四个侧面(C2sp,C4sp)提出对称填充来消除它。 对称填充以很少的计算成本释放了偶数大小的内核的泛化能力,使其在图像分类和生成任务方面优于3×3内核。此外,C2sp获得了与新兴紧凑型模型相当的精度,而训练期间的内存和时间消耗却少得多。 对称填充和偶数卷积可以很好地实现到现有框架中,为体系结构设计提供有效的元素,尤其是在强调训练工作的在线和持续学习场合。
引言
深度卷积神经网络(CNN)在许多计算机视觉任务中都取得了重大成功,例如图像分类[37],语义分割[43],图像生成[8]和游戏[29]。 除了特定领域的应用程序之外,还设计了各种体系结构来提高CNN的性能[3,12,15],其中特征提取和表示功能主要通过包含越来越多的参数和操作的更深,更广泛的模型来增强 。 因此,内存开销和计算复杂性极大地阻碍了它们在嵌入式AI系统中的部署。 这激发了深度学习社区设计具有减少资源的紧凑型CNN,同时仍保持令人满意的性能。
紧凑型CNN大多从体系结构工程中获得泛化功能。 随着网络的深入,残差连接[12]和密集级联[15]缓解了降级问题。 特征图(FM)通过逐点卷积(C1)和瓶颈架构进行扩展[35,40]。 多分支拓扑[38],组卷积[42,47]和信道混洗操作[48]以网络碎片[26]为代价恢复了准确性。 最近,有一种趋势是具有<10M参数和<1G FLOPs的移动模型[14,24,26],其中深度卷积(DWConv)[4]起到了至关重要的作用,因为它使跨通道相关性和空间相关性解耦。 除了人类先验和手工设计之外,新兴的神经体系结构搜索(NAS)方法还通过强化学习[49],演化算法[32]等来优化结构。
尽管取得了进展,但基本的空间表示仍由3×3核卷积(C3)支配,对其他核尺寸的探索却停滞不前。 偶数大小的内核被认为是劣等的,很少被用作深度CNN模型的基本构建块[37,38]。 此外,大多数紧凑模型集中于推理工作(参数和FLOP),而培训工作(内存和速度)由于复杂的拓扑[24],扩展的通道[35],其他转换[而被忽略或什至变得更加棘手。 17,40,48]。 随着对在线学习和持续学习应用需求的增长,应当共同解决并进一步强调培训工作。 此外,数据增强的最新进展[6,46]已显示出更强大和普遍的优势。 简单的结构与增强的增强功能相结合,很容易使复杂的建筑工程学所产生的进步黯然失色,这激发了我们重新思考基本的卷积核及其背后的数学原理。
在这项工作中,我们探索了偶数大小的内核(2×2、4×4)的泛化能力。 这些内核的直接实现在分类和生成任务中都会遇到性能下降,尤其是在深度网络中。 我们通过信息侵蚀假设对现象进行量化:偶数大小的内核具有不对称的接收场(RF),它们在最终的FM中产生像素偏移。当堆叠多个卷积时,此位置偏移会累积,从而严重侵蚀空间信息。 为了解决这个问题,我们建议使用偶数大小的内核进行卷积并在特征图(C2sp,C4sp)的每一侧使用对称填充。
对称填充不仅消除了移位问题,而且扩展了偶数大小卷积核的感受野。 各种分类结果表明,C2sp是对C3的有效分解,可节省30%-50%的参数和FLOP。 而且,与紧凑的CNN块(例如DWConv,倒颈瓶颈[35]和ShiftNet [40])相比,C2sp在训练过程中具有超过20%的加速比和> 35%的内存节省,从而具有竞争优势。 在生成对抗网络(GAN)中[8],C2sp和C4sp都获得了改进的图像质量和稳定的收敛。 这项工作激发了一个新的视角,充满了建筑工程的可选单元,并提供了平衡而又有效的基本但有效的替代方案。
相关工作
我们的方法属于紧凑型CNN,它们设计新的体系结构,然后从头开始对其进行训练。文献中的大多数网络压缩方法都尝试从预先训练的参考网络中削减权重[9],或根据权重量化权重和激活[16]。 推理工作。最近的一些进展还可以在初始化阶段修剪网络[7]或在训练期间量化模型[41]。 压缩方法与紧凑型体系结构工程正交,可以共同实施以进一步减少内存消耗和计算复杂度。
偶数大小的卷积核
偶数大小的卷积核通常与步幅2一起应用以调整图像大小。 例如,[28]中的GAN模型在判别器和生成器中应用4×4卷积核的,并设置步长2应用于下采样和上采样图像,这可以避免棋盘效应[30]。但是,当涉及到深层和大规模GAN时,首选3×3内核[3,19,22]。 除了扩展外,很少有作品将均匀大小的内核作为其CNN模型的基本构建块。 在关系强化学习中[45],采用两个C2层来实现对以4个像素表示的对象的推理和计划。 2×2内核是在相对较浅的模型(约10层)中测试的[10],并且FM尺寸没有严格保留。
扩张卷积
扩张卷积[43]支持感受野的指数扩展而不会降低分辨率或覆盖范围,这特别适用于诸如语义分段之类的密集预测任务。 可变形卷积[5]通过附加2D偏移量和直接从目标数据集中学习偏移量来增加卷积核的空间采样位置。 因此,可变形内核在像素级别转移,并专注于几何变换。 ShiftNet [40]完全通过不包含参数或FLOP的移位内核来回避空间卷积。 但是,需要大通道扩展才能达到令人满意的性能。
对称填充
1.移位问题
我们从基本卷积核中的空间相关性开始。 直观地讲,用C2替换C3不仅可以减少11%的开销,而且还可以提高性能,这是受C5分解为两个C3的启发[37]。 但是,图3中的实验表明C2的分类准确度低于C3,并且随着网络的深入,饱和速度更快。 此外,即使将3×3卷积核视为4×4卷积核的子集(包含更多的参数和FLOP),将每个C3替换为C4也会损害准确性。 为了解决这个问题,图1中显示了经过良好训练的带有C2的ResNet-56 [12]模型的FM。C4和C3的FM分别具有与C2和C2sp类似的方式,为清楚起见,将其省略。 可以清楚地看到C2中的激活后(ReLU)值逐渐移到空间位置的左上角。 这些压缩和扭曲的功能不适用于以下分类,更不用说基于它的像素级任务了,例如检测和语义分割,其中所有注释将从图像的左上角开始偏移。
(中间省略公式内容的编写,具体参见论文)
发生在所有空间位置上的偏移等于卷积之前在FM的底部和右侧再填充一个零。 相反,Caffe [18]在左侧和顶部再加一个零。 PyTorch [31]默认仅支持对称填充,如果需要,用户需要手动定义填充策略。
2.信息侵蚀假设
根据以上所述,偶数大小的卷积核使零填充不对称于1个像素,并且平均(两个相反方向之间)导致生成的特征图偏移0.5个像素。 当堆叠多层偶数大小的卷积时,位置偏移会累积,最终会挤压并将要素扭曲到空间位置的某个角。 理想情况下,如果这种非对称填充以TensorFlow样式执行两次,并且之间存在卷积,则FM的像素到像素对应关系将是:
由于特征图的大小为h*w,并且通常会下采样以进行高级特征表示,因此边缘影响不可忽略,因为边缘的0填充会扭曲特征图的有效值,特别是在深层网络和尺寸小的特征图中。我们假设信息量等于特征图的平均L1范数,然后用0填充进行连续卷积以保持特征图大小将逐渐侵蚀信息:
信息侵蚀是递归发生的,并且公式化非常复杂,我们直接从包含各种内核大小的深层网络中获取特征图。 在图2中,将尺寸为32×32的10k图像馈送到未经训练的ResNet-56模型中,该模型中删除了身份连接和批处理规范化.Q在较大的内核尺寸和较小的FM中逐渐减小并更快地减小。 此外,偶数大小的内核(C2,C4)中的不对称填充可显着加快腐蚀速度,这与图1中训练有素的网络一致。比喻是,FM可以看作是在水中融化的长方体芯片,除了它可以 仅在其四个边缘进行热交换。 冰越小,融化过程越快。 对称填充均匀地分布了热梯度,从而减慢了交换速度。 不对称填充会在特定的角上产生较大的热梯度,从而加速该梯度。我们的假设也为文献中的一些实验观察提供了解释。 (1)退化问题发生在非常深的网络中[12]:尽管消失/爆炸的前向激活和后向梯度已通过初始化[11]和中间归一化[17]解决,但空间信息却受到腐蚀和模糊。 多卷积层后的边缘效应。 (2)据报道[3],在GAN中,将网络深度加倍会阻碍训练,并将内核大小增加到7或5会导致性能下降或改进。 这些表明GAN需要增加信息,并且对进行性侵蚀更敏感。
3.方法
由于对于等式3中的偶数内核,Rs不可避免地是不对称的,因此很难在单个FM中引入对称性。 取而代之的是,我们针对由多个inputFi和内核聚集的最终输出。为清楚起见,让R0为等式3中的偏移RF,它从左上方向选择最近的像素作为原点,然后我们明确引入偏移的集合R +:
包括所有四个方向:左上,右上,左下,右下.let π:I→R +是输入通道索引i∈I= {1,2,…, ci确定偏移的RF。 通过调整四个移位RF的比例,我们可以确保
当在单个卷积中混合四个移位的RF时,偶数大小的内核的RF会部分扩展,例如2×2→3×3、4×4→5×5。 如果ci是4的整数倍(通常满足),则通过按顺序分配RF可以在单个卷积层内严格遵守对称性
如上所述,偏移的RF等效于在FM的某个角处再填充一个零。 因此,可以通过分组填充策略很好地实现对称性,图2所示为C2sp的示例。总之,具有偶数大小的内核和对称填充的2D卷积包括三个步骤:(1)将输入FM均分为 四组。 (2)根据该组中定义的方向填充FM。 (3)计算卷积而没有任何填充。 我们还对其他处理移位问题的方法进行了消融研究,请参阅第5节。
实验
在本节中,对称填充的有效性在CIFAR10 / 100 [21]和ImageNet [33]分类任务以及CIFAR10,LSUN卧室[44]和CelebA-HQ [19]生成任务中得到了验证。 首先,我们直观地证明了移位问题已通过对称填充消除。 在图1的对称情况下,FM返回中心位置,显示出健康的幅值和合理的几何形状。 在图2中,就信息量Q而言,C2sp和C4sp的衰减率比C2和C4低得多。 此外,C2sp具有比C3大的Q,希望在以下评估中性能有所提高
1.探索各种卷积核的大小
为了探索各种卷积内核的泛化能力,选择没有瓶颈的ResNet系列[12]作为骨干。 我们将所有其他组件和训练超参数保持相同,仅将每个C3替换为C4,C2或C2sp。 这些网络在CIFAR10上的深度为6n + 2,n∈{3,6,…,24}。 参数精度曲线如图3所示。原始的偶数大小的4×4、2×2内核的性能较差,并且随着网络的加深,饱和度会更快。 与C3相比,C2sp仅使用60%-70%的参数以及线性相关的FLOP即可达到相似的精度。 我们还发现,对称填充只会稍微提高C4sp的准确性。 在这样的网络深度中,边缘效应可能会主导4×4内核的信息侵蚀,而不是移位问题,这与图2中的衰减曲线一致。
基于ResNets在CIFAR10上的结果,我们进一步评估了CIFAR100上的C2sp和C3。 这时,在6n + 4,n∈{3,6,…,18}中具有多个深度的DenseNet [15]级数是骨干,结果如图3所示。在相同深度下,C2sp的精度与C3as相当 网络越来越深。 训练损失表明C2sp比C3sp具有更好的泛化性和更少的过度拟合。 在类似精度的标准下,C2sp模型将在CIFAR评估中节省30%-50%的参数和FLOP。 因此,我们建议在分类任务中使用C2sp作为C3的更好替代品。
2.与紧凑型CNN块进行比较
为了便于对包含C1,DWConv或shiftkernel的紧凑CNN块进行C2sp的公平比较,我们使用ResNet作为主干,并调整宽度和深度以保持相同数量的参数和FLOP(开销)。 如果基本残差块没有输入通道,则两个C2sp层将消耗大约8n2的开销,由于没有通道扩展,因此扩展标记为1-1-1。 对于ShiftNet块[40],我们建议选择扩展速率为3和3×3的移位内核,其开销约为6n2。 因此,nis的价值略有增加。 而对于瓶颈瓶颈[35],建议的扩展速率6导致12n2 + O(6n)开销,因此块数减少了1/3。 对于深度可分离的卷积[4],开销约为2n2 + O(n),因此通道被加倍并形成为2-2-2展开。
结果总结在表1中。由于大多数模型都容易通过标准增强来过度拟合CIFAR100训练集,因此我们也使用混合[46]增强来训练模型,以使差异更加显着。 除了错误率,还报告了培训期间的内存消耗和速度。 与ShiftNets相比,C2sp的准确性更高,这表明完全通过移位操作避开空间卷积可能不是有效的解决方案。 与包含DWConv的模块相比,C2sp在56和110的网络中具有更少的通道和更简单的架构获得了竞争性结果,从而减少了内存消耗(> 35%)和加速(> 20%)的训练过程。在表2中,我们将C2sp与 NAS型号:NASNet [49],PNASNet [24]和AmoebaNet [32]。我们使用Wide-DenseNet [15]并调整宽度和深度(K = 48,L = 50)以具有大约3.3M的参数 。 与最先进的自动生成模型相比,C2sp的准确性损失不到0.2%,增强后的准确性达到了更高的准确性(+ 0.21%)。尽管NAS模型利用分散的运算符[26],例如池化, 分组卷积,DWConvto通过相似数量的参数提高准确性,规则结构的Wide-DenseNet具有更好的内存和运行时的计算效率。 在我们的复制品中,在TitanXP上针对NASNet-A和Wide-DesNet的训练速度分别约为200和400SPS
3.ImageNet分类
我们从广泛使用的ResNet-50和DenseNet-121架构开始。 由于它们都包含瓶颈和C1来缩小通道数量,因此C3仅消耗总开销的53%和32%。 将C3更改为C2sp分别导致参数和FLOP分别减少了25%和17%。 前3个分类的准确性如表3所示,C2sp在ResNet中的损失较小(0.2%),而在DenseNet中的损失较小(0.5%)。 毕竟,在DenseNet-121 C2sp中只有90万个用于空间卷积的参数。作为移动设置,我们进一步将ResNet-50的通道缩小到0.5倍。 在这个阶段,评估了一个C2模型(不对称)以及MobileNet-v2 [35]和ShuffleNet-v2 [26]的复制品。 对称填充可将ResNet-50 0.5×C2的错误率大大降低2.5%,这使ResNet成为紧凑型CNN的可比解决方案。 尽管MobileNet-v2模型达到了最佳精度,但它们使用倒转瓶颈(表1中的相同结构)来扩展过多的FM,这显着增加了内存消耗并减慢了训练过程(大约400SPS),而其他模型则可以轻松实现。 达到1000 SPS
4.图像生成
对称填充的功效在GAN的图像生成任务中得到了进一步验证。 在CIFAR10 32×32图像生成中,我们遵循[28]中描述的相同架构,其中生成器中的参数约为6M,鉴别器中的参数约为1.5M。 在LSUN卧室和CelebA-HQ 128×128图像生成中,采用ResNet19 [22],生成器中有五个残差块,鉴别器中有六个残差块,每个残差块包含约14M参数。 由于GAN的训练是两个神经网络之间的零和游戏,因此我们将所有判别器(C3)保持不变,以减轻它们的影响,并用C4,C2,C4sp或C2sp替换生成器中的每个C3。 此外,通道数在C4和C4sp中减少为0.75×,或在C2和C2sp中扩展为1.5×,以使参数数量大致相同。表4中显示了初始分数[34]和FID [13],用于定量评估 生成的图像以及来自最佳FID运行的示例在图4中可视化。对称填充对于C2生成器的收敛至关重要,并显着提高了C4生成器的质量。
此外,标准推导(±)确认对称填充可稳定GAN的训练。 在CIFAR10上,C2sp得分最高,而在LSUN卧室和CelebA-HQgeneration中,C4sp略好于C2sp。 信息侵蚀假说可以解释各种结果:在CIFAR10代中,网络深度相对于imageize32×32而言相对较深,则较小的内核将具有较小的衰减率和更多的通道。 鉴于网络深度在图像尺寸128×128方面相对较浅,边缘效应可以忽略不计,因此在高分辨率图像生成中,较大的RF比较宽的信道更重要。
5.实现细节
使用不同随机种子对表中报告的平均值或标准差或图中误差条报告的结果进行5次训练。 CIFAR分类的默认设置如下:我们训练了300个小批量大小为64个时期的模型,除了表2中的结果(如[49]所示)运行了600个时期。 除DenseNet测试外,我们使用从0.1开始的余弦学习速率衰减[25],逐段恒定衰减的性能更好。 除参数深度卷积外,权重衰减因子为1e-4。 应用标准增强[23],并且在混合增强中将α等于1。对于ImageNet分类,所有模型都针对100个小批量256个历元进行训练。学习率最初设置为0.1,并根据余弦衰减时间表进行退火。 我们遵循[36]中的数据扩充。 在ResNet-50和DenseNet-121模型中,重量衰减为1e-4,在其他紧凑模型中,重量衰减为4e-5。 一些结果比原始论文中报道的要差。 这可能是由于小批量大小,学习率衰减或总训练时期(例如[35]中的大约420个时期)的不一致。在GAN的生成任务中,我们遵循[22]中推荐的模型和超高压计。 Adam优化器的学习率为0.2,β1为0.5,β2为0.999 [20]。 最小批量大小为64,鉴别器与生成器更新的比率为5:1(ncritic = 5)。 表3和图4中的结果分别针对200k和500k鉴别符更新步骤进行了训练。 我们使用不具有梯度范数罚分的非饱和损失[8]。 频谱归一化[28]用于鉴别器,非归一化应用于发生器。
讨论
Ablation study
我们已经测试了处理移位问题的其他方法,并将它们分为两类:(1)用附加的非卷积层(例如插值,合并)代替非对称填充; (2)实现具有多个卷积层的对称性,例如在两个非填充卷积之前/之内在每一侧填充1个像素。 它们的实现仅限于某些体系结构,其准确性并不比对称填充好。 我们的主要考虑是提出一种基本而优雅的建筑元素,该元素可在单个层中实现对称,因此大多数现有的紧凑模型都可以整齐地转移到均匀大小的内核中,从而为紧凑的CNN和GAN社区提供了通用的好处。
Network fragmentation
通过以上评估,C2sp可以达到可比的准确性,而无需多少训练记忆和时间。 尽管分散在许多组中的零散算子[26]具有较少的参数和FLOP,但是随着组数的增加,操作强度[39]降低。 这会对具有强大并行计算功能的硬件的计算效率,能量和带宽产生负面影响。 在内存访问占主导地位的情况下,例如训练,减少FLOP的意义将较小。 我们得出的结论是,在强调培训工作时,仍然存在争议(1)通过分组策略和复杂拓扑来增加网络碎片; (2)通过DWConv,移位运算和C1分解空间和通道相关性。
Naive implementation
同时,大多数深度学习框架和硬件主要针对C3进行了优化,这在很大程度上限制了C4sp和C2sp的效率。 例如,在TensorFlow中针对C2sp,C2和C3的模型的高级python实现中,尽管参数和FLOPs的比率为4:4:9,但训练期间的速度(SPS)和内存消耗比率约为1:1.14: 分别为1.2和1:0.7:0.7。 显然,一旦深度学习社区采用了偶数大小的内核,就可以在以下计算库和软件工程中进一步优化速度和内存开销。
总结
在这项工作中,我们探索了偶数大小的卷积核(2×2、4×4)的泛化能力,并通过信息腐蚀假设量化了特征漂移问题。 然后,我们引入对称填充以在单个卷积层内优雅地实现对称。 在分类中,与CIFAR10 / 100上的C3相比,C2sp节省了30%-50%的参数和FLOP,并且将ImageNet上的C2的准确性提高了2.5%。 与现有的紧凑型卷积块相比,C2sp以更少的通道和更简单的架构实现了竞争性结果,从而减少了内存消耗(> 35%)并加快了训练过程(> 20%)。 在生成任务中,C2sp和C4sp都可以提高图像质量并稳定收敛。 具有对称填充的偶数大小的内核为体系结构设计提供了有希望的构建单元,强调了在线和持续学习场合的训练工作。
注:理解不对地方,欢迎您下方留言区不吝指正,谢谢~
来源:CSDN
作者:Mr.Ma-master
链接:https://blog.csdn.net/weixin_43876801/article/details/103696298