GoogleNet V1

GoogleNet V1 Abstract 本文作者在ImageNet大规模视觉识别挑战赛2014(ILSVRC14)上提出了一种代号为Inception的深度卷积神经网络结构,并在分类和检测上取得了新的最好结果。这个架构的主要特点是提高了网络内部计算资源的利用率。通过精心的手工设计,在增加了网络深度和广度的同时保持了计算预算不变。为了优化质量,架构的设计以赫布理论和多尺度处理直觉为基础。作者在ILSVRC14提交中应用的一个特例被称为GoogLeNet,一个22层的深度网络,其质量在分类和检测的背景下进行了评估。 1. Introduction 过去三年中,由于深度学习和卷积网络的发展[10],目标分类和检测能力得到了显著提高。一个令人鼓舞的消息是,大部分的进步不仅仅是更强大硬件、更大数据集、更大模型的结果,而主要是新的想法、算法和网络结构改进的结果。例如,ILSVRC 2014竞赛中最靠前的输入除了用于检测目的的分类数据集之外,没有使用新的数据资源。本文在ILSVRC 2014中的GoogLeNet提交实际使用的参数只有两年前Krizhevsky等人[9]获胜结构参数的1/12,而结果明显更准确。在目标检测前沿,最大的收获不是来自于越来越大的深度网络的简单应用,而是来自于深度架构和经典计算机视觉的协同,像Girshick等人[6]的R-CNN算法那样。 另一个显著因素是随着移动和嵌入式设备的推动,算法的效率很重要——尤其是它们的电力和内存使用。值得注意的是,正是包含了这个因素的考虑才得出了本文中呈现的深度架构设计,而不是单纯的为了提高准确率。对于大多数实验来说,模型被设计为在一次推断中保持15亿乘加的计算预算,所以最终它们不是单纯的学术好奇心,而是能在现实世界中应用,甚至是以合理的代价在大型数据集上使用。 本文作者考虑到在终端设备上的应用所以才提出了Inception,这也影响了后续的Xception和MobileNet。(猜测) 在本文中将关注一个高效的计算机视觉深度神经网络架构,代号为Inception,它的名字来自于Lin等人[12]网络论文中的Network与著名的“we need to go deeper”网络梗图[1]的结合。在本文的案例中,单词“deep”用在两个不同的含义中:首先,在某种意义上,以“Inception module”的形式引入了一种新层次的组织方式,在更直接的意义上增加了网络的深度。一般来说,可以把Inception模型看作论文[12]的逻辑顶点同时从Arora等人[2]的理论工作中受到了鼓舞和引导。这种架构的好处在ILSVRC 2014分类和检测挑战赛中通过实验得到了验证,它明显优于目前的最好水平。 2. Related Work 从LeNet-5 [10]开始,卷积神经网络(CNN)通常有一个标准结构——堆叠的卷积层(后面可以选择有对比归一化和最大池化)后面是一个或更多的全连接层。这个基本设计的变种在图像分类论文中流行,并且目前为止在MNIST,CIFAR和更著名的ImageNet分类挑战赛中[9, 21]的已经取得了最佳结果。对于更大的数据集例如ImageNet来说,最近的趋势是增加层的数目[12]和层的大小[21, 14],同时使用dropout[7]来解决过拟合问题。 尽管担心最大池化层会引起准确空间信息的损失,但与[9]相同的卷积网络结构也已经成功的应用于定位[9, 14],目标检测[6, 14, 18, 5]和行人姿态估计[19]。 受灵长类视觉皮层神经科学模型的启发,Serre等人[15]使用了一系列固定的不同大小的Gabor滤波器来处理多尺度。本文使用一个了类似的策略。然而,与[15]的固定的2层深度模型相反,Inception结构中所有的滤波器是学习到的。此外,Inception层重复了很多次,在GoogLeNet模型中得到了一个22层的深度模型。 Network-in-Network是Lin等人[12]为了增加神经网络表现能力而提出的一种方法。在他们的模型中,网络中添加了额外的1 × 1卷积层,增加了网络的深度。本文的架构中大量的使用了这个方法。但是,在本文的设置中,1 × 1卷积有两个目的:最关键的是,它们主要是用来作为降维模块来移除卷积瓶颈,否则将会限制网络的大小。这不仅允许了深度的增加,而且允许网络的宽度增加但没有明显的性能损失。 1×1 的卷积层的作用: 在相同尺寸的感受野中叠加更多的卷积,能提取到更丰富的特征。 使用1x1卷积进行降维,降低了计算复杂度。 1×1 卷积没有识别高和宽维度上相邻元素构成的模式的功能。实际上,1×1 卷积的作用主要发生在 Channel 维上。值得注意的是,输入和输出具有相同的高和宽。输出中的每个元素来自输入中在高和宽上相同位置的元素在不同通道之间的按权重累加。假设我们将 Channel 维当作特征维,将高和宽维度上的元素当成数据样本,那么 1×1 卷积层的作用与全连接层等价。 最后,目前最好的目标检测是Girshick等人[6]的基于区域的卷积神经网络(R-CNN)方法。R-CNN将整个检测问题分解为两个子问题:利用低层次的信号例如颜色,纹理以跨类别的方式来产生目标位置候选区域,然后用CNN分类器来识别那些位置上的对象类别。这样Two-Stage的方法利用了低层特征分割边界框的准确性,也利用了目前的CNN非常强大的分类能力。我们在我们的检测提交中采用了类似的方式,但探索增强这两个阶段,例如对于更高的目标边界框召回使用多盒[5]预测,并融合了更好的边界框候选区域分类方法。 3. Motivation and High Level Considerations 提高深度神经网络性能最直接的方式是增加它们的尺寸。这不仅包括增加深度——网络层次的数目——也包括它的宽度:每一层的单元数目。这是一种训练更高质量模型容易且安全的方法,尤其是在可获得大量标注的训练数据的情况下。但是这个简单方案有两个主要的缺点。 更大的尺寸通常意味着更多的参数,这会使增大的网络更容易过拟合,尤其是在训练集的标注样本有限的情况下。这是一个主要的瓶颈,因为要获得强标注数据集费时费力且代价昂贵,经常需要专家评委在各种细粒度的视觉类别进行区分,例如图1中显示的ImageNet中的类别(甚至是1000类ILSVRC的子集)。 图1: ILSVRC 2014分类挑战赛的1000类中两个不同的类别。区分这些类别需要领域知识。 均匀增加网络尺寸的另一个缺点是计算资源使用的显著增加。例如,在一个深度视觉网络中,如果两个卷积层相连,它们的滤波器数目的任何均匀增加都会引起计算量以平方增加。如果增加的能力使用时效率低下(例如,如果大多数权重结束时接近于0),那么会浪费大量的计算能力。由于计算预算总是有限的,计算资源的有效分布更偏向于尺寸无差别的增加,即使主要目标是增加性能的质量。 解决这两个问题的一个基本的方式就是引入稀疏性并将全连接层替换为稀疏的全连接层,甚至是卷积层。除了模仿生物系统之外,由于Arora等人[2]的开创性工作,这也具有更坚固的理论基础优势。他们的主要成果说明如果数据集的概率分布可以通过一个大型稀疏的深度神经网络表示,则最优的网络拓扑结构可以通过分析前一层激活的相关性统计和聚类高度相关的神经元来一层层的构建。虽然严格的数学证明需要在很强的条件下,但事实上这个声明与著名的赫布理论产生共鸣:神经元一起激发,一起连接。实践表明,基础概念甚至适用于不严格的条件下。 遗憾的是,当碰到在非均匀的稀疏数据结构上进行数值计算时,以现在的计算架构效率会非常低下。即使算法运算的数量减少100倍,查询和缓存丢失上的开销仍占主导地位:切换到稀疏矩阵可能是不可行的。随着稳定提升和高度调整的数值库的应用,差距仍在进一步扩大,数值库要求极度快速密集的矩阵乘法,利用底层的CPU或GPU硬件[16, 9]的微小细节。非均匀的稀疏模型也要求更多的复杂工程和计算基础结构。目前大多数面向视觉的机器学习系统通过采用卷积的优点来利用空域的稀疏性。然而,卷积被实现为对上一层块的密集连接的集合。为了打破对称性,提高学习水平,从论文[11]开始,ConvNets习惯上在特征维度使用随机的稀疏连接表,然而为了进一步优化并行计算,论文[9]中趋向于变回全连接。目前最新的计算机视觉架构有统一的结构。更多的滤波器和更大的批大小要求密集计算的有效使用。 这提出了下一个中间步骤是否有希望的问题:一个架构能利用滤波器水平的稀疏性,正如理论所认为的那样,但能通过利用密集矩阵计算来利用目前的硬件。稀疏矩阵乘法的大量文献(例如[3])认为对于稀疏矩阵乘法,将稀疏矩阵聚类为相对密集的子矩阵会有更佳的性能。在不久的将来会利用类似的方法来进行非均匀深度学习架构的自动构建,这样的想法似乎并不牵强。 Inception架构开始作为案例研究,用于评估一个复杂网络拓扑构建算法的假设输出,该算法试图近似[2]中所示的视觉网络的稀疏结构,并通过密集的、容易获得的组件来覆盖假设结果。尽管是一个非常投机的事情,但与基于[12]的参考网络相比,早期可以观测到适度的收益。随着一点点调整加宽差距,作为[6]和[5]的基础网络,Inception被证明在定位上下文和目标检测中尤其有用。有趣的是,虽然大多数最初的架构选择已被质疑并分离开进行全面测试,但结果证明它们是局部最优的。然而必须谨慎:尽管Inception架构在计算机上领域取得成功,但这是否可以归因于构建其架构的指导原则仍是有疑问的。确保这一点将需要更彻底的分析和验证。 如上图,将稀疏矩阵转换为密集矩阵乘法能有效降低计算量。 这个原理应用到inception上就是要在特征维度上进行分解。传统的卷积层的输入数据只和一种尺度(比如3x3)的卷积核进行卷积,输出固定维度(比如256个特征)的数据,所有256个输出特征基本上是均匀分布在3x3尺度范围上,这可以理解成输出了一个稀疏分布的特征集;而inception模块在多个尺度上提取特征(比如1x1,3x3,5x5),输出的256个特征就不再是均匀分布,而是相关性强的特征聚集在一起(比如1x1的的96个特征聚集在一起,3x3的96个特征聚集在一起,5x5的64个特征聚集在一起),这可以理解成多个密集分布的子特征集。这样的特征集中因为相关性较强的特征聚集在了一起,不相关的非关键特征就被弱化,同样是输出256个特征,inception方法输出的特征“冗余”的信息较少。用这样的“纯”的特征集层层传递最后作为反向计算的输入,自然收敛的速度更快。 Hebbin赫布原理。Hebbin原理是神经科学上的一个理论,解释了在学习的过程中脑中的神经元所发生的变化,用一句话概括就是fire togethter, wire together。赫布认为“两个神经元或者神经元系统,如果总是同时兴奋,就会形成一种‘组合’,其中一个神经元的兴奋会促进另一个的兴奋”。比如狗看到肉会流口水,反复刺激后,脑中识别肉的神经元会和掌管唾液分泌的神经元会相互促进,“缠绕”在一起,以后再看到肉就会更快流出口水。用在inception结构中就是要把相关性强的特征汇聚到一起。这有点类似上面的解释2,把1x1,3x3,5x5的特征分开。因为训练收敛的最终目的就是要提取出独立的特征,所以预先把相关性强的特征汇聚,就能起到加速收敛的作用。...

June 26, 2024 · 149 words · Kurong

GoogleNet V2

GoogLeNet V2 Abstract 训练深度神经网络的复杂性在于,每层输入的分布在训练过程中会发生变化,因为前面的层的参数会发生变化。通过要求较低的学习率和仔细的参数初始化减慢了训练,并且使具有饱和非线性的模型训练起来非常困难。本文将这种现象称为内部协变量转移,并通过标准化层输入来解决这个问题。本文力图使标准化成为模型架构的一部分,并为每个训练小批量数据执行标准化。批标准化使我们能够使用更高的学习率,并且不用太注意初始化。它也作为一个正则化项,在某些情况下不需要Dropout。将批量标准化应用到最先进的图像分类模型上,批标准化在取得相同的精度的情况下,减少了14倍的训练步骤,并以显著的差距击败了原始模型。使用批标准化网络的组合,我们改进了在ImageNet分类上公布的最佳结果:达到了4.9% top-5的验证误差(和4.8%测试误差),超过了人类评估者的准确性。 1. Introduction 随机梯度下降(SGD)已经被证明是训练深度网络的有效方式,并且已经使用诸如动量(Sutskever等,2013)和Adagrad(Duchi等人,2011)等SGD变种取得了最先进的性能。SGD优化网络参数$\Theta$,以最小化损失 $$ \Theta = arg \ min_{\Theta}\frac{1}{N} \sum_{i=1}^{N}ℓ(x_i,\Theta) $$ $x_1...N$是训练数据集。使用SGD,训练将逐步进行,在每一步中,我们考虑一个大小为$m$的小批量数据$x_1...m$。通过计算$\frac{1}{m}\sum^m_{i=1}\frac{∂ℓ(xi,Θ)}{∂Θ}$,使用小批量数据来近似损失函数关于参数的梯度。使用小批量样本,而不是一次一个样本,在一些方面是有帮助的。首先,小批量数据的梯度损失是训练集上的梯度估计,其质量随着批量增加而改善。第二,由于现代计算平台提供的并行性,对一个批次的计算比单个样本计算$m$次效率更高。 虽然随机梯度是简单有效的,但它需要仔细调整模型的超参数,特别是优化中使用的学习速率以及模型参数的初始值。训练的复杂性在于每层的输入受到前面所有层的参数的影响——因此当网络变得更深时,网络参数的微小变化就会被放大。 层输入的分布变化是一个问题,因为这些层需要不断适应新的分布。当学习系统的输入分布发生变化时,据说会经历协变量转移(Shimodaira,2000)。这通常是通过域适应(Jiang,2008)来处理的。然而,协变量转移的概念可以扩展到整个学习系统之外,应用到学习系统的一部分,例如子网络或一层。考虑网络计算 $$ ℓ=F_2(F_1(u,Θ_1),Θ_2) $$ $F_1$和$F_2$是任意变换,学习参数$Θ_1$,$Θ_2$以便最小化损失$ℓ$。学习$Θ_2$可以看作输入$x=F_1(u,Θ_1)$送入到子网络 $$ ℓ=F_2(x,Θ_2) $$ 例如,梯度下降步骤 $$ Θ_2←Θ_2−\frac{α}{m}\sum_{i=1}^{m}\frac{∂F_2(x_i,Θ_2)}{∂Θ_2} $$ (对于批大小$m$和学习率$α$)与输入为$x$的单独网络$F_2$完全等价。因此,输入分布特性使训练更有效——例如训练数据和测试数据之间有相同的分布——也适用于训练子网络。因此$x$的分布在时间上保持固定是有利的。然后,$Θ_2$不必重新调整来补偿x分布的变化。 子网络输入的固定分布对于子网络外的层也有积极的影响。考虑一个激活函数为$g(x)=\frac{1}{1+exp(−x)}$的层,$u$是层输入,权重矩阵$W$和偏置向量$b$是要学习的层参数,$g(x)=\frac{1}{1+exp(−x)}$。随着$|x|$的增加,$g′(x)$趋向于0。这意味着对于$x=Wu+b$的所有维度,除了那些具有小的绝对值之外,流向$u$的梯度将会消失,模型将缓慢的进行训练。然而,由于$x$受$W,b$和下面所有层的参数的影响,训练期间那些参数的改变可能会将$x$的许多维度移动到非线性的饱和状态并减慢收敛。这个影响随着网络深度的增加而放大。在实践中,饱和问题和由此产生的梯度消失通常通过使用修正线性单元(Nair & Hinton, 2010)$ ReLU(x)=max(x,0)$,仔细的初始化(Bengio & Glorot, 2010; Saxe et al., 2013)和小的学习率来解决。然而,如果我们能保证非线性输入的分布在网络训练时保持更稳定,那么优化器将不太可能陷入饱和状态,训练将加速。 本文把训练过程中深度网络内部结点的分布变化称为内部协变量转移,消除它可以保证更快的训练。我们提出了一种新的机制,我们称为为批标准化,它是减少内部协变量转移的一个步骤,这样做可以显著加速深度神经网络的训练。它通过标准化步骤来实现,标准化步骤修正了层输入的均值和方差。批标准化减少了梯度对参数或它们的初始值尺度上的依赖,对通过网络的梯度流动有益。这允许我们使用更高的学习率而没有发散的风险。此外,批标准化使模型正则化并减少了对Dropout(Srivastava et al., 2014)的需求。最后,批标准化通过阻止网络陷入饱和模式让使用饱和非线性成为可能。 在4.2小节,本文将批标准化应用到性能最好的ImageNet分类网络上,并且表明可以使用仅7%的训练步骤来匹配其性能,并且可以进一步超过其准确性一大截。通过使用批标准化训练的网络的集合,最终取得了top-5错误率,其改进了ImageNet分类上已知的最佳结果。 2. Towards Reducing Internal Covariate Shift 由于训练过程中网络参数的变化,本文将内部协变量转移定义为网络激活分布的变化。为了改善训练,以寻求减少内部协变量转移。随着训练的进行,通过固定层输入$x$的分布,期望提高训练速度。众所周知(LeCun et al., 1998b; Wiesler & Ney, 2011)如果对网络的输入进行白化,网络训练将会收敛的更快——即输入线性变换为具有零均值和单位方差,并去相关。当每一层观察下面的层产生的输入时,实现每一层输入进行相同的白化将是有利的。通过白化每一层的输入,将采取措施实现输入的固定分布,消除内部协变量转移的不良影响。 白化,whitening。 白化的目的是去除输入数据的冗余信息。假设训练数据是图像,由于图像中相邻像素之间具有很强的相关性,所以用于训练时输入是冗余的。而白化的目的就是降低输入的冗余性。 输入数据集$X$,经过白化处理后,新的数据$X'$满足两个性质: 特征之间相关性较低; 所有特征具有相同的方差。 本文考虑在每个训练步骤或在某些间隔来白化激活值,通过直接修改网络或根据网络激活值来更改优化方法的参数(Wiesler et al., 2014; Raiko et al....

June 26, 2024 · 292 words · Kurong

Inception V3

Inception V3 Abstract 对许多任务而言,卷积网络是目前最新的计算机视觉解决方案的核心。从2014年开始,深度卷积网络开始变成主流,在各种基准数据集上都取得了实质性成果。对于大多数任务而言,虽然增加的模型大小和计算成本都趋向于转化为直接的质量收益(只要提供足够的标注数据去训练),但计算效率和低参数计数仍是各种应用场景的限制因素,例如移动视觉和大数据场景。目前,我们正在探索增大网络的方法,目标是通过适当的分解卷积和积极的正则化来尽可能地有效利用增加的计算。我们在ILSVRC 2012分类挑战赛的验证集上评估了我们的方法,结果证明我们的方法超过了目前最先进的方法并取得了实质性收益:对于单一框架评估错误率为:21.2% top-1和5.6% top-5,使用的网络计算代价为每次推断需要进行50亿次乘加运算并使用不到2500万的参数。通过四个模型组合和多次评估,我们报告了3.5% top-5和17.3% top-1的错误率。 1. Introduction 从2012年Krizhevsky等人[9]赢得了ImageNet竞赛[16]起,他们的网络“AlexNet”已经成功了应用到了许多计算机视觉任务中,例如目标检测[5],分割[12],行人姿势评估[22],视频分类[8],目标跟踪[23]和超分辨率[3]。 这些成功推动了一个新研究领域,这个领域主要专注于寻找更高效运行的卷积神经网络。从2014年开始,通过利用更深更宽的网络,网络架构的质量得到了明显改善。VGGNet[18]和GoogLeNet[20]在2014 ILSVRC [16]分类挑战上取得了类似的高性能。一个有趣的发现是在分类性能上的收益趋向于转换成各种应用领域上的显著质量收益。这意味着深度卷积架构上的架构改进可以用来改善大多数越来越多地依赖于高质量、可学习视觉特征的其它计算机视觉任务的性能。网络质量的改善也导致了卷积网络在新领域的应用,在AlexNet特征不能与手工精心设计的解决方案竞争的情况下,例如,检测时的候选区域生成[4]。 尽管VGGNet[18]具有架构简洁的强有力特性,但它的成本很高:评估网络需要大量的计算。另一方面,GoogLeNet[20]的Inception架构也被设计为在内存和计算预算严格限制的情况下也能表现良好。例如,GoogleNet只使用了500万参数,与其前身AlexNet相比减少了12倍,AlexNet使用了6000万参数。此外,VGGNet使用了比AlexNet大约多3倍的参数。 Inception的计算成本也远低于VGGNet或其更高性能的后继者[6]。这使得可以在大数据场景中[17],[13],在大量数据需要以合理成本处理的情况下或在内存或计算能力固有地受限情况下,利用Inception网络变得可行,例如在移动视觉设定中。通过应用针对内存使用的专门解决方案[2],[15]或通过计算技巧优化某些操作的执行[10],可以减轻部分这些问题。但是这些方法增加了额外的复杂性。此外,这些方法也可以应用于优化Inception架构,再次扩大效率差距。 然而,Inception架构的复杂性使得更难以对网络进行更改。如果单纯地放大架构,大部分的计算收益可能会立即丢失。此外,[20]并没有提供关于导致GoogLeNet架构的各种设计决策的贡献因素的明确描述。这使得它更难以在适应新用例的同时保持其效率。例如,如果认为有必要增加一些Inception模型的能力,将滤波器组大小的数量加倍的简单变换将导致计算成本和参数数量增加4倍。这在许多实际情况下可能会被证明是禁止或不合理的,尤其是在相关收益适中的情况下。在本文中,我们从描述一些一般原则和优化思想开始,对于以有效的方式扩展卷积网络来说,这被证实是有用的。虽然我们的原则不局限于Inception类型的网络,但是在这种情况下,它们更容易观察,因为Inception类型构建块的通用结构足够灵活,可以自然地合并这些约束。这通过大量使用降维和Inception模块的并行结构来实现,这允许减轻结构变化对邻近组件的影响。但是,对于这样做需要谨慎,因为应该遵守一些指导原则来保持模型的高质量。 2. General Design Principles 这里我们将介绍一些具有卷积网络的、具有各种架构选择的、基于大规模实验的设计原则。在这一点上,以下原则的效用是推测性的,另外将来的实验证据将对于评估其准确性和有效领域是必要的。然而,严重偏移这些原则往往会导致网络质量的恶化,修正检测到的这些偏差状况通常会导致改进的架构。 避免表征瓶颈,尤其是在网络的前面。前馈网络可以由从输入层到分类器或回归器的非循环图表示。这为信息流定义了一个明确的方向,对于分离输入输出的任何切口,可以访问通过切口的信息量。应该避免极端压缩的瓶颈。一般来说,在达到用于着手任务的最终表示之前,表示大小应该从输入到输出缓慢减小。理论上,信息内容不能仅通过表示的维度来评估,因为它丢弃了诸如相关结构的重要因素,而维度仅提供信息内容的粗略估计。 更高维度的表示在网络中更容易局部处理。在卷积网络中增加每个图块的激活允许更多解耦的特征,所产生的网络将训练更快。 空间聚合可以在较低维度嵌入上完成,而不会在表示能力上造成许多或任何损失。例如,在执行更多展开(例如3×3)卷积之前,可以在空间聚合之前减小输入表示的维度,没有预期的严重不利影响。我们假设,如果在空间聚合上下文中使用输出,则相邻单元之间的强相关性会导致维度缩减期间的信息损失少得多。鉴于这些信号应该易于压缩,因此尺寸减小甚至会促进更快的学习。 平衡网络的宽度和深度。通过平衡每个阶段的滤波器数量和网络的深度可以达到网络的最佳性能,增加网络的宽度和深度可以有助于更高质量的网络。然而,如果两者并行增加,则可以达到恒定计算量的最佳改进。因此,计算预算应该在网络的深度和宽度之间以平衡方式进行分配。 虽然这些原则可能是有意义的,但并不是开箱即用的直接使用它们来提高网络质量。我们的想法是仅在不明确的情况下才明智地使用它们。 3. Factorizing Convolutions with Large Filter Size GoogLeNet网络[20]的大部分初始收益来源于大量地使用降维。这可以被视为以计算有效的方式分解卷积的特例。考虑例如1×1卷积层之后接一个3×3卷积层的情况。在视觉网络中,预期相近激活的输出是高度相关的。因此,我们可以预期,它们的激活可以在聚合之前被减少,并且这应该会导致类似的富有表现力的局部表示。 图1。 Mini网络替换5×5卷积。 在这里,我们将在各种设定中探索卷积分解的其它方法,特别是为了提高解决方案的计算效率。由于Inception网络是全卷积的,每个权重对应每个激活的一次乘法。因此,任何计算成本的降低会导致参数数量减少。这意味着,通过适当的分解,我们可以得到更多的解耦参数,从而加快训练。此外,我们可以使用计算和内存节省来增加我们网络的滤波器组的大小,同时保持我们在单个计算机上训练每个模型副本的能力。 3.1. Factorization into smaller convolutions 具有较大空间滤波器(例如5×5或7×7)的卷积在计算方面往往不成比例地昂贵。例如,具有n个滤波器的5×5卷积在具有m个滤波器的网格上比具有相同数量的滤波器的3×3卷积的计算量高25/9=2.78倍。当然,5×5滤波器在更前面的层可以捕获更远的单元激活之间、信号之间的依赖关系,因此滤波器几何尺寸的减小带来了很大的表现力。然而,我们可以询问5×5卷积是否可以被具有相同输入尺寸和输出深度的参数较小的多层网络所取代。如果我们放大5×5卷积的计算图,我们看到每个输出看起来像一个小的完全连接的网络,在其输入上滑过5×5的块(见图1)。由于我们正在构建视觉网络,所以通过两层的卷积结构再次利用平移不变性来代替全连接的组件似乎是很自然的:第一层是3×3卷积,第二层是在第一层的3×3输出网格之上的一个全连接层(见图1)。通过在输入激活网格上滑动这个小网络,用两层3×3卷积来替换5×5卷积(比较图4和5)。 该设定通过相邻块之间共享权重明显减少了参数数量。为了分析预期的计算成本节省,我们将对典型的情况进行一些简单的假设:我们可以假设$n=αm$,也就是我们想通过常数$α$因子来改变激活/单元的数量。由于5×5卷积是聚合的,$α$通常比1略大(在GoogLeNet中大约是1.5)。用两个层替换5×5层,似乎可以通过两个步骤来实现扩展:在两个步骤中通过$\sqrtα$增加滤波器数量。为了简化我们的估计,通过选择$α=1$(无扩展),如果我们单纯地滑动网络而不重新使用相邻网格图块之间的计算,我们将增加计算成本。滑动该网络可以由两个3×3的卷积层表示,其重用相邻图块之间的激活。这样,我们最终得到一个计算量减少到$\frac{9+9}{25}×$的网络,通过这种分解导致了28%的相对增益。每个参数在每个单元的激活计算中只使用一次,所以参数计数具有完全相同的节约。不过,这个设置提出了两个一般性的问题:这种替换是否会导致任何表征力的丧失?如果我们的主要目标是对计算的线性部分进行分解,是不是建议在第一层保持线性激活?我们已经进行了几个控制实验(例如参见图2),并且在分解的所有阶段中使用线性激活总是逊于使用修正线性单元。我们将这个收益归因于网络可以学习的增强的空间变化,特别是如果我们对输出激活进行批标准化[7]。当对维度减小组件使用线性激活时,可以看到类似的效果。 图2。 两个Inception模型间几个控制实验中的一个,其中一个分解为线性层+ ReLU层,另一个使用两个ReLU层。在三亿八千六百万次运算后,在验证集上前者达到了76.2% top-1准确率,后者达到了77.2% top-1的准确率。 3.2. Spatial Factorization into Asymmetric Convolutions 上述结果表明,大于3×3的卷积滤波器可能不是通常有用的,因为它们总是可以简化为3×3卷积层序列。我们仍然可以问这个问题,是否应该把它们分解成更小的,例如2×2的卷积。然而,通过使用非对称卷积,可以做出甚至比2×2更好的效果,即n×1。例如使用3×1卷积后接一个1×3卷积,相当于以与3×3卷积相同的感受野滑动两层网络(参见图3)。如果输入和输出滤波器的数量相等,那么对于相同数量的输出滤波器,两层解决方案便宜33%。相比之下,将3×3卷积分解为两个2×2卷积表示仅节省了11%的计算量。 图3。 替换3×3卷积的Mini网络。网络的更低层由带有3个输出单元的3×1构成。 在理论上,我们可以进一步论证,可以通过1×n卷积和后面接一个n×1卷积替换任何n×n卷积,并且随着n增长,计算成本节省显著增加(见图6)。实际上,我们发现,采用这种分解在前面的层次上不能很好地工作,但是对于中等网格尺寸(在m×m特征图上,其中m范围在12到20之间),其给出了非常好的结果。在这个水平上,通过使用1×7卷积,然后是7×1卷积可以获得非常好的结果。 图4。 [20]中描述的最初的Inception模块. 图5。 Inception模块中每个5×5卷积由两个3×3卷积替换,正如第2小节中原则3建议的那样。 图6。 n×n卷积分解后的Inception模块。在我们提出的架构中,对17×17的网格我们选择n=7。(滤波器尺寸可以通过原则3选择) 4. Utility of Auxiliary Classifiers (这一部分内容已过时,好像只在GAN中使用)...

June 26, 2024 · 189 words · Kurong

NIN

NIN Abstract 本文提出了一种新的网络结构,称为 “网络中的网络”(NIN),以提高模型对感受野内局部图块的可辨别性。传统的卷积层使用线性滤波器和非线性激活函数来扫描输入。相反,本文建立了结构更复杂的微神经网络,以抽象出感受野内的数据。本文用MLP来实例化微神经网络,MLP是一个有效的函数近似器。通过类似CNN的方式在输入上滑动微网络来提取特征图,然后将它们送入下一层。深度NIN可以通过堆叠多个上述结构来实现。通过微网络加强局部建模,能够在分类层中利用全局平均池化的特征图,这比传统的全连接层更容易解释,也更不容易过拟合。本文在CIFAR-10和CIFAR-100上用NIN取得了最先进的分类性能,其在SVHN和MNIST数据集上也有合理的表现。 1 Introduction 卷积神经网络[1]由交替的卷积层和池化层组成。卷积层采取线性滤波器和底层感受野的内积,然后在输入的每个局部使用非线性激活函数,由此产生的输出称为特征图。 CNN中的卷积滤波器是基础数据块的广义线性模型(GLM),本文认为GLM的抽象程度很低。这里所说的抽象性是指特征对同一概念的变体是不变的[2]。用一个更有力的非线性函数近似器代替GLM可以提高局部模型的抽象能力。当潜在概念的样本是线性可分离的,即概念的变体都在GLM定义的分离平面的一侧时,GLM可以实现良好的抽象程度。因此,传统的CNN隐含了潜在概念是线性可分离的假设。然而,同一概念的数据往往存在于一个非线性流形上,因此捕捉这些概念的表征通常是输入的高度非线性函数。在NIN中,GLM被一个 “微网络 “结构所取代,它是一个通用的非线性函数近似器。在这项工作中,本文选择MLP[3]作为微网络的实例,它是一个通用的函数逼近器并可通过反向传播训练的神经网络。 图1:线性卷积层和mlpconv层的比较。线性卷积层包括一个线性滤波器,而mlpconv层包括一个微型网络(本文选择mlp)。这两个层都将局部感受野映射为潜伏概念的置信度值。 由此产生的结构,本文称之为mlpconv层,与图1中的CNN进行比较。线性卷积层和mlpconv层都将局部感受野映射到输出的特征向量上。mlpconv用MLP将输入的局部图块映射到输出特征向量,MLP由多个具有非线性激活函数的全连接层组成,它的权重在所有的局部感受区之间共享。通过在输入上滑动MLP获得特征图,其方式与CNN类似,然后被送入下一层。NIN的整体结构是多个mlpconv层的堆叠。 在CNN中,本文没有采用传统的全连接层进行分类,而是通过全局平均池化层直接输出最后一个mlpconv层的特征图的空间平均值作为类别的置信度,然后将所得向量送入softmax层。在传统的CNN中,由于全连接层作为中间的黑匣子,很难解释来自目标成本层的类别级信息是如何传递回前一个卷积层的。相比之下,全局平均集合更有意义,也更容易解释,因为它强化了特征图和类别之间的对应关系,而这是通过使用微网络进行更强的局部建模实现的。此外,全连接层容易出现过拟合,并严重依赖dropout正则化[4] [5],而全局平均池化本身就是一个结构正则化器,它天生就能防止整体结构的过拟合。 作者认为传统的GLM在特征提取的过程中根本不能区分这些中间过程里所形成的特征元素,除非这些特征元素是线性可分的。所以,在作者的眼里,传统CNN有效的一个假设就是这些特征元素能够线性可分。 例如在一个用于识别汽车图片的卷积网络模型中,靠前的卷积层会被用于提取一些粗糙的原始的特征(如:线段、棱角等);而靠后的卷积层则会以前面的为基础提取到更为高级一些的特征(如:轮胎、车门等)。同时,在每个阶段里所形的这些特征原始都被称之为 “latent concept”,因为事实上还有很多抽像的特征我们人类是无法辨认的(它可能是有用的特征,也可能不是),所以被称为“latent”。作者认为,传统的GLM在进行每一阶段的特征提取中,根本不足以区分这些特征元素——例如某个卷积层可能提取得到了很多“轮胎”这一类的same concept,但是GLM区分不了这些非线性的特征(到底是哪一类汽车的轮胎)——所以导致最终的任务精度不那么的尽如人意。 2 Convolutional Neural Networks 经典的卷积神经元网络[1]由交替堆叠的卷积层和空间汇集层组成。卷积层通过线性卷积滤波器再加上非线性激活函数(rectifier, sigmoid, tanh等)生成特征图。以ReLU为例,特征图可以计算如下: $$ f_{i,j,k}=max(w_k^Tx_{i,j},0). $$ 是特征图中每个像素的索引, $x_{ij}$ 表示输入patch$(i, j)$, $k$ 用于索引特征图的通道。 当潜在概念的实例是线性可分离时,这种线性卷积足以实现抽象化。然而,实现良好抽象的表征通常是输入数据的高度非线性函数。在传统的CNN中,这一点可以通过利用一套过度完整的滤波器[6]来弥补,以覆盖潜概念的所有变化。也就是说,可以学习单个线性滤波器来检测同一概念的不同变化。然而,对一个概念有太多的过滤器会给下一层带来额外的负担,它需要考虑上一层的所有变化的组合[7]。如同在CNN中,来自高层的过滤器映射到原始输入中的更大区域。它通过结合下面一层的低级概念来生成一个更高级的概念。因此,本文认为,在将它们组合成更高层次的概念之前,对每个局部图块做一个更好的抽象是有益的。 在最近的maxout网络[8]中,通过对仿生特征图(仿生特征图是不应用激活函数的线性卷积的直接结果)的最大集合来减少特征图的数量。对线性函数的最大化使得一个分片线性逼近器能够逼近任何凸函数。与进行线性分离的传统卷积层相比,maxout网络更有效力,因为它可以分离位于凸集内的概念。这一改进使maxout网络在几个基准数据集上具有最佳性能。 然而,maxout网络强加了一个先验,即潜在概念的实例位于输入空间的凸集内,这并不一定成立。当潜在概念的分布更加复杂时,有必要采用一个更通用的函数近似器。所以本文试图通过引入新颖的 “网中网 “结构来实现这一点,在每个卷积层中引入一个微型网络来计算局部斑块的更抽象的特征。 在以前的一些工作中已经提出在输入上滑动微网络。例如,结构化多层感知器(SMLP)[9]在输入图像的不同斑块上应用共享多层感知器;在另一项工作中,基于神经网络的过滤器被训练用于人脸检测[10]。然而,它们都是为特定的问题而设计的,并且都只包含滑动网络结构中的一个层。NIN是从一个更普遍的角度提出的,微网络被整合到CNN结构中,以寻求对各级特征的更好的抽象。 可以先利用浅层的网络来对各个阶段里所形成的非线性特征元素进行特征表示,然后再通过卷积层来完成分类类别间线性不可分的抽象表示,以此来提高模型最后的任务精度。 3 Network In Network 本文首先强调了提出的 “网中网 “结构的关键部分:MLP卷积层和全局平均池层,分别在第3.1和第3.2节。然后,在第3.3节中详细介绍整个NIN。 3.1 MLP Convolution Layers 鉴于没有关于潜在概念分布的先验,最好使用通用函数近似器对局部斑块进行特征提取,因为它能够对潜在概念的更抽象的表示进行近似。径向基网络和MLP是两个著名的通用函数近似器。本文在这项工作中选择MLP有两个原因。首先,MLP与卷积神经网络的结构兼容,它是用反向传播法训练的。第二,MLP本身可以是一个深度模型,这与特征重用的精神是一致的[2]。这种新型的层在本文中被称为mlpconv,其中MLP取代了GLM对输入进行卷积。图1说明了线性卷积层和mlpconv层的区别。mlpconv层所进行的计算如下所示: 这里$n$是MLP中的层数。MLP中使用ReLU作为激活函数。 从跨通道(跨特征图)池化的角度来看,式2相当于在正常卷积层上的级联跨通道参数池化。每个池化层对输入的特征图进行加权线性重组,然后经过一个ReLU。跨通道池化后的特征图在下一层中再次进行跨通道池化。这种级联式跨渠道参数池结构允许跨渠道信息的复杂和可学习的相互作用。 跨信道参数池层也相当于一个具有1x1卷积核的卷积层,这种解释可以直接理解NIN的结构。 图2:Network In Network的整体结构。在本文中,NINs包括三个mlpconv层和一个全局平均池层的堆叠. 与maxout层的比较:maxout网络中的maxout层在多个仿生特征图上进行max pooling[8]。maxout层的特征图的计算方法如下: $$ f_{i,j,k}=max(w_{k_m}^{T}x_{i,j}). $$ 线性函数的Maxout形成了一个片状线性函数,能够对任何凸函数进行建模。对于一个凸函数,函数值低于特定阈值的样本形成一个凸集。因此,通过近似局部补丁的凸函数,maxout有能力为样本在凸集内的概念形成分离超平面(即$l_2$球、凸锥)。Mlpconv层与maxout层的不同之处在于,凸函数近似器被一个通用函数近似器所取代,它在模拟各种潜在概念的分布方面具有更大的能力。 3.2 Global Average Pooling 传统的卷积神经网络在网络的低层进行卷积。对于分类来说,最后一个卷积层的特征图矢量化,并送入全连接层,然后是softmax逻辑回归层[4] [8] [11]。这种结构是卷积结构与传统神经网络分类器的桥梁。...

June 26, 2024 · 132 words · Kurong

ResNet

ResNet Abstract 更深的神经网络更难训练。我们提出了一种残差学习框架来减轻网络训练,这些网络比以前使用的网络更深。我们明确地将层变为学习关于层输入的残差函数,而不是学习未参考的函数。我们提供了全面的经验证据说明这些残差网络很容易优化,并可以显著增加深度来提高准确性。在ImageNet数据集上我们评估了深度高达152层的残差网络——比VGG[40]深8倍但仍具有较低的复杂度。这些残差网络的集合在ImageNet测试集上取得了3.57%的错误率。这个结果在ILSVRC 2015分类任务上赢得了第一名。我们也在CIFAR-10上分析了100层和1000层的残差网络。 对于许多视觉识别任务而言,表示的深度是至关重要的。仅由于我们非常深度的表示,我们便在COCO目标检测数据集上得到了28%的相对提高。深度残差网络是我们向ILSVRC和COCO 2015竞赛提交的基础,我们也赢得了ImageNet检测任务,ImageNet定位任务,COCO检测和COCO分割任务的第一名。 1. Introduction 深度卷积神经网络[22, 21]导致了图像分类[21, 49, 39]的一系列突破。深度网络自然地将低/中/高级特征[49]和分类器以端到端多层方式进行集成,特征的“级别”可以通过堆叠层的数量(深度)来丰富。最近的证据[40, 43]显示网络深度至关重要,在具有挑战性的ImageNet数据集上领先的结果都采用了“非常深”[40]的模型,深度从16 [40]到30 [16]之间。许多其它重要的视觉识别任务[7, 11, 6, 32, 27]也从非常深的模型中得到了极大受益。 在深度重要性的推动下,出现了一个问题:学些更好的网络是否像堆叠更多的层一样容易?回答这个问题的一个障碍是梯度消失/爆炸[14, 1, 8]这个众所周知的问题,它从一开始就阻碍了收敛。然而,这个问题通过标准初始化[23, 8, 36, 12]和中间标准化层[16]在很大程度上已经解决,这使得数十层的网络能通过具有反向传播的随机梯度下降(SGD)开始收敛。 当更深的网络能够开始收敛时,暴露了一个退化问题:随着网络深度的增加,准确率达到饱和(这可能并不奇怪)然后迅速下降。意外的是,这种下降不是由过拟合引起的,并且在适当的深度模型上添加更多的层会导致更高的训练误差,正如[10, 41]中报告的那样,并且由我们的实验完全证实。图1显示了一个典型的例子。 图1:20层和56层的“简单”网络在CIFAR-10上的训练误差(左)和测试误差(右)。更深的网络有更高的训练误差和测试误差。ImageNet上的类似现象如图4所示。 退化(训练准确率)表明不是所有的系统都很容易优化。让我们考虑一个较浅的架构及其更深层次的对象,为其添加更多的层。存在通过构建得到更深层模型的解决方案:添加的层是恒等映射,其他层是从学习到的较浅模型的拷贝。 这种构造解决方案的存在表明,较深的模型不应该产生比其对应的较浅模型更高的训练误差。但是实验表明,我们目前现有的解决方案无法找到与构建的解决方案相比相对不错或更好的解决方案(或在合理的时间内无法实现)。 在本文中,我们通过引入深度残差学习框架解决了退化问题。我们明确地让这些层拟合残差映射,而不是希望每几个堆叠的层直接拟合期望的基础映射。形式上,将期望的基础映射表示为$H(x)$,我们将堆叠的非线性层拟合另一个映射$F(x):=H(x)−x$。原始的映射重写为$F(x)+x$。我们假设残差映射比原始的、未参考的映射更容易优化。在极端情况下,如果一个恒等映射是最优的,那么将残差置为零比通过一堆非线性层来拟合恒等映射更容易。 公式$F(x)+x$可以通过带有“快捷连接”的前向神经网络(图2)来实现。快捷连接[2, 33, 48]是那些跳过一层或更多层的连接。在我们的案例中,快捷连接简单地执行恒等映射,并将其输出添加到堆叠层的输出(图2)。恒等快捷连接既不增加额外的参数也不增加计算复杂度。整个网络仍然可以由带有反向传播的SGD进行端到端的训练,并且可以使用公共库(例如,Caffe [19])轻松实现,而无需修改求解器。 图2:残差学习的构建块 我们在ImageNet[35]上进行了综合实验来显示退化问题并评估我们的方法。我们发现:1)我们极深的残差网络易于优化,但当深度增加时,对应的“简单”网络(简单堆叠层)表现出更高的训练误差;2)我们的深度残差网络可以从大大增加的深度中轻松获得准确性收益,生成的结果实质上比以前的网络更好。 CIFAR-10数据集上[20]也显示出类似的现象,这表明了优化的困难以及我们的方法的影响不仅仅是针对一个特定的数据集。我们在这个数据集上展示了成功训练的超过100层的模型,并探索了超过1000层的模型。 在ImageNet分类数据集[35]中,我们通过非常深的残差网络获得了很好的结果。我们的152层残差网络是ImageNet上最深的网络,同时还具有比VGG网络[40]更低的复杂性。我们的模型集合在ImageNet测试集上有3.57% top-5的错误率,并在ILSVRC 2015分类比赛中获得了第一名。极深的表示在其它识别任务中也有极好的泛化性能,并带领我们在进一步赢得了第一名:包括ILSVRC & COCO 2015竞赛中的ImageNet检测,ImageNet定位,COCO检测和COCO分割。坚实的证据表明残差学习准则是通用的,并且我们期望它适用于其它的视觉和非视觉问题。 2. Related Work 残差表示。在图像识别中,VLAD[18]是一种通过关于字典的残差向量进行编码的表示形式,Fisher矢量[30]可以表示为VLAD的概率版本[18]。它们都是图像检索和图像分类[4,47]中强大的浅层表示。对于矢量量化,编码残差矢量[17]被证明比编码原始矢量更有效。 在低级视觉和计算机图形学中,为了求解偏微分方程(PDE),广泛使用的Multigrid方法[3]将系统重构为在多个尺度上的子问题,其中每个子问题负责较粗尺度和较细尺度的残差解。Multigrid的替代方法是层次化基础预处理[44,45],它依赖于表示两个尺度之间残差向量的变量。已经被证明[3,44,45]这些求解器比不知道解的残差性质的标准求解器收敛得更快。这些方法表明,良好的重构或预处理可以简化优化。 快捷连接。导致快捷连接[2,33,48]的实践和理论已经被研究了很长时间。训练多层感知机(MLP)的早期实践是添加一个线性层来连接网络的输入和输出[33,48]。在[43,24]中,一些中间层直接连接到辅助分类器,用于解决梯度消失/爆炸。论文[38,37,31,46]提出了通过快捷连接实现层间响应,梯度和传播误差的方法。在[43]中,一个“inception”层由一个快捷分支和一些更深的分支组成。 和我们同时进行的工作,“highway networks” [41, 42]提出了门功能[15]的快捷连接。这些门是数据相关且有参数的,与我们不具有参数的恒等快捷连接相反。当门控快捷连接“关闭”(接近零)时,高速网络中的层表示非残差函数。相反,我们的公式总是学习残差函数;我们的恒等快捷连接永远不会关闭,所有的信息总是通过,还有额外的残差函数要学习。此外,高速网络还没有证实极度增加的深度(例如,超过100个层)带来的准确性收益。 3. Deep Residual Learning 3.1. Residual Learning 我们考虑$H(x)$作为几个堆叠层(不必是整个网络)要拟合的基础映射,xx表示这些层中第一层的输入。假设多个非线性层可以渐近地近似复杂函数,它等价于假设它们可以渐近地近似残差函数,即$H(x)−x$(假设输入输出是相同维度)。因此,我们明确让这些层近似参数函数 $F(x):=H(x)−x$,而不是期望堆叠层近似$H(x)$。因此原始函数变为$F(x)+x$。尽管两种形式应该都能渐近地近似要求的函数(如假设),但学习的难易程度可能是不同的。 关于退化问题的反直觉现象激发了这种重构(图1左)。正如我们在引言中讨论的那样,如果添加的层可以被构建为恒等映射,更深模型的训练误差应该不大于它对应的更浅版本。退化问题表明求解器通过多个非线性层来近似恒等映射可能有困难。通过残差学习的重构,如果恒等映射是最优的,求解器可能简单地将多个非线性连接的权重推向零来接近恒等映射。 在实际情况下,恒等映射不太可能是最优的,但是我们的重构可能有助于对问题进行预处理。如果最优函数比零映射更接近于恒等映射,则求解器应该更容易找到关于恒等映射的抖动,而不是将该函数作为新函数来学习。我们通过实验(图7)显示学习的残差函数通常有更小的响应,表明恒等映射提供了合理的预处理。 图7:层响应在CIFAR-10上的标准差(std)。这些响应是每个3×3层的输出,在BN之后非线性之前。上面:以原始顺序显示层。下面:响应按降序排列。 3.2. Identity Mapping by Shortcuts 我们每隔几个堆叠层采用残差学习。构建块如图2所示。在本文中我们考虑构建块正式定义为: $$ y=F(x,W_i)+x $$ $x$和$y$是考虑的层的输入和输出向量。函数$F(x,Wi)$表示要学习的残差映射。图2中的例子有两层,$F=W_2σ(W_1x)$中$σ$表示ReLU[29],为了简化写法忽略偏置项。$F+x$操作通过快捷连接和各个元素相加来执行。在相加之后我们采纳了第二种非线性(即$σ(y)$,看图2)。...

June 26, 2024 · 170 words · Kurong

VGG

VGG ABSTRACT 本文研究了卷积网络深度在大规模的图像识别环境下对准确性的影响。主要贡献是使用非常小的(3×3)卷积滤波器架构对网络深度的增加进行了全面评估,这表明通过将深度推到16-19加权层可以实现对现有技术配置的显著改进。这些发现是ImageNet Challenge 2014提交的基础,本文作者团队在定位和分类过程中分别获得了第一名和第二名。 1 INTRODUCTION 随着ConvNets在计算机视觉领域越来越商品化,为了达到更好的准确性,已经进行了许多尝试来改进Krizhevsky等人(2012)最初的架构。例如,ILSVRC-2013(Zeiler&Fergus,2013;Sermanet等,2014)表现最佳的提交使用了更小的感受窗口尺寸和更小的第一卷积层步长。另一条改进措施在整个图像和多个尺度上对网络进行密集地训练和测试(Sermanet等,2014;Howard,2014)。在本文中,解决了ConvNet架构设计的另一个重要方面——其深度。为此修正了架构的其它参数,并通过添加更多的卷积层来稳定地增加网络的深度,这是可行的,因为在所有层中使用非常小的(3×3)卷积滤波器。 本文的其余部分组织如下。在第2节,描述了ConvNet配置。图像分类训练和评估的细节在第3节,并在第4节中在ILSVRC分类任务上对配置进行了比较。第5节总结了论文。 2 CONVNET CONFIGURATIONS 为了衡量ConvNet深度在公平环境中所带来的改进,所有的ConvNet层配置都使用相同的规则,灵感来自Ciresan等(2011);Krizhevsky等人(2012年)。在本节中,首先描述ConvNet配置的通用设计(第2.1节),然后详细说明评估中使用的具体配置(第2.2节)。最后,网络的设计选择将在2.3节进行讨论并与现有技术进行比较。 2.1 ARCHITECTURE 在训练期间,ConvNet的输入是固定大小的224×224 RGB图像。唯一的预处理是从每个像素中减去在训练集上计算的RGB均值。图像通过若干卷积(conv.)层,选择使用感受野很小的滤波器:3×3(这是捕获图像左/右,上/下,中心特征的最小尺寸)。在其中一种配置中还使用了1×1卷积滤波器,1×1卷积可以看作输入通道的线性变换(后面是非线性)。卷积步长固定为1个像素;卷积层输入的空间填充要满足卷积之后保留空间分辨率,即3×3卷积层的填充为1个像素。空间池化由五个最大池化层进行,这些层在一些卷积层之后(不是所有的卷积层之后都是最大池化)。在2×2像素窗口上进行最大池化,步长为2。 一堆卷积层(在不同架构中具有不同深度)之后是三个全连接(FC)层:前两个每个都有4096个通道,第三个执行1000维ILSVRC分类,因此包含1000个通道(一个通道对应一个类别)。最后一层是soft-max层。所有网络中全连接层的配置是相同的。 所有隐藏层都配备了ReLU。可以注意到,所有网络(除了一个)都不包含LRN(Krizhevsky等,2012):将在第4节看到,这种规范化并不能提高在ILSVRC数据集上的性能,但增加了内存消耗和计算时间。在应用的地方,LRN层的参数是(Krizhevsky等,2012)的参数。 2.2 CONFIGURATIONS 本文中评估的ConvNet配置在表1中列出,每列为一个网络。接下来将按A-E顺序来提及网络。所有配置都遵循2.1节提出的通用设计,并且仅是深度不同:从网络A中的11个加权层(8个卷积层和3个FC层)到网络E中的19个加权层(16个卷积层和3个FC层)。卷积层的宽度(通道数)相当小,从第一层中的64开始,然后在每个最大池化层之后增加2倍,直到达到512。 ConvNet配置(以列显示)。随着更多的层被添加,配置的深度从左(A)增加到右(E)(添加的层以粗体显示)。卷积层参数表示为“conv⟨感受野大小⟩-通道数⟩”。为了简洁起见,不显示ReLU激活功能。 在表2中,包含了每个配置的参数数量。尽管深度很大,但网络中权重数量并不大于具有更大卷积层宽度和感受野的较浅网络中的权重数量(144M的权重在(Sermanet等人,2014)中)。 表2:参数数量(百万级别) 2.3 DISCUSSION 本文的ConvNet配置与ILSVRC-2012(Krizhevsky等,2012)和ILSVRC-2013比赛(Zeiler&Fergus,2013;Sermanet等,2014)表现最佳的参赛提交中使用的ConvNet配置有很大不同。本文在整个网络使用非常小的3×3感受野,与输入的每个像素(步长为1)进行卷积。很容易看到两个3×3卷积层堆叠(没有空间池化)有5×5的有效感受野;三个这样的层具有7×7的有效感受野。 那么我们获得了什么?例如通过使用三个3×3卷积层的堆叠来替换单个7×7层。首先,结合了三个非线性修正层,而不是单一的,这使得决策函数更具判别性。其次,减少了参数的数量:假设三层3×3卷积堆叠的输入和输出有$C$个通道,堆叠卷积层的参数为$3(3^2C^2)=27C^2$个权重;同时,单个7×7卷积层将需要$7^2C^2=49C^2$个参数,即参数多81%。这可以看作是对7×7卷积滤波器进行正则化,迫使它们通过3×3滤波器(在它们之间注入非线性)进行分解。 3 CLASSIFICATION FRAMEWORK 在本节中,将介绍分类ConvNet训练和评估的细节。 3.1 TRAINING ConvNet训练过程通常遵循Krizhevsky等人(2012)(除了从多尺度训练图像中对输入裁剪图像进行采样外,如下文所述)。也就是说,通过使用具有动量的小批量梯度下降(基于反向传播(LeCun等人,1989))优化多项式逻辑回归目标函数来进行训练。批量大小设为256,动量为0.9。训练通过权重衰减(L2惩罚乘子设定为$5\times10^{-4}$)进行正则化,前两个全连接层执行丢弃正则化(丢弃率设定为0.5)。学习率初始设定为$10^{-2}$,然后当验证集准确率停止改善时,减少10倍。学习率总共降低3次,学习在37万次迭代后停止(74个epochs)。经过推测,尽管与(Krizhevsky等,2012)相比本文网络参数更多,网络的深度更大,但网络需要更小的epoch就可以收敛,这是由于(a)由更大的深度和更小的卷积滤波器尺寸引起的隐式正则化,(b)某些层的预初始化。 网络权重的初始化是重要的,因为由于深度网络中梯度的不稳定,不好的初始化可能会阻碍学习。为了规避这个问题,开始训练配置A(表1),其足够浅能够以随机初始化进行训练。然后,当训练更深的架构时,用网络A的层初始化前四个卷积层和最后三个全连接层(中间层被随机初始化)。没有减少预初始化层的学习率,允许他们在学习过程中改变。对于随机初始化(如果应用),选择从均值为0和方差为$10^{-2}$的正态分布中采样权重。偏置初始化为零。 为了获得固定大小的224×224 ConvNet输入图像,它们从归一化的训练图像中被随机裁剪(每个图像每次SGD迭代进行一次裁剪)。为了进一步增强训练集,裁剪图像经过了随机水平翻转和随机RGB颜色偏移(Krizhevsky等,2012)。下面解释训练图像归一化。 训练图像大小。令$S$是等轴归一化的训练图像的最小边,ConvNet输入从$S$中裁剪(我们也将S称为训练尺度)。虽然裁剪尺寸固定为224×224,但原则上S可以是不小于224的任何值:对于$S=224$,裁剪图像将捕获整个图像的统计数据,完全扩展训练图像的最小边;对于$S»224$,裁剪图像将对应于图像的一小部分,包含小对象或对象的一部分。 考虑两种方法来设置训练尺度$S$。第一种是修正对应单尺度训练的S(注意,采样裁剪图像中的图像内容仍然可以表示多尺度图像统计)。在本文的实验中评估了以两个固定尺度训练的模型:(已经在现有技术中广泛使用(Krizhevsky等人,2012;Zeiler&Fergus,2013;Sermanet等,2014))和$S=384$。给定ConvNet配置,首先使用$S=256$来训练网络。为了加速$S=384$网络的训练,用$S=256$预训练的权重来进行初始化,使用较小的初始学习率$10^{-3}$。 设置S的第二种方法是多尺度训练,其中每个训练图像通过从一定范围$S_{min}$,$S_{max}$(我们使用$S_{min}=256$和$S_{max}=512$)随机采样$S$来单独进行归一化。由于图像中的目标可能具有不同的大小,因此在训练期间考虑到这一点是有益的。这也可以看作是通过尺度抖动进行训练集增强,其中单个模型被训练在一定尺度范围内识别对象。为了速度,通过对具有相同配置的单尺度模型的所有层进行微调,训练了多尺度模型,并用固定的$S=384$进行预训练。 3.2 TESTING 在测试时,给出训练的ConvNet和输入图像,它按以下方式分类。首先,将其等轴地归一化到预定义的最小图像边,表示为Q(我们也将其称为测试尺度)。我们注意到,Q不一定等于训练尺度S(正如我们在第4节中所示,每个S使用Q的几个值会导致性能改进)。然后,网络以类似于(Sermanet等人,2014)的方式密集地应用于归一化的测试图像上。即,全连接层首先被转换成卷积层(第一FC层转换到7×7卷积层,最后两个FC层转换到1×1卷积层)。然后将所得到的全卷积网络应用于整个(未裁剪)图像上。结果是类得分图的通道数等于类别的数量,以及取决于输入图像大小的可变空间分辨率。最后,为了获得图像的类别分数的固定大小的向量,类得分图在空间上平均(和池化)。我们还通过水平翻转图像来增强测试集;将原始图像和翻转图像的soft-max类后验进行平均,以获得图像的最终分数。 由于全卷积网络被应用在整个图像上,所以不需要在测试时对采样多个裁剪图像(Krizhevsky等,2012),因为它需要网络重新计算每个裁剪图像,这样效率较低。同时,如Szegedy等人(2014)所做的那样,使用大量的裁剪图像可以提高准确度,因为与全卷积网络相比,它使输入图像的采样更精细。此外,由于不同的卷积边界条件,多裁剪图像评估是密集评估的补充:当将ConvNet应用于裁剪图像时,卷积特征图用零填充,而在密集评估的情况下,相同裁剪图像的填充自然会来自于图像的相邻部分(由于卷积和空间池化),这大大增加了整个网络的感受野,因此捕获了更多的上下文。虽然我们认为在实践中,多裁剪图像的计算时间增加并不足以证明准确性的潜在收益,但作为参考,我们还在每个尺度使用50个裁剪图像(5×5规则网格,2次翻转)评估了我们的网络,在3个尺度上总共150个裁剪图像,与Szegedy等人(2014)在4个尺度上使用的144个裁剪图像。 3.3 IMPLEMENTATION DETAILS 略(GPU上的实现细节,模型实现细节,已过时) 4 CLASSIFICATION EXPERIMENTS 在本节中,介绍了描述的ConvNet架构(用于ILSVRC 2012-2014挑战)在ILSVRC-2012数据集上实现的图像分类结果。数据集包括1000个类别的图像,并分为三组:训练(130万张图像),验证(5万张图像)和测试(留有类标签的10万张图像)。使用两个措施评估分类性能:top-1和top-5错误率。前者是多类分类误差,即不正确分类图像的比例;后者是ILSVRC中使用的主要评估标准,并且计算为图像真实类别在前5个预测类别之外的图像比例。 4.1 SINGLE SCALE EVALUATION 首先评估单个ConvNet模型在单尺度上的性能,其层结构配置如2.2节中描述。测试图像大小设置如下:对于固定$S$的$Q=S$,对于抖动$S∈[S_{min},S_{max}],Q=0.5(S_{min}+S_{max})$.结果如表3所示。 表3:在单测试尺度的ConvNet性能 首先注意到,使用局部响应归一化(A-LRN网络)在没有任何归一化层的情况下,对模型A没有改善。因此,在较深的架构(B-E)中不采用归一化。 第二,可以观察到分类误差随着ConvNet深度的增加而减小:从A中的11层到E中的19层。值得注意的是,尽管深度相同,配置C(包含三个1×1卷积层)比在整个网络层中使用3×3卷积的配置D更差。这表明,虽然额外的非线性确实有帮助(C优于B),但也可以通过使用具有非平凡感受野(D比C好)的卷积滤波器来捕获空间上下文。当深度达到19层时,架构的错误率饱和,但更深的模型可能有益于较大的数据集。同时还将网络B与具有5×5卷积层的浅层网络进行了比较,浅层网络可以通过用单个5×5卷积层替换B中每对3×3卷积层得到(其具有相同的感受野如第2.3节所述)。测量的浅层网络top-1错误率比网络B的top-1错误率(在中心裁剪图像上)高7%,这证实了具有小滤波器的深层网络优于具有较大滤波器的浅层网络。 最后,训练时的尺度抖动($S∈[256;512]$)得到了与固定最小边($S=256$或$S=384$)的图像训练相比更好的结果,即使在测试时使用单尺度。这证实了通过尺度抖动进行的训练集增强确实有助于捕获多尺度图像统计。 4.2 MULTI-SCALE EVALUATION 在单尺度上评估ConvNet模型后,现在评估测试时尺度抖动的影响。它包括在一张测试图像的几个归一化版本上运行模型(对应于不同的Q值),然后对所得到的类别后验进行平均。考虑到训练和测试尺度之间的巨大差异会导致性能下降,用固定S训练的模型在三个测试图像尺度上进行了评估,接近于训练一次: $Q=S−32,S,S+32$。同时,训练时的尺度抖动允许网络在测试时应用于更广的尺度范围,所以用变量$S∈[S_{min};S_{max}]$训练的模型在更大的尺寸范围$Q = S_{min}, 0....

June 26, 2024 · 106 words · Kurong

AlexNet

AlexNet Abstract 本文模型在2010的ImageNet LSVRC比赛数据集上取得了第一,top-1:37.5%,top-5:15.3%,远远超过第二名的top-5:26.2%。 AlexNet由5个卷积模块(包含了池化)、3个全连接、1个1000-way Softmax组成,使用非饱和神经元并在GPU上训练,同时为了减少过拟合,还采用了一种当时刚出现的正则化方法dropout。 1 Introduction 当时的目标识别为提高性能,常采用增大数据集、更好的model、更好的正则化技术阻止过拟合。 为了从ImageNet的数百万张高分辨的图像中学习到几千个对象,提出了CNNs(Convolutional nerual networks),其具有统计上的稳定性,并且对像素有局部性的依赖(卷积直接导致)。与相同层次的前馈相比,CNNs具有更少的连接和参数,更易于训练,但是理论最优性能稍差于前馈。 论文几个贡献: 在ILSVRC-2010和ILSVRC-2012[2]的ImageNet子集上训练了到目前为止最大的神经网络之一,并取得了迄今为止在这些数据集上报道过的最好结果; 编写了高度优化的2D卷积GPU实现以及训练卷积神经网络内部的所有其它操作; 使用了一些有效的技术来防止过拟合; CNNs的深度很重要,移除任何卷积层(每个卷积层包含的参数不超过模型参数的1%)都会导致更差的性能。 网络尺寸主要受限于目前GPU的内存容量和能忍受的训练时间。CNNs在两个GTX 580 3GB GPU上训练五六天。所有实验表明结果可以简单地通过等待更快的GPU和更大的可用数据集来提高。 2 The Dataset ImageNet数据集有超过1500万的标注高分辨率图像,这些图像属于大约22000个类别。这些图像是从网上收集的,使用了Amazon’s Mechanical Turk的众包工具通过人工标注的。从2010年起,作为Pascal视觉对象挑战赛的一部分,每年都会举办ImageNet大规模视觉识别挑战赛(ILSVRC)。ILSVRC使用ImageNet的一个子集,1000个类别每个类别大约1000张图像。总计,大约120万训练图像,50000张验证图像和15万测试图像。 ILSVRC-2010是ILSVRC竞赛中唯一可以获得测试集标签的版本,因此大多数实验都是在这个版本上运行的。由于模型参加了ILSVRC-2012竞赛,因此在之后包含模型在这个版本的数据集上的结果,这个版本的测试标签是不可获得的。在ImageNet上,按照惯例报告两个错误率:top-1和top-5,top-5错误率是指测试图像的正确标签不在模型认为的五个最可能的便签之中。 mageNet包含各种分辨率的图像,而CNNs要求输入固定维度。因此将图像进行下采样到固定的256×256分辨率。除了在训练集上对像素减去平均活跃度外,不对图像做任何其它的预处理。因此将在原始的RGB像素值上训练网络。 下采样步骤:给定一个矩形图像,首先缩放图像短边长度为256,然后从结果图像中裁剪中心的256×256大小的图像块。 3 The Architecture 下面内容是按照重要性排序的,3.1最重要。 3.1 ReLU Nonlinearity 下面的实验证明:使用饱和的激活函数(如Tanh)慢于非饱和的激活函数(如ReLU),且ReLU能较明显的加快训练速度。 右饱和: 当x趋向于正无穷时,函数的导数趋近于0,此时称为右饱和。 左饱和: 当x趋向于负无穷时,函数的导数趋近于0,此时称为左饱和。 饱和函数和非饱和函数: 当一个函数既满足右饱和,又满足左饱和,则称为饱和函数,否则称为非饱和函数。 常用的饱和激活函数和非饱和激活函数: 饱和激活函数有如Sigmoid和tanh,非饱和激活函数有ReLU;相较于饱和激活函数,非饱和激活函数可以解决“梯度消失”的问题,加快收敛。 采用ReLU的深度卷积神经网络训练时间比等价的Tanh单元要快几倍,对于一个特定的四层卷积网络,在CIFAR-10数据集上达到25%的训练误差所需要的迭代次数可以证实这一点。 使用ReLU的四层卷积神经网络在CIFAR-10数据集上达到25%的训练误差比使用tanh神经元的等价网络(虚线)快六倍。为了使训练尽可能快,每个网络的学习率是单独选择的,且没有采用任何类型的正则化。这里展示的效果的大小随网络结构的变化而变化,但使用ReLU的网络都比等价的饱和神经元快几倍。 3.2 Training on Multiple GPUs (该部分就是在说怎样用GPU训练的,略) CNN架构图解,明确描述了两个GPU之间的责任。在图的顶部,一个GPU运行在部分层上,而在图的底部,另一个GPU运行在部分层上。GPU只在特定的层进行通信。网络的输入是150,528维,网络剩下层的神经元数目分别是253,440–186,624–64,896–64,896–43,264–4096–4096–1000(8层)。 3.3 Local Response Normalization 局部响应归一化有助于泛化。$a^i_{x,y}$表示激活的神经元,通过在$(x,y)$位置应用核$i$,然后应用ReLU计算。响应归一化激活$b^i_{x,y}$通过下式定义: $$ b^i_{x,y}=a^i_{x,y}/(k+α\sum_{j=max(0,i−n/2)}^{min(N−1,i+n/2)}(a^i_{x,y})^2)^β $$ 求和运算在$n$个“毗邻的”核映射的同一位置上执行,$N$是本层的卷积核数目。核映射的顺序当然是任意的,在训练开始前确定。响应归一化的顺序实现了一种侧抑制形式,灵感来自于真实神经元中发现的类型,为使用不同核进行神经元输出计算的较大活动创造了竞争。常量$k$,$n$,$α$,$β$是超参数,它们的值通过验证集确定。在本文中,设$k=2$,$n=5$,$α=0.0001$,$β=0.75$。在特定的层使用的ReLU非线性之后应用了这种归一化。 这个方案与Jarrett等人[11]的局部对比度归一化方案有一定的相似性,但更恰当的称其为“亮度归一化”,因此没有减去均值。响应归一化分别减少了top-1:1.4%,top-5:1.2%的错误率。之后在CIFAR-10数据集上验证了这个方案的有效性:一个四层CNN取得了13%的错误率,而使用归一化取得了11%的错误率。 Local Response Normalization(LRN),局部响应归一化层。 首先要引入一个神经生物学的概念:侧抑制(lateral inhibitio),即指被激活的神经元抑制相邻的神经元。归一化(normaliazation)的目的就是“抑制”,LRN就是借鉴这种侧抑制来实现局部抑制,尤其是我们使用RELU的时候,这种“侧抑制”很有效 ,因而在alexnet里使用有较好的效果。...

June 24, 2024 · 81 words · Kurong