ExpandNets: Linear Over-parameterizationto Train Compact Convolutional Networks

本文提出了一种新的训练紧凑卷积神经网络的方法,通过线性扩展层实现过度参数化。这种方法不增加非线性,而是将单个线性层扩展为多个连续线性层,形成可收缩回原始网络的ExpandNet。实验显示,这种方法在图像分类、目标检测和语义分割等任务中优于从头训练和知识蒸馏。线性扩展减少了梯度混淆,提高网络泛化能力。
摘要由CSDN通过智能技术生成

代码:https://github.com/GUOShuxuan/expandnets

以及:dmarnerides/hdr-expandnet: Training and inference code for ExpandNet (github.com)

我们介绍了一种训练给定紧凑网络的方法。为此,我们利用过度参数化,这通常会提高神经网络优化和泛化。具体来说,我们建议将紧凑网络的每个线性层扩展为多个连续的线性层,而不增加任何非线性。因此,由此产生的扩展网络,或ExpandNet,可以在推理时通过代数收缩回紧凑网络。特别是,我们介绍了两种卷积展开策略,并展示了它们在图像分类、目标检测和语义分割等任务中的优势。实验证明,我们的方法优于从头开始训练紧凑网络和从教师那里提取知识。此外,我们的线性过参数化经验上减少了训练过程中的梯度混淆,提高了网络泛化能力。

1 Introduction

随着大规模数据集和先进计算资源的日益可用,卷积神经网络在各种任务中取得了巨大的成功,如图像分类[17,28]、目标检测[39,40,42]和语义分割[35,45]。在过去几年中,“越宽越深越好”已成为设计网络架构的经验法则[17、22、51、52]。然而,这一趋势提出了与内存和计算相关的挑战,特别是在受限环境中,如嵌入式平台。

众所周知,深度和广度网络的参数化程度都很高,因此,一个紧凑的网络,无论是浅网络还是薄网络,通常就足够了。不幸的是,众所周知,紧凑型网络很难从头开始训练。因此,设计培训特定紧凑型网络的策略引起了越来越多的关注,最流行的方法是将深层教师网络的知识转移到感兴趣的紧凑型网络中【19、18、20、37、44、54、60、61】。

在本文中,我们介绍了一种替代方法来训练紧凑型神经网络,以补充知识转移。为此,基于网络过参数化可以改善优化和泛化[1、2、5、26、41、49、62]的观察结果,我们建议通过加入额外的层来增加给定紧凑网络的参数数量。然而,我们主张引入连续的线性层,而不是用非线性来分离每两层。换句话说,我们将紧凑网络的每个线性层扩展为连续的多个线性层,其间没有任何非线性。由于连续的线性层相当于单个层[50],这样的扩展网络或ExpandNet可以通过代数收缩回到原始的紧凑网络,而不会丢失任何信息

虽然连续线性层的使用出现在文献中,但现有工作[5、6、25、29、50、63]大多局限于无任何非线性的完全连接网络,以及在相当不切实际的统计假设下对其行为的理论研究。特别是,这些研究旨了解深层网络的学习动态和损失情况。相比之下,在这里,我们专注于实用、非线性、紧凑的卷积神经网络,并演示了使用线性扩展作为引入过度参数化和促进训练的手段,以便给定的紧凑网络获得更好的性能.

具体来说,如图1所示,我们介绍了三种扩展紧凑网络的方法:(i)用核大小分别为1×1、k×k和1×1的三个卷积层替换k×k卷积;(ii)将k×k卷积替换为k>3的多个3×3卷积;以及(iii)用多个层替换完全连接的层。我们的实验表明,扩展卷积是获得更有效的紧凑网络的关键

 简而言之,我们的贡献是:(i)通过扩展线性层来训练给定的紧凑非线性卷积网络的新方法;(ii)用任意核扩展卷积层的策略;以及(iii)扩展卷积层的策略,其内核大小大于3。我们在几个任务上展示了我们的方法的优势,包括ImageNet上的图像分类、PASCAL VOC上的目标检测和城市景观上的图像分割,我们的ExpandNets在从头开始训练相应的紧凑网络和使用知识提取方面都表现出色。我们的经验表明,过度参数化是实现更好性能的关键因素。此外,我们还通过研究泛化、梯度混淆和丢失景观的实验,分析了线性过参数化在训练过程中的好处。

2 Related Work

非常深的卷积神经网络目前构成了许多任务的最新技术。然而,众所周知,这些网络过度参数化,将其缩小将有助于在资源受限的环境中使用,如嵌入式平台。因此,最近有很多研究致力于开发更紧凑的体系结构.

网络压缩是这一领域最流行的趋势之一。本质上,它旨在减少大型网络的规模,同时尽可能少地损失准确性,甚至根本不损失准确性。在这种情况下,现有的方法可以大致分为两类:(i)参数修剪和共享[7、9、14、16、31、32、38、55],其目的是去除信息量最小的参数,生成具有信息丢失的任意紧凑网络;(ii)低秩矩阵因式分解【10、24、30、34、47】,它使用分解技术来减少每层中参数矩阵/张量的大小。虽然压缩通常是作为后处理步骤执行的,但已经证明,在训练期间合并压缩可能是有益的[3、4、56、57]。在任何情况下,即使压缩减小了网络的大小,但它既不能为设计具有特定体系结构的网络提供灵活性,也不能通过过度参数化来提高紧凑型网络培训的性能。此外,它通常会产生比我们这里考虑的网络大得多的网络,例如,对于我们实验中使用的小型网络,具有O(1M)参数和O(10K)参数的压缩网络。在平行的研究中,有几项工作提出了减少网络参数数量的设计策略【21、36、43、48、53、58】。同样,虽然确实可以使用这些机制开发更紧凑的网络,但它们对网络架构施加了限制,因此不允许简单地训练给定的紧凑网络。此外,我们的实验表明,我们的方法是对这些工作的补充。例如,我们可以通过使用我们的扩展策略对MobileNet进行培训来改善其结果。

在这里,与上述文献相比,我们试图训练具有任意架构的给定紧凑网络。这也是知识转移方法所解决的任务【18–20、37、44、54、60、61】。为了实现这一点,现有的方法利用预先培训的非常深入的教师网络的可用性。在本文中,我们介绍了一种替代策略,以训练紧凑的网络,补充知识转移。受过度参数化有助于训练的理论启发[1、2、5、26、41、49、62],我们将给定紧凑网络中的每个线性层扩展为连续的多个线性层。我们的实验证明,训练这样的扩展网络,然后用代数收缩,比训练原始的紧凑网络产生更好的结果,从而从经验上证实了过度参数化的好处。我们的结果还表明,即使不使用教师网络,我们的方法也优于知识提炼。

请注意,在早期的神经网络时代【6】和最近的【5、15、25、29、50、63】中,都对线性过参数化神经网络进行了研究。然而,这些方法通常研究纯线性网络,重点是在这种线性区域中训练的收敛行为。例如,Gunasekar等人[15]证明,同一模型的不同参数化会显著影响训练行为;Arora等人[5]表明,线性过参数化以一种独特的方式修改梯度更新,从而加快收敛速度;Wu等人【59】通过移除图卷积网络MLP层的非线性,将多个FC层折叠为一个FC层。与这些侧重于完全连接层的方法相比,我们开发了两种扩展卷积层的策略,并实证证明了我们的扩展策略对预测精度、训练行为和泛化能力的影响。

Ding等人[11]的并行工作ACNet也主张扩展卷积层。然而,我们引入的两种策略不同于它们对一维非对称卷积的使用,我们的实验表明,我们的方法优于它们。更重要的是,这项工作进一步证明了线性膨胀的好处。

3 ExpandNets

现在让我们介绍一下通过线性扩展层来训练紧凑网络的方法。下面,我们重点讨论扩展卷积层的两种策略,然后简要讨论完全连接层的情况

3.1 Expanding Convolutional Layers

我们建议通过将卷积层替换为一系列卷积层来线性扩展卷积层。为了解释这一点,我们将依赖一个事实,即卷积运算可以用矩阵形式表示。具体地说,假设Xb×m×w×h是卷积层的输入张量,批量大小为b,输入通道数为m,高度h和宽度w,Fn×m×k×k是卷积滤波器的张量编码,输出通道数为n,核大小为k。忽略偏差,可通过合并值为1到X的附加通道来考虑偏差,卷积可表示为

 通过这种矩阵表示,可以通过将矩阵W F替换为任意数量矩阵的乘积来线性扩展层。然而,使用任意矩阵将忽略卷积结构,从而改变层执行的原始操作。幸运的是,将几个卷积矩阵相乘仍然可以得到有效的卷积,这可以通过观察图2中矩阵内的模式来证实。然而,我们不能简单地将一个核大小为k×k的卷积层扩展为一系列核大小为任意的卷积层,因为一般来说,产生的感受野大小会与原始的不同。为了克服这一问题,我们提出了下面讨论的两种扩展策略。

Expanding general convolutions

对于我们的第一种策略,我们注意到1×1卷积保留了卷积层的计算优势,同时不改变感受野的大小。如图1所示,我们因此建议将k×k卷积层扩展为3个连续的卷积层:1×1卷积;a k×k 1;还有一个1×1。重要的是,这使我们不仅可以增加层的数量,还可以通过设置p,q>n,m来增加通道的数量。为此,我们依赖于扩展率的概念。具体而言,对于具有m个输入通道和n个输出通道的原始层,给定扩展率r,我们定义第一个1×1层的输出通道数为p=rm,中间k×k层的输出通道数为q=rn。请注意,其他策略也是可能的,例如p=rim,但我们的策略具有防止参数数量爆炸的优势。

一旦这样一个扩展的卷积层经过训练,就可以通过考虑等式1的矩阵形式,通过代数将其收缩回原来的卷积层。也就是说,给定中间层的滤波张量F1 p×m×1×1、F2 q×p×k×k和F3 n×q×1×1,原始层的矩阵表示可以恢复为

对卷积张量进行编码。在测试时,我们可以使用原始的紧凑网络。因为它适用于任何大小的k,所以我们将此策略称为扩展卷积层

 Expanding k × k convolutions with  k > 3

虽然3×3内核在非常深层的体系结构中很受欢迎[17],但在紧凑的网络中,通常会利用较大的内核大小,以提高其表达能力和感受域。如图1所示,k>3的k×k核可以用一系列l 3×3卷积等价表示,其中l=(k− 1)\/2. 注意,在CNN中,k通常是奇数。然后我们有

 与之前一样,中间层中的通道数可以大于原始k×k层中的通道数,从而允许我们对模型进行线性过参数化。对于扩展速率r,我们将第一个3×3层的输出通道数设置为p1=rm,并将后续层的输出通道数设置为pi=rn。与之前相同的基于矩阵的策略可用于将扩展单元代数收缩回Fn×m×k×k。我们将此策略称为扩展卷积核。

3.2 Expanding Convolutions in Practice

Padding and strides:在现代卷积网络中,填充和跨距被广泛用于保留输入特征映射中的信息,同时控制输出特征映射的大小。为了用padding p扩展卷积层,我们建议在扩展单元的第一层中使用padding p,而不填充其余层。此外,为了处理步幅s,在扩展卷积层时,我们将中间层的步幅设置为s,将其他层的步幅设置为1。在扩展卷积核时,我们对所有层使用步长1,但最后一层的步长设置为s。这两种策略保证生成的ExpandNet可以收缩回紧凑模型,而不会丢失任何信息

Depthwise convolutions:深度卷积通常用于设计紧凑的网络,如MobileNet【21】、MobileNetV2【48】和ShuffleNetV2【36】。为了处理它们,我们在每个组中使用我们的一般卷积扩展策略。具体地说,我们将输入信道复制r次,并在每组内使用交叉信道卷积。这使展开的层与原始层等效

3.3 Expanding Fully-connected Layers

由于完全连接层的权重可以自然地以矩阵形式表示,因此我们的方法直接扩展到这些层。也就是说,我们可以将一个具有m个输入维度和n个输出维度的完全连接层扩展为l个层,如下所述

 我们通常定义p1=rm和pi=rn,∀i \tiny \neq1。在实践中,考虑到完全连接层的计算复杂性,我们主张以较小的扩展速率将每个层扩展为仅两层或三层。请注意,此扩展与[5]中使用的扩展类似,我们在补充材料中有更多详细信息。然而,正如我们的实验所示,仅扩展完全连接的层(如[5])通常不会产生性能提升。相比之下,我们的两种卷积展开策略可以。

总之,我们的策略使我们能够将任意紧凑的网络扩展为同等的更深更广的网络,并且可以单独使用或一起使用。经过训练后,生成的ExpandNet可以以代数方式收缩回原始的紧凑架构,即不丢失信息。补充材料中提供了进一步的实施细节。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值