摘要
Network in network(NIN)是由卷积层和池化层交替组成的深度卷积神经网络的一个有效实例和重要扩展。NIN不使用线性滤波器进行卷积,而是利用一个非线性函数浅层多层感知器(MLP)来代替线性滤波器。由于MLP和1x1卷积在空间域中的强大性,NIN具有更强的特征表示能力,从而获得更好的识别性能。但是,MLP本身由具有大量参数的全连接层组成。在这篇论文中,我们提出用稀疏的浅层MLP代替密集的浅层MLP。稀疏浅层MLP的一个或多个层在通道维度或通道空间域中是稀疏连接的。该方法通过应用跨通道维度上的非共享卷积以及在某些计算层中跨空间维度应用共享卷积实施的。该方法叫做卷积中的卷积(CiC).在CIFAR10数据集,增强型CIFAR10数据集和CIFAR100数据集上的实验结果都证明CiC方法是有效的。
索引词汇:CiC,卷积神经网络,图像识别,NiN
1.引言
深度卷积神经网络在图像识别和目标检测方面取得了很大的成就。卷积神经网络由交替的卷积和池化计算层组成。相比于其他的深度神经网络,CNNs的反向传播训练相对比较容易,这主要是由于每个卷积层都是稀疏连接的。在一个卷积层中使用线性滤波器进行卷积计算。CNNs的主要参数就是滤波器的参数。为了减少参数的数目,采用共享参数的策略。尽管参数共享降低了网络的容量,但是提高了网络的泛化能力。使用一个非线性操作:浅层多感知器(MLP)代替线性滤波器,可以增强计算层的计算能力。带有MLP的CNN叫做网络中的网络(NiN)。MLP具有足够的隐藏单元,可以表示任意复杂而光滑的函数,从而提高了提取特征的可分性,因此,与经典CNN相比,NIN能够给出较低的识别误差。
作为CNN中的一个滤波器,一个浅层的MLP在空间上对输入通道进行卷积计算。因为滤波器本身也是一个网络,所以把这样的CNN叫做NiN。但是在NiN中,MLP本身并不采用稀疏连接。相反,MLP是一个全连接网络。因此,MLP的许多参数都需要计算和储存。另外,MLP的紧密连接虽然可以使NiN在空间域上提取局部特征,但是却不能在通道域上提取局部特征。这限制了NiN的性能。为了突破这一局限,本文提出将全连接的MLP修改为局部连通的MLP。在本文中,“全连接”是指“密连接”。并且,“局部连接”和“稀疏连接”可以互换使用。这是由在MLP的每一层(或某些层)上利用内核(也就是过滤器)来实现。也就是说,内核的大小小于输入的大小。由于卷积运算是在卷积神经网络的嵌入式MLP中进行的,因此我们称之为卷积中的卷积(CiC)。综上所述,本文的贡献和所提出的CiC方法的优点如下所述:
1)提出了一个完全稀疏的(局部连接)浅层MLP和几种部分稀疏的浅层MLP(如MLP-010),并将其用作卷积滤波器。卷积滤波器本身是通过卷积线性滤波器获得的。
2)我们开发了一种CNN方法(称为CiC),使用完全稀疏的MLP或部分稀疏的MLP。在CiC中,共享卷积是在空间域中进行的,而非共享卷积是在通道上进行的。
3)CiC的基本版本(即CiC-1-D)在空间域中使用1×1的卷积,并沿通道维度应用一维滤波。然后,我们通过将1×1卷积替换为n×n卷积,将CiC-1-D变成了CiC-3-D。
4)提出的CiC方法在CIFAR10数据集、CIFAR100数据集及其扩充版本数据集上,在降低测试错误率方面明显优于NiN。
5)所提出的稀疏空间通道连接的思想是通用的,可以推广到其它深度CNN中,如VggNet。
本文的其余部分组织如下。在第二节中我们回顾了相关的工作。第三节介绍了所提出的方法,第四节给出了实验结果,然后根据实验结果在第五节进行了总结。
2.相关工作
在本节中,我们首先简要介绍CNN的基本组成。接下来,我们将回顾与我们的工作相关的CNN的一些方向。
一般来说,CNN主要由两种类型的交织层组成:卷积层和池化层,其形式可以是一个卷积层后面跟一个池化层,或几个卷积层后面跟一个池化层。卷积层的作用是特征表示,特征的语义水平随着层的深度而增加。每个卷积层由多个特征图(即通道)组成。每个特征图通过在输入通道上按照预先定义的步幅滑动(卷积)滤波器获得,随后是非线性激活操作。不同的特征映射对应于滤波器的不同参数,特征映射共享相同的参数。滤波器可以用反向传播算法学习。池化是一个过程,它用局部汇总统计信息替换其在特定位置的相应卷积层的输出。空间区域上的池化有助于将特征表示成为平移和旋转不变量,也有助于提高网络的计算效率。最后一个池化层之后的层通常是全连接层,其目的是分类。层数称为网络深度,每层的单元数称为网络宽度。每层中的特征图(通道)数量也可以表示CNN的宽度(宽度)。深度和宽度决定了CNN的容量。
一般来说,提高CNN性能有六个方向,其中一些方向是重叠的:1)增加深度;2)增加宽度;3)修改卷积运算;4)修改池化运算;5)减少参数数目;6)修改激活函数。我们的方法与NiN密切相关,NiN与前三个方向相关。
A.增加深度
深度神经网络较深的深度是深度神经网络与传统神经网络的主要区别之一。Lenet-5是有七个层的CNN,它有三个卷积层、两个池(子采样)层和两个全连接层。Alexnet 包含八个学习层(不计池化层或将一个卷积层和一个池化层作为一个整体),共有五个卷积层和三个全连接层。在VggNet中,深度高达19层。GoogLeNet包含22层。使用选通(?)单元(gating units)调节网络中的信息流,公路网(highway networks)为利用随机梯度下降有效地训练数百层提供了可能性。在Resnet中,152层的深度表现出了很好的性能。Zeiler和Fergus指出,网络的最小深度,而不是任何单个部分对模型的性能至关重要。通过加入微型网络,NiN也增加了深度。我们的方法和NiN的深度相同,这样可以比较NiN和我们的方法。
B.增加宽度
增加卷积层中的特征映射数产生丰富的特征,因此有望改善CNN。Zeiler和Fergus发现增加中间卷积层的尺寸可以提高性能。GoogLeNet不仅以其深度大和宽度也大而著名。在GoogLeNet中,一群不同尺寸的卷积滤波器构成一个起始模块。这样的起始模块大大增加了网络宽度。OverFeat网络利用了1000多个在第四和第五卷积层中的特征映射。值得注意的是大宽度意味着巨大的计算成本。没有增加宽度,我们的方法在测试错误率方面的性能优于NiN。
C.修改卷积运算
有几种方法可以修改卷积运算:更改滑动步长、更改过滤器大小和更改过滤器类型。研究发现,大幅度的卷积会导致混叠。因此,最好使用小跨步。此外,将第一层卷积层滤波器尺寸从11×11减小到7×7可以改进性能。在NggNet中,采用了3×3的卷积滤波器。不同于在每个空间位置学习一系列独立的权重,当我们在空间中移动时,可以学习一组过滤器。修改过滤器类型是开发有效的CNN的重要尝试。大多数方法采用了线性滤波器,而NiN采用了非线性滤波器:浅层MLP,显著增强了CNN的代表性。CSNet利用了用于卷积计算的级联子批滤波器。我们的方法在卷积意义上直接修改了NiN层。
3.提出的方法:CiC
在本节中,我们提出了一个改进的NiN,我们把它叫做CiC。CiC的一个特点是稀疏浅层MLP用于卷积层的卷积计算并且浅层MLP本身通过卷积获得。CiC相当于在一些计算层中,在通道维度应用非共享卷积(即稀疏连接),在空间维度应用共享卷积。相比之下,在传统的NiN中,是沿着通道维度采用紧密连接。在通道域采用稀疏连接而不是紧密连接的优点有三点:
1)通道域中的稀疏连接产生较少的参数,有助于提高计算效率和减少储存内存。
2)稀疏连接可以缓解在训练数据有限情况下的过拟合问题(大多数情况下,只有有限的培训数据可用)。
3)稀疏连接可以提取通道维度的局部特征,并且局部特征可以增强网络的泛化能力。但是,在所有层应用稀疏连接不是最好的选择,原因见第III-A节。
我们首先描述采用稀疏连接和浅层MLP的CiC的基本概念(即CiC-1-D),然后将其扩展到三维情况(即CiC-3-D)。
A.从致密的浅层MLP到稀疏的浅层MLP
在经典CNN中,线性滤波器用于计算卷积层。然而,有证据表明
复杂非线性滤波器,如浅层MLP比简单的线性滤波器表现更好。在NiN中,致密(即完全连接)MLP被用作过滤器(核)。在我们的方法中,我们提出将致密MLP[见图1(a)中的示例]修改为稀疏MLP[见图1(b)–(f)中的示例]。我们将稀疏MLP分为两类:全稀疏MLP和部分MLP。
该方法的思想如如图1所示。图1(a)是两个隐藏致密MLP层,在隐藏层1(第一个隐藏层),隐藏层2(第二个隐藏层)和输出层分别有48、24和8个自由参数(权重)。致密的MLP中总共有48+24+8=80个参数。图1(b)是两个全稀疏MLP层,它用一个带有三个权重(称为内部过滤器)的线性滤波器在每层进行卷积得到。这个具有参数共享机制的稀疏MLP在每层只有三个自由参数,共有3+3+3=9个参数。如果使用非共享卷积,则参数变为36。因此,稀疏MLP的参数比致密MLP参数少。少的参数能够减少内存消耗,增加统计数据效率,同时也减少了正向和反向传播的计算量。
除了全稀疏MLP,部分稀疏的MLP也可以使用。图1(c)~(f)显示了几种可能的部分稀疏MLP。为了区分不同的部分稀疏MLP,我们使用“1”表示一个层是部分连接的,使用“0”表示层是完全连接的。标签序列用于表示某种类型的部分稀疏MLP。例如,在图1(c)中,隐藏层1是紧密连接的(标记为“0”),隐藏层2是稀疏连接的(标记为“1”),输出层是紧密连接的(标记为“0”)。因此,我们使用“010”来表示部分稀疏MLP的类型。具体来说,图1(c)中的MLP称为MLP-010。同样,图1(b)中的MLP和(d)–(f)中的MLP称为MLP-111、MLP-011、MLP-100和MLP-110。为了简单明了,
“1”和“0”分别表示“稀疏”和“密集”。因此,MLP-010可以表示为MLP-紧密-稀疏-紧密。同样,MLP-111、MLP-100和MLP-110可以分别用MLP-稀疏-稀疏-稀疏(即完全稀疏MLP),MLP稀疏-紧密-紧密,MLP-稀疏-稀疏-紧密表示。
需要注意的是,完全稀疏的MLP(即MLP-111或MLP-稀疏-稀疏-稀疏)并不一定优于部分稀疏的MLP(例如,MLP-010或MLP-紧密-稀疏-紧密)。事实上,实验结果表明,MLP-紧密-稀疏-紧密优于MLP稀疏-稀疏-稀疏。原因如下所示:首先,输入的RGB彩色图像只有三个频道。输入层的通道数很小,以至于沿通道维度的卷积是不必要的,因为过滤器的大小是两或一与输入的通道(即三个)相当。因此,不能在输入层上应用稀疏连接紧密连接在输入层上是唯一的选择。稀疏连接只能应用于第二层。在这个层面上,MLP-密集-稀疏-密集优于MLP-稀疏-稀疏-稀疏。第二,紧密连接可以提取全局特征,局部连接善于提取局部特征。当局部区域内的相关性较大时,局部提取物具有识别性。众所周知,空间域中的相关性是显著的,因为大多数情况下,相邻元素(如像素)具有相似的外观。这种性质已广泛应用于计算机视觉的许多任务中(例如,使用马尔可夫随机场的相邻优先性)。与空间域的相关性比较,通道域的相关性较弱。不能保证通道域中的相邻元素具有相似性和高度相关性。因此,为了提取全局特征需要在通道域上进行紧密连接。然而,沿通道方向的某种程度的相关性可以通过稀疏连接强制生成。
但是,在所有层上应用稀疏连接会使网络在捕获全局特性方面很弱。因此,在通道域上宜采用密集连接和稀疏连接交织的方法来提取全局和局部特征。因此,部分稀疏MLP比完全稀疏的MLP更好。
我们的实验结果也表明在降低测试错误率方面,非共享卷积优于共享卷积降。因此,沿通道维度采用非共享卷积。非共享卷积意味着一组不同的权重用于稀疏连接。
总之,稀疏通道连接的有效性源于两个方面。首先,稀疏通道连接使得参数减少,因此不容易过拟合。其次,稀疏通道连接可以跨通道提取局部特征(即在通道域)。
B.具有稀疏和浅层MLP的CiC(用大滤波器跨通道进行一维过滤):CiC-1-D
如上所述,我们提出使用非共享卷积计算稀疏和浅层MLP。在我们
的CiC方法中,稀疏MLP被视为卷积过滤器并插入到CNN框架中。
图2(a)显示了MLP-010的CiC。假定所有输入的彩色图像的大小为W×H。如NiN一样,CiC也具有三个构建块(即块1、块2和
块3)。在块i中,MLP-010在空间域的输入尺寸为wi×hi在通道域的输入尺寸是L0i。块i中的一个MLP-010中,第一个隐藏层的神经元的数目,第二个隐藏层的神经元的数目和输出层的神经元的数目分别表示为N1i,N2i和N3i。
图2(a)明确显示了MLP-010在构建CiC中的作用,图2(b)和(c)显示了在卷积层中CiC的架构。图2(b)和(c)相当于图2(a)。值得注意的是,池层存在但未显示在图2(b)中。在图2(b)中,在大立方体(即实心立方体)内的小立方体(即虚线立方体)代表一个过滤器(内核)。内核是一个三阶张k∈Rx×y×z,其中x和y表示空间域(即x和y分别是水平轴和垂直轴上内核的长度),z表示通道域(即,z是通道轴中内核的长度)。在每个块中有三个内核,对应于MLP-010的输入层、第一个隐藏层和第二层。块1、块2和块3分别为(k0、k1、k2)、(k3、k4、k5)和(k6、k7、k8)[见图2(b)]。如果考虑核ki获得的输出层的数目的话,核可以表示为四阶张量Ki∈Rx×y×z×c[见图2(c)],其中前三个指数(即x、y和z)和ki具有相同的含义,最后一个索引c代表由内核ki获得的特征映射(通道)数。
现在我们讨论块1中的三个内核。
1)第一个内核k0(K0):在块1的输入层(也是第一个MLP010的输入),内核k0∈Rw1×h1×L01 (或相当于K0∈Rw1×h1×L01×N11)用于过滤。这个小数字w1和h1大于1(例如,w1=5,h1=5)。因为输入通常是彩色图像,所以通道编号 L01 等于三(即三个颜色通道)。因为通道的数量非常少,通道必须使用尺寸为w1×h1×3的内核k0进行紧密(全)连接。用N11表示K0输出的通道数目。
2)第二个内核k1(K1):第一个内核的输出是第二个内核k1(或K1)的输入,它的尺寸为1×1×L11(或1×1×L11xN21)
其中L11<N11。空间域中具有1×1核的卷积在降维中有重要作用。因为L11<N11(即通道维度上滤波器的长度L11小于输入通道的数量N11)。内核k1与N11以卷积(即,
稀疏)方式连接。在第IV-B节中,我们说明了如何在通道维度选择最佳内核长度。
N21是应用核K1∈R1×1×L11×N21后输出的通道的数量。通常在卷积应用中使用0填充。但是,本文中,沿通道方向没有进行填充。因此,应用核K1∈R1×1×L11×N21后输出的通道的数量N21完全取决于内核长度L11和输入通道N11。
具体的,我们有:
CiC的成功取决于以下两个因素,这两个因素与每个块中的第二个内核相关:1)卷积通道中不同通道的稀疏连接的卷积操作,2)由非共享卷积进行的稀疏连接。
3)第三核k2(K2):k2∈R1×1×L21(或K2∈R1×1×L21×N31也是空间域的一个1×1的滤波器。通道维度滤波器的长度L21等于输入通道的数量N21(即,L21= N21),意思是同一空间位置对应的通道完全连接。
块1的输出用作块2的输入。块2和块3的计算过程类似于块1。三阶和四阶张量的大小和约束见表1。
采用批量归一化(BN)对卷积层进行归一化。将非线性的校正线性单元(ReLU)用于神经元输出的建模。最大池化应用于ReLU的结果。而且,还进行了dropout。图2(c)显示了提出的CiC方法的主要步骤,其中“str”和“pad”分别代表卷积步幅和填充像素。
C.跨通道三维滤波的广义CiC——空间域:CiC-3-D
从第III-B节可以看出,每个块中的第二个内核(即:K1∈R1×1×L11×N21,K4∈R1×1×L12×N22和K7∈R1×1×L13×N23),都是提出的采用MLP-010的CiC的关键。这些内核在空间域执行1×1卷积,在通道维度执行一维卷积。因此,不同空间位置的卷积是独立实现的。在本节,我们通过将1×1卷积改为n×n卷积突破这种独立性,其中n>1。因此,在广义CiC(称为CiC-3-D)中,K1、K4和K7的尺寸分别从1x1xL11xN21,1x1xL12xN22,1x1xL13xN23变为nxnxL11xN21,nxnxL12xN22,nxnxL13xN23。图3显示了所提出的CiC-3-D的结构。一般来说,n=5能产生良好的性能。
4.实验结果
5.总结
在本文中,我们提出了一种CNN方法(称为CiC)其中稀疏浅层MLP用于卷积。提出了完全稀疏MLP和几种类型的部分稀疏MLP
(例如,MLP-010、MLP 011、MLP-100和MLP-110)。实验采用MLP-010。其主要思想是在非共享卷积方式对不同通道进行稀疏连接。CiC的基本版本是CiC-1-D及其泛化版本是CiC-3-D。在CiC-1-D中,采用一维滤波器连接每个块的第二层。然后通过在空间-通道域上使用3-D滤波器将CiC-1-D变为通用的CiC-3-D。
在实验中,采用了部分稀疏MLP,MLP-010。未来,可以运用其他类型的部分稀疏MLP。此外,提出的想法可以集成到其他最先进的CNN中,以便产生更好的结果。此外,将在目标检测中做实验。
(论文阅读)Convolution in Convolution for Network in Network
最新推荐文章于 2024-08-05 08:00:00 发布