《MobileNetV2 Inverted Residuals and Linear Bottlenecks》论文笔记

MobileNetV2: Inverted Residuals and Linear Bottlenecks

Abstract

略。

1. Introduction

神经网络已经彻底改变了机器智能的许多领域,使具有挑战性的图像识别任务拥有超过人类的准确率。然而,准确率的提高往往伴随着运算资源的增加:现代最前沿水平网络所需的运算资源远远超过大多数移动设备及嵌入式系统的能力。

本文介绍了一种新型的神经网络结构,专门适用于移动设备及资源受限的系统。本文提出的网络在显著减少所需运算操作及内存消耗的同时也保持了相当的准确率,这推动了移动设备计算机视觉模型的发展。

我们的主要贡献是提出了一种新型的层模块:残差反向瓶颈层。该模型首先将输入低维压缩表示扩展到高维,并使用轻量级深度卷积对其进行滤波。随后,利用线性卷积将特征投影回低维表示。

该模块可以在任何现代框架中有效的实现,而且在标准基准测试的多个性能上超越目前最前沿水平。此外,该卷积模块特别适用于移动设备网络设计,因为它可以显著减少推理期间所需的内存占用。

2. Related Work

略。

3. Preliminaries, discussion and intuition

3.1. Depthwise Separable Convolutions

深度可分离卷积是许多高效神经网络结构的关键组成部分,我们在目前的工作中也使用了它。其基本思想是用分解的形式来代替完全卷积算子,将卷积分解为两个独立的层。第一层被称为深度卷积层,它通过对每个输入通道应用同一个卷积滤波器来实现轻量级滤波。第二层是 1 × 1 1\times 1 1×1卷积层,也被称为逐点卷积层,负责通过计算输入通道的线性组合来构建新的特征。

标准卷积以维度为 h i × w i × d i h_i\times w_i\times d_i hi×wi×di L i L_i Li张量作为输入,通过卷积核 K ∈ R k × k × d i × d j K\in \mathcal{R}^{k\times k\times d_i\times d_j} KRk×k×di×dj运算,输出维度为 h i × w i × d j h_i\times w_i\times d_j hi×wi×dj L j L_j Lj张量。标准的卷积层需要消耗 h i ⋅ w i ⋅ d i ⋅ d j ⋅ k ⋅ k h_i\cdot w_i\cdot d_i\cdot d_j\cdot k\cdot k hiwididjkk的运算量。

深度可分离卷积是标准卷积的替代品。从经验上讲,它的工作性能与常规卷积相当,但所需的运算量仅需:

h i ⋅ w i ⋅ d i ( k 2 + d j ) (1) h_i\cdot w_i\cdot d_i(k^2+d_j)\tag{1} hiwidi(k2+dj)(1)
上述运算量是深度卷积与逐点卷积层运算量的总和。与传统层相比,深度可分离卷积可以有效地减少近 k 2 k^2 k2倍的运算量。MobileNetV2使用 3 × 3 3\times3 3×3深度可分离卷积,相较于标准卷积,其运算量减小了 8 8 8 9 9 9倍,但在准确率性能上仅稍有降低。

3.2. Linear Bottlenecks

考察一个由 n n n层结构 L i L_i Li组成的深度神经网络,每层的激活张量维度为 h i × w i × d i h_i\times w_i\times d_i hi×wi×di。在本节中,我们将讨论这些激活张量的基本性质,我们将张量视为具有 d i d_i di维的 h i × w i h_i\times w_i hi×wi像素容器。对于真实图像的输入集,经过层 L i L_i Li激活后会形成一个“感兴流行”。长期以来,人们一直认为神经网络中的感兴流形可以嵌入到低维子空间中。换而言之,当我们观察深度卷积层单个 d d d通道像素时,这些值中编码的信息实际上存在于某个流形中,而流形又可嵌入到低维子空间中。

乍一看,通过简单地降低层的维数从而降低操作空间的维数可以实现流行的低维子空间嵌入。MobileNetV1已经成功地利用了这一点,通过一个宽度乘数参数有效地在运算量和精度之间进行了权衡。根据这种直觉,调整宽度乘数可以降低激活空间的维数,直至感兴流形横跨整个子空间。然而,当考虑到非线性坐标变换,例如 R e L U \mathrm{ReLU} ReLU时,上述直觉就没有那么准确了。

一般来说,如果层变换 R e L U ( B x ) \mathrm{ReLU}(Bx) ReLU(Bx)转换具有非零体积 S S S,那么对于某个映射到 S S S内部的点,其对应的映射操作为线性转换 B B B,这意味着存在一部分的输入空间仅通过线性转换就可完全对应整个输出空间。换句话说,深度网路在输出空间的非零体积部分只具有线性分类能力。关于更正式的说明,请参阅补充材料。

非零体积指空间每个变换在每个维度上都存在连续的取值区间。

另一方面,当 R e L U \mathrm{ReLU} ReLU转换截断某一通道时,它不可避免地会丢失该通道中的信息。但当我们有多个通道时,被截断的信息就可以保存到激活流行中的其它通道里。在补充材料中,我们证明了,如果输入流行可以嵌入到激活空间的某一个显著低维子空间中,那么 R e L U \mathrm{ReLU} ReLU转换在引入函数表达所需复杂性的同时也能保留信息。

ReLU transformation

总而言之,如果感兴流行位于高维激活空间的低维子空间中,那么感兴流行需满足如下两点:

  1. 感兴流行在 R e L U \mathrm{ReLU} ReLU转换后任保持非零体积,在非零体积内,感兴流行仅进行了线性变换。

  2. 输入流行位于输入空间的低维子空间中,那么 R e L U \mathrm{ReLU} ReLU转换可以保留输入流行的完整信息。

上述两点信息为我们提供了优化现有神经结构的方向:假设感兴趣的流形是低维的,我们可以通过在卷积块中插入线性瓶颈层来捕获它。实验证据表明,使用线性层至关重要,因为它可以防止非线性破坏过多的信息。在第 6 6 6节中,我们通过实验证明,在瓶颈中使用非线性层确实会对网络性能降低几个百分点,从而进一步验证了我们的假设。在其它文献中也有类似的报道,例如去除传统残差块输入部分的非线性后,整个网络在CIFAR数据集上的性能得到了改善。

在本文的其余部分,我们将利用瓶颈卷积。 我们将输入瓶颈的大小与输出瓶颈的大小之间的比率称为扩展比率。

Evolution of separable convolution blocks

3.3. Inverted residuals

瓶颈块和残差块相似,其内部都是将输入张量通过几个瓶颈结构最后接入一个扩展结构。瓶颈结构实际上包含了输入流行的所有信息,而扩展层仅仅是为了实现张量的非线性转换,因此我们只在瓶颈结构之间使用残差连接。下图显示了瓶颈块及残差块之间的差异。插入残差连接的原因在于提高梯度跨多层传播的能力,这一点与残差块原理相似。但是倒残差的设计与传统设计相比,在存储效率上要高很多(有关详细信息,请参见第 5 5 5节),在我们的实验中也明显效果更好。

residual block

InputOperatorOutput
h x w x k1 x 1 conv2d, ReLU6h x w x (tk)
h x w x tk3 x 3 dwise s=s, ReLU6h/s x w/s x (tk)
h/s x w/s x tklinear 1 x 1 conv2dh/s x w/s x k'

瓶颈卷积的运行时间与参数数量 瓶颈块的基本结构如上表所示。对于一个输入大小为 h × w h\times w h×w,扩展因子为 t t t,卷积核大小为 k k k,输入通道数为 d ′ d' d且输出通道数为 d ′ ′ d'' d的块结构来说,其乘加数量的总和为 h ⋅ w ⋅ d ′ ⋅ t ( d ′ + k 2 + d ′ ′ ) h\cdot w\cdot d'\cdot t(d'+k^2+d'') hwdt(d+k2+d)。与式 ( 1 ) (1) (1)相比,增加了额外的 1 × 1 1\times 1 1×1卷积运算。在下表中,我们对比了不同分辨率下的MobileNetV1,MobileNetV2及ShuffleNet。

SizeMobileNetV1MobileNetV2ShuffleNet(2x,g=3)
112 x 11264/160016/40032/800
56 x 56128/80032/20048/300
28 x 28256/40064/100400/600K
14 x 14512/200160/62800/310
7 x 71024/199320/321600/156
1 x 11024/21280/21600/3
max1600K400K600K

3.4. Information flow interpretation

我们所提出结构的一个有趣特性在于,它可以提供输入/输出空间与层转换之间的自然隔离,层转换是将输入映射为输出的非线性函数。结构的前部分可以被视为负责网络容量的调整,后部分负责输入映射为输出的函数表达。这一点与不管是传统还是可分离卷积块的实现不同,它们同时实现网络容量的调整及函数表达的映射,并且是输出层深度的函数。

在我们的用例中,当内部层的深度为 0 0 0时,由于存在残差连接,那么输出结果就是底层卷积的函数。当扩展比率为 1 1 1时,这个结构就是经典的残差卷积块。然而,实验证明使用比率大于 1 1 1的扩展网络更有效果。

这种解释使我们能够将网络的函数表达与容量分开研究,并且我们相信有必要进一步研究这种分离结构,以便更好地了解网络的性质。

4. Model Architecture

现在我们将从细节上描述模型结构。正如上一节内容所述,模型的基本构建块是带有残差连接的瓶颈深度可分离卷积。具体的细节结构如上表所示。MobileNetV2结构由带有 32 32 32个卷积核的全卷积层加上后续的 19 19 19个残差瓶颈层组成,如下表所示。考虑到低精度运算的鲁棒性,我们使用 R e L U 6 \mathrm{ReLU6} ReLU6作为非线性激活函数。我们使用的卷积核大小为 3 × 3 3\times 3 3×3,并且在训练中使用了dropout及batch normalization技术。

InputOperatortcns
2242 x 3conv2d-3212
1122 x 32bottleneck11611
1122 x 16bottleneck62422
562 x 24bottleneck63232
282 x 32bottleneck66442
142 x 64bottleneck69631
142 x 96bottleneck616032
72 x 160bottleneck632011
72 x 320conv2d 1 x 1-128011
72 x 1280avgpool 7 x 7--1-
1 x 1 x 1280conv2d 1 x 1-k--

除去第一层外,我们在整个网络中使用恒定的扩展比率。通过实验我们发现,使用 5 5 5 10 10 10的扩展比率网络性能曲线几乎相同,对于较小的网络使用稍小的扩展比率可以达到更好的性能,而较大的网络则需要使用稍大的扩展比率。

在我们的主要实验中,我们使用的扩展比率为 6 6 6。例如瓶颈层的输入为 64 64 64通道,输出为 128 128 128通道,那么中间的扩展层的通道数就等于 64 ⋅ 6 = 384 64·6=384 646=384

超参权衡 和MobileNetV1一样,我们将输入图像分辨率及宽度乘数作为可调超参。我们基准网络(宽度乘数 1 1 1 224 × 224 224\times 224 224×224)大约需要消耗 3 3 3亿次乘加操作并且使用了 340 340 340万个参数。我们研究了将输入图像分辨率由 96 96 96调整至 224 224 224,宽度乘数由 0.35 0.35 0.35调整至 1.4 1.4 1.4的网络性能。这些网络运算量由 700 700 700万至 5.85 5.85 5.85亿次乘加不等,并且网络参数量在 170 170 170万至 690 690 690万之间。

与MbolieNetV1不同的一点在于,对于最后一层卷积层我们不会使用宽度乘数调整输出通道数。因为保持这一种结构,有利于提高小模型的性能。

5. Implementation Notes

5.1. Memory efficient inference

反向残差瓶颈层存在特别高效的内存实现,这对于移动应用程序非常重要。网络推理可以通过使用TensorFlow或Caffe等框架构建有向无环计算超图来有效实现,超图的边代表运算操作,节点代表中间张量。我们可以调整计算顺序使需要保存到内存中的张量总数最小。通常情况下,我们在所有的合理运算顺序 ∑ ( G ) \sum(G) (G)中,选择内存消耗最小的一种:

M ( G ) = min ⁡ π ∈ ∑ ( G ) max ⁡ i ∈ 1.. n [ ∑ A ∈ R ( i , π , G ) ∣ A ∣ ] + s i z e ( π i ) (2) M(G)=\min_{\pi\in\sum(G)}\max_{i\in 1..n}\left [\sum_{A\in R(i,\pi,G)}|A|\right ]+\mathrm{size}(\pi_i)\tag{2} M(G)=π(G)mini1..nmaxAR(i,π,G)A+size(πi)(2)
其中 R ( i , π , G ) R(i,\pi,G) R(i,π,G)是所有连接到 π i \pi_i πi π n \pi_n πn节点的中间张量, ∣ A ∣ |A| A表示张量 A A A的大小, s i z e ( i ) \mathrm{size}(i) size(i)表示运算操作 i i i所需要的中间张量大小。

对于只含有平凡并行结构(如残差连接)的图来说,只存在一种运算顺序,那么该图推理所需的内存量可以简化为:

M ( G ) = max ⁡ o p ∈ G [ ∑ A ∈ o p i n p ∣ A ∣ + ∑ B ∈ o p o u t ∣ B ∣ + ∣ o p ∣ ] (3) M(G)=\max_{op\in G}\left [\sum_{A\in op_{inp}}|A|+\sum_{B\in op_{out}}|B|+|op|\right ]\tag{3} M(G)=opGmaxAopinpA+BopoutB+op(3)
根据上式,推理所需的内存量就是所有操作中输入及输出张量的最大总和大小。在接下来的分析中,我们可以看到,如果将瓶颈残差块视为一个单独的操作(内部的卷积输出视为临时张量),那么操作所需内存量将由瓶颈张量大小而非瓶颈内部张量大小控制。

由于扩展因子的存在,内部张量大小往往很大。但通过 t t t分割的优化方法,进行块运算操作时并不需要将内部张量的所有通道都同时保存至内存中,当 t = n t=n t=n时,仅需要保存 1 1 1个通道的内部张量。因此尽管内部张量大小很大,但其并非运算所需内存量的主要贡献者。

瓶颈残差块 我们将瓶颈块操作用符号 F ( x ) F(x) F(x)表示,它是三种运算操作的组合 F ( x ) = [ A ∘ N ∘ B ] x \mathcal{F}(x)=[A\circ \mathcal{N}\circ B]x F(x)=[ANB]x,其中 A A A表示线性转换 A : R s × s × k → R s × s × n A:\mathcal{R}^{s\times s\times k}\rightarrow \mathcal{R}^{s\times s\times n} A:Rs×s×kRs×s×n N \mathcal{N} N表示非线性转换 N : R s × s × n → R s ′ × s ′ × n \mathcal{N}:\mathcal{R}^{s\times s\times n}\rightarrow \mathcal{R}^{s'\times s'\times n} N:Rs×s×nRs×s×n B B B也表示线性转换 B : R s ′ × s ′ × n → R s ′ × s ′ × k ′ B:\mathcal{R}^{s'\times s'\times n}\rightarrow \mathcal{R}^{s'\times s'\times k'} B:Rs×s×nRs×s×k

对于我们的网络来说, N = R e L U 6 ∘ d w i s e ∘ R e L U 6 \mathcal{N}=\mathrm{ReLU6}\circ \mathrm{dwise}\circ\mathrm{ReLU6} N=ReLU6dwiseReLU6。假设输入张量大小为 ∣ x ∣ |x| x,输出张量大小为 ∣ y ∣ |y| y,那么 F ( x ) \mathcal{F}(x) F(x)运算所需的最少内存量为 ∣ s 2 k ∣ + ∣ s ′ 2 k ′ ∣ + O ( m a x ( s 2 , s ′ 2 ) ) |s^2k|+|s'^2k'|+O(max(s^2,s'^2)) s2k+s2k+O(max(s2,s2))

运算操作的内部张量 I \mathcal{I} I可看作由 t t t个张量串联组成,每个张量通道数为 n / t n/t n/t,那么运算操作可重写为:

F ( x ) = ∑ i = 1 t ( A i ∘ N ∘ B i ) ( x ) (4) \mathcal{F}(x)=\sum_{i=1}^{t}(A_i\circ \mathcal{N}\circ B_i)(x)\tag{4} F(x)=i=1t(AiNBi)(x)(4)
由于将运算操作被分解为了张量累加,因此每次计算仅需要 n / t n/t n/t通道数的内部张量被保存到内存里。取 n = t n=t n=t,每次仅需保存内部张量的 1 1 1个通道数据。上述优化技巧存在两个限制条件:(a)内部转换(包括非线性转换及深度卷积)是通道独立的;(b)跨通道操作运算的输入张量大小明显大于输出张量大小。对于大多数传统神经网络来说,这种优化技巧并不能对网络性能有明显地改善。

内部转换指代 N \mathcal{N} N,跨通道操作指代 A A A B B B。这里不太明白为什么存在限制条件(b)?

F ( x ) \mathcal{F}(x) F(x)操作的 t t t分割运算所需的内存量与 t t t无关,但是矩阵分割会增加高速缓存缺失的概率。我们发现 t t t取值介于 2 2 2 5 5 5之间时可以很好地改善上述情况。这种取值可以在显著降低运算操作的内存需求的同时也满足深度学习框架对于矩阵乘法及卷积运算的高度优化。关于特殊的框架级优化可否改进运行时的性能还有待观察。

高速缓存缺失:处理器所要访问的存储块不在高速缓存中。

6. Experiments

6.1. ImageNet Classification

训练步骤 我们使用TensorFlow训练模型。优化器使用RMSProp,衰减及动量都设置为 0.9 0.9 0.9。每层网络都后接了一个权重衰减系数为 0.0004 0.0004 0.0004的batch normalization层。与MboileNetV1训练步骤相同,我们使用的初始学习率为 0.045 0.045 0.045,并且按每轮 0.98 0.98 0.98的系数衰减。一共使用了 16 16 16张GPU卡,batch大小为 96 96 96

结果 我们将MobileNetV2与MobileNetV1,ShuffleNet及NASNet-A模型进行了对比,结果如下表,下图所示。

NetworkTop1ParamsMAddsCPU
MobileNetV170.64.2M575M113ms
ShuffleNet(1.5)71.53.4M292M-
ShuffleNet(x2)73.75.4M524M-
NasNet-A74.05.3M564M183ms
MobileNetV272.03.4M300M75ms
MobileNetV2(1.4)74.76.9M585M143ms

Performance curve

NasNetShuffleNetMobileNet

6.2. Object Detection

我们在SSD框架下对比了MobileNetV1及MobileNetV2在COCO数据集上作为目标检测特征提取器的性能。以YOLOv2及原始SSD网络作为基准。我们并没有对比Faster-RCNN及RFCN,因为本文主要关注移动设备/实时模型的设计。

SSD整体结构如下图所示。

SSD

SSDLite:我们引入了一种适用于移动设备的SSD框架,将预测层中的常规卷积替换为了可分离卷积(深度卷积+ 1 × 1 1\times 1 1×1映射)。这种设计与MobileNet总体思路一致,并且在运算上明显更高效。我们把这种改进的模型称为SSDLite。如下表所示,与传统模型相比较,这种改进模型在参数量及运算量上都有极大的优化。

ParamsMAdds
SSD14.8M1.25B
SSDLite2.1M0.35B

对于MobileNetV1,我们参考了文献 S p e e d / a c c u r a c y Speed/accuracy Speed/accuracy t r a d e − o f f s trade-offs tradeoffs f o r for for m o d e r n modern modern c o n v o l u t i o n a l convolutional convolutional o b j e c t object object d e t e c t o r s detectors detectors的做法。对于MobileNetV2,其SSDLite框架的第 1 1 1层被连接到第 15 15 15层的扩展层(输出步长为 16 16 16)。SSDLite框架的第 2 2 2层和其余层被连接到最后 1 1 1层的顶部(输出步幅为 32 32 32)。此配置与MobileNetV1一致,因为所有的层都被连接到了相同输出步幅的特征图上。

两种MobileNet模型都使用了开源的TensorFlow物体检测API进行训练。输入图像的分辨率都是 320 × 320 320\times 320 320×320。我们将模型的 m A P \mathrm{mAP} mAP(COCO挑战指标),参数数量及乘加数量进行了基准测试比较。结果如下表所示。MobileNetV2 SSDLite不仅是效率最高的模型,而且还是三者中最准确的模型。值得注意的是,对比YOLOv2,MobileNetV2 SSDLite在COCO数据集上的 m A P \mathrm{mAP} mAP表现更优秀,而且其运算效率提高了 20 20 20倍,体积缩小了 10 10 10倍。

NetworkmAPParamsMAddsCPU
SSD30023.236.1M35.2B-
SSD51226.836.1M99.5B-
YOLOv221.650.7M17.5B-
NNet V1 + SSDLite22.25.1M1.3B270ms
MNet V2 + SSDLite22.14.3M0.8B200ms

6.3. Semantic Segmentation

在本节中,我们将比较在DeepLabv3中使用MobileNetV1及MobileNetV2作为移动设备语义分割特征提前器的性能。DeepLabv3采用了atrous卷积,并且构建了五个并行头,包括(a)由三个不同空洞率 3 × 3 3\times 3 3×3卷积组成的Atrous空间金字塔池化模块(ASPP),(b) 1 × 1 1\times 1 1×1卷积头及(c)图像级特征。我们用 o u t p u t _ s t r i d e output\_stride output_stride来表示输入图像空间分辨率与最终输出分辨率之比,比值可以通过适当地使用atrous卷积来控制。对于语义分割问题,我们通常采用 o u t p u t _ s t r i d e = 16 output\_stride=16 output_stride=16 8 8 8来生成特征图。我们在PASCAL VOC 2012数据集上进行了实验。

ASPP:是DeepLabV3中提出的空洞空间金字塔模块,包括 1 1 1 1 × 1 1\times1 1×1卷积层, 3 3 3个不同空洞率的空洞卷积层及 1 1 1个池化层,结构如下图所示。
Atrous空间金字塔池化模块

为了构造移动设备适用的模型,我实验了三种不同的设计方案:(1)不同的特征提取器,(2)简化DeepLabv3头部以提高运算速度及(3)不同推理策略以提升性能,结果如表7所示。我们观察到:(a)推理策略(包括多尺度及左右翻转图像输入)会显著增加模型乘加运算量,因此不适用于终端设备应用,(b)使用 o u t p u t _ s t r i d e = 16 output\_stride=16 output_stride=16 o u t p u t _ s t r i d e = 8 output\_stride=8 output_stride=8模型效率更高,(c)MobileNetV1已经是一个很强大的特征提取器了,它仅需要比ResNet-101少 4.9 4.9 4.9- 5.7 5.7 5.7倍的乘加运算量,(d)相较于从MobileNetV2最后一层特征图构建DeepLabv3头,从倒数第二层构建DeepLabv3头模型效率更高,因为倒数第二层特征图包含 320 320 320个通道而最后一层包含 1280 1280 1280个通道,由MobileNetV2构建的模型与MobbileNetV1性能相近,但它的运算量却少 2.5 2.5 2.5倍,最后(e)DeepLabv3的计算成本很高,移除ASPP模块可以显著降低模型乘加运算量,而性能仅略有下降。

(d)点内容不太理解。

6.4. Ablation study

反向残差连接 残差连接的重要性已被广泛研究。本文研究结果指出,连接瓶颈的残差模型比连接扩展层的残差模型性能更好(比较结果见下图(b))。

线性瓶颈层的重要性 线性瓶颈模型的功能要弱于非线性瓶颈模型,因为通过调整激活函数的偏差和比例可以将非线性操作限制在线性范围内。但是,下图(a)中的实验表明,线性瓶颈可以改善模型性能,这为非线性破坏低维空间信息的说法提供了支持。

non-linearities and shortcut

7. Conclusions and future work

我们描述了一种非常简单的网络结构,该结构可以帮助我们构建一系列高效的移动设备模型。我们使用的基本构建单元具有多种适用于移动设备应用的属性。它的推断过程可以高效地利用设备内存,并且使用主流神经网络框架中的标准操作实现。

对于ImageNet数据集,我们的网络模型在多项性能指标中都达到最前沿水平。

对于目标检测任务,我们的网络模型在准确率及模型复杂度方面均优于其他同类型的实时检测模型。值得注意的是,与YOLOv2相比,我们的网络模型与SSDLite检测框架的结合,计算量减少了 20 20 20倍,参数量减少了 10 10 10倍。

从理论上讲:本文所提出的卷积块具有将函数表达(由扩展层编码)与网络容量(由瓶颈输入编码)分开的特性。探索这一点将是未来研究的重要方向。

A. Bottleneck transformation

在本节中,我们研究了 A R e L U ( B x ) A\mathrm{ReLU}(Bx) AReLU(Bx)操作的属性,其中 x ∈ R n x\in\mathcal{R}^n xRn代表 n n n通道像素点, B B B代表 m × n m\times n m×n矩阵, A A A代表 n × m n\times m n×m矩阵。我们认为,如果 m ≤ n m\le n mn,那么上述操作会因为使用了非线性函数而丢失信息。相反,如果 n ≪ m n\ll m nm,上述操作在使用高度非线性函数的同时仍然具有高概率的可逆性(对于随机初始化权重而言)。

引理 1 1 1 S ( X ) = { R e L U ( x ) ∣ x ∈ X } S(X)=\{\mathrm{ReLU}(x)|x\in X\} S(X)={ReLU(x)xX}。如果 S ( X ) S(X) S(X)体积非零,那么 S ( X ) S(X) S(X)内点 ⊆ X \subseteq X X

证明 S ′ = R e L U ( x ) S'=\mathrm{ReLU}(x) S=ReLU(x)内点。首先,我们注意到,如果 x ∈ S ′ x\in S' xS,那么对于任意 i i i x i > 0 x_i>0 xi>0。事实上, R e L U \mathrm{ReLU} ReLU图像不包含负坐标点,并且零坐标点不是内点。因此,对于任意 x ∈ S ′ x\in S' xS x = R e L U ( x ) x=\mathrm{ReLU}(x) x=ReLU(x)

引理 2 2 2 R e L U \mathrm{ReLU} ReLU的可逆性) 考察操作 R e L U ( B x ) \mathrm{ReLU}(Bx) ReLU(Bx),其中 B B B是表示 m × n m\times n m×n的矩阵, x ∈ R n x\in\mathcal{R}^n xRn。令 y 0 = R e L U ( B x 0 ) y_0=\mathrm{ReLU}(Bx_0) y0=ReLU(Bx0),其中 x 0 ∈ R n x_0\in\mathcal{R}^n x0Rn,那么当且仅当 y 0 y_0 y0至少有 n n n个非零值且 B B B n n n个列向量线性独立时, x 0 x_0 x0存在关于 y 0 y_0 y0非零坐标的唯一解。

证明 假设 y 0 y_0 y0的非零坐标用 T T T来表示,令 y T y_T yT B T B_T BT表示与 y 0 y_0 y0 B B B中非零坐标相关的部分。如果 ∣ T ∣ < n |T|<n T<n,那么 y T = B T x 0 y_T=B_Tx_0 yT=BTx0有无穷多个解。如果 ∣ T ∣ ≥ n |T|\ge n Tn并且 B T B_T BT的秩为 n n n,那么 y T = B T x 0 y_T=B_Tx_0 yT=BTx0存在唯一解。

根据上述引理我们可以得出一个推论,如果 m ≫ n m\gg n mn,我们仅需要一小部分 B x Bx Bx值为正,即可使 R e L U ( B x ) \mathrm{ReLU}(Bx) ReLU(Bx)操作可逆。

引理 2 2 2的约束在实际网络及输入数据中可以很高概率的满足,因此我们可以确信信息确实可以被保存。如下图所示,利用验证输入进行实验,不管是对于初始化或完全训练的MobileNetV2模型,引理 2 2 2的约束都很好满足。随机初始化的网络有一半的通道都为正值,完全训练的网络只有两层的数据不完全满足约束。我们相信对这一点的进一步研究会对网络设计有所帮助。

Distribution

定理 1 1 1 S S S R n \mathcal{R}^n Rn空间中的 n n n维子流形。考察由从 R n \mathcal{R}^n Rn空间映射至 R m \mathcal{R}^m Rm空间的函数族 f B ( x ) = R e L U ( B x ) f_B(x)=\mathrm{ReLU}(Bx) fB(x)=ReLU(Bx),其中参数 B ∈ B B\in\mathcal{B} BB m × n m\times n m×n的矩阵。假设 B \mathcal{B} B的概率密度 p ( B ) p(B) p(B)满足如下两点:

  • B \mathcal{B} B的零测集 Z Z Z概率密度为零 p ( Z ) = 0 p(Z)=0 p(Z)=0
  • (对称条件) p ( D B ) = p ( B ) p(DB)=p(B) p(DB)=p(B),其中矩阵 D D D是元素仅为 + 1 +1 +1 − 1 -1 1的对角阵。

那么,流形 S S S中被函数族 f B f_B fB坍塌子集的平均 n n n体积为:

V − N m , n V 2 m (5) V-\frac{N_{m,n}V}{2^m}\tag{5} V2mNm,nV(5)
其中, V = v o l   S V=\mathrm{vol}\ S V=vol S N m , n ≡ ∑ k = 0 m − n ( m n ) N_{m,n}\equiv\sum_{k=0}^{m-n}\begin{pmatrix}m\\n\end{pmatrix} Nm,nk=0mn(mn)

证明:令 Q σ = { x ∈ R m ∣ x i s i > 0 } Q_\sigma=\{x\in\mathcal{R}^m|x_is_i>0\} Qσ={xRmxisi>0}表示空间 R m \mathcal{R}^m Rm中的象限,其中 σ = ( s 1 , . . . , s m ) \sigma=(s_1,...,s_m) σ=(s1,...,sm) s k ∈ { − 1 , + 1 } s_k\in\{-1,+1\} sk{1,+1}。对于任意 n n n维子流形 Γ ⊂ R m \Gamma\subset\mathcal{R}^m ΓRm,如果 σ \sigma σ中至少有 n n n个正值,那么 R e L U \mathrm{ReLU} ReLU函数对于流形区域 Γ ∩ Q σ \Gamma\cap Q_{\sigma} ΓQσ起双射作用,反之 R e L U \mathrm{ReLU} ReLU函数会收缩该区域。流形 S S S经过矩阵 B B B转换后未被 R e L U \mathrm{ReLU} ReLU函数坍塌的 n n n体积可用下式表示:
∑ σ ∈ ∑ n E B [ V σ ( B ) ] (6) \sum_{\sigma\in\sum_n}\mathbb{E}_B[V_{\sigma}(B)]\tag{6} σnEB[Vσ(B)](6)
其中, ∑ n = { ( s 1 , . . . , s m ) ∣ ∑ k θ ( s k ) ≥ n } \sum_n=\{(s_1,...,s_m)|\sum_k\theta(s_k)\ge n\} n={(s1,...,sm)kθ(sk)n} θ \theta θ表示阶跃函数, V σ ( B ) V_{\sigma}(B) Vσ(B)表示流形 S S S经过矩阵 B B B变换后在象限 Q σ Q_\sigma Qσ中的体积。由于 p ( D B ) = p ( B ) p(DB)=p(B) p(DB)=p(B),那么 E B [ V σ ( B ) ] \mathbb{E}_B[V_{\sigma}(B)] EB[Vσ(B)]可重写为 E B E D [ V σ ( D B ) ] \mathbb{E}_B\mathbb{E}_D[V_{\sigma}(DB)] EBED[Vσ(DB)]。求流形 S S S经过矩阵 D B DB DB变换后在象限 Q σ Q_\sigma Qσ中的体积等价于求 B B B变换后在象限 D − 1 Q σ D^{-1}Q_\sigma D1Qσ中的体积,那么可得 ∑ σ ′ V σ [ d i a g ( σ ′ ) B ] = ∑ σ ′ V σ ′ [ B ] = v o l   S \sum_{\sigma'}V_{\sigma}[\mathrm{diag}(\sigma')B]=\sum_{\sigma'}V_{\sigma'}[B]=\mathrm{vol}\ S σVσ[diag(σ)B]=σVσ[B]=vol S,因此 E B [ V σ ( B ) ] = 2 − m v o l   S \mathbb{E}_B[V_\sigma(B)]=2^{-m}\mathrm{vol}\ S EB[Vσ(B)]=2mvol S。将上式及 ∣ ∑ n ∣ = ∑ k = 0 m − n ( m k ) |\sum_n|=\sum_{k=0}^{m-n}\begin{pmatrix}m\\k\end{pmatrix} n=k=0mn(mk)带入式 ( 6 ) (6) (6),即可证明定理 1 1 1

对于 m ≫ n m\gg n mn的扩展层,流形 S S S保留率 N m , n / 2 m N_{m,n}/2^m Nm,n/2m的下界推导公式如下:
N m , n 2 m ≥ 1 − m n + 1 2 m n ! ≥ 1 − 2 ( n + 1 ) log ⁡ m − m ≥ 1 − 2 − m / 2 (7) \frac{N_{m,n}}{2^m}\ge1-\frac{m^{n+1}}{2^mn!}\ge1-2^{(n+1)\log m-m}\ge1-2^{-m/2}\tag{7} 2mNm,n12mn!mn+112(n+1)logmm12m/2(7)
其中, ∑ n = { ( s 1 , . . . , s m ) ∣ ∑ k θ ( s k ) ≥ n } \sum_n=\{(s_1,...,s_m)|\sum_k\theta(s_k)\ge n\} n={(s1,...,sm)kθ(sk)n} θ \theta θ表示阶跃函数, V σ ( B ) V_{\sigma}(B) Vσ(B)表示流形 S S S经过矩阵 B B B变换后在象限 Q σ Q_\sigma Qσ中的体积。由于 p ( D B ) = p ( B ) p(DB)=p(B) p(DB)=p(B),那么 E B [ V σ ( B ) ] \mathbb{E}_B[V_{\sigma}(B)] EB[Vσ(B)]可重写为 E B E D [ V σ ( D B ) ] \mathbb{E}_B\mathbb{E}_D[V_{\sigma}(DB)] EBED[Vσ(DB)]。求流形 S S S经过矩阵 D B DB DB变换后在象限 Q σ Q_\sigma Qσ中的体积等价于求 B B B变换后在象限 D − 1 Q σ D^{-1}Q_\sigma D1Qσ中的体积,那么可得 ∑ σ ′ V σ [ d i a g ( σ ′ ) B ] = ∑ σ ′ V σ ′ [ B ] = v o l   S \sum_{\sigma'}V_{\sigma}[\mathrm{diag}(\sigma')B]=\sum_{\sigma'}V_{\sigma'}[B]=\mathrm{vol}\ S σVσ[diag(σ)B]=σVσ[B]=vol S,因此 E B [ V σ ( B ) ] = 2 − m v o l   S \mathbb{E}_B[V_\sigma(B)]=2^{-m}\mathrm{vol}\ S EB[Vσ(B)]=2mvol S。将上式及 ∣ ∑ n ∣ = ∑ k = 0 m − n ( m k ) |\sum_n|=\sum_{k=0}^{m-n}\begin{pmatrix}m\\k\end{pmatrix} n=k=0mn(mk)带入式 ( 6 ) (6) (6),即可证明定理 1 1 1

对于 m ≫ n m\gg n mn的扩展层,流形 S S S保留率 N m , n / 2 m N_{m,n}/2^m Nm,n/2m的下界推导公式如下:

N m , n 2 m ≥ 1 − m n + 1 2 m n ! ≥ 1 − 2 ( n + 1 ) log ⁡ m − m ≥ 1 − 2 − m / 2 (7) \frac{N_{m,n}}{2^m}\ge1-\frac{m^{n+1}}{2^mn!}\ge1-2^{(n+1)\log m-m}\ge1-2^{-m/2}\tag{7} 2mNm,n12mn!mn+112(n+1)logmm12m/2(7)
因此, R e L U ( B x ) \mathrm{ReLU}(Bx) ReLU(Bx)可以在进行非线性变换的同时高概率保持信息。

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值