在卷积网络领域有几个有名字的架构。最常见的是:
LeNet。卷积网络的第一个成功应用是由Yann LeCun在20世纪90年代开发的。其中最著名的是用于读取zip编码,数字等的LeNet架构。
本文的主要内容是通过更多地依赖于自动学习来建立更好的模式识别系统, 减少手工设计的启发式学习。展示了手工制作的特征提取可以用精心设计的直接在像素图像上操作的学习机器来代替。
综述了手写体字符识别的各种方法, 并将其与标准手写体数字识别任务进行了比较。用于处理二维形状的可变性的卷积神经网络被证明优于所有其他技术。
在多层神经网络的情况下, 融合知识的一个好方法是将其结构调整为任务。第二部分中介绍的卷积神经网络是专门的神经网络体系结构的一个例子, 它通过使用局部连接模式和对权重施加约束, 将2D形状的不变性知识结合起来。
识别单个模式的通常方法包括将系统划分为两个主要模块。第一个模块, 称为特征抽取器, 转换输入模式, 使它们可以由低维向量或符号的短字符串表示,另一个是可训练的分类器模型。
提出了多层次神经网络训练与反向传播。
AlexNet。第一个在计算机视觉中推广卷积网络的工作是由Alex Krizhevsky,Ilya Sutskever和Geoff Hinton开发的AlexNet。 AlexNet于2012年提交给 ImageNet ILSVRC challenge,并且大大优于季军(与亚军错误率26%相比,排名前5的错误率为16%)。该网络与LeNet具有非常相似的架构,但是更深,更大,并且将卷积层叠加在彼此之上(以前通常只有一个总是被紧接着POOL层的CONV层)。
网络包含8个带权重的层;前5层是卷积层,剩下的3层是全连接层。
使用了非饱和非线性神经元(称为修正线性单元ReLU)并对卷积操作进行了非常有效的GPU实现。
局部响应归一化有助于泛化。训练过程中通常观察采用重叠池化的模型,发现它更难过拟合。
为了减少全连接层的过拟合,采用了数据增强和Dropout(会以0.5的概率对每个隐层神经元的输出设为0)的正则化方法.
第一种数据增强方式包括产生图像变换和水平翻转。
第二种数据增强方式包括改变训练图像的RGB通道的强度。
ZF Net。 ILSVRC 2013获胜者是来自Matthew Zeiler和Rob Fergus的卷积网络。它被称为ZFNet(Zeiler&Fergus Net的简称)。这是对AlexNet的改进,通过调整架构超参数,特别是通过扩大中间卷积层的大小,使第一层上的stride和filter尺寸更小。
Network In Network。来自2014年ICLR,该设计后来为 ResNet 和 Inception 等网络模型所借鉴。改进了传统的CNN网络,采用了少量的参数就松松击败了Alexnet网络,Alexnet网络参数大小是230M,这篇paper的算法才29M,减小了将近10倍。
构建了具有更复杂结构的微神经网络, 以便在感受野中抽象数据。
这个新结构由 mlpconv 层组成, 使用多层感知器卷积输入和一个全局平均池化层作为替换传统 CNN 中全连接层。
通过micro network增强的局部建模, 能够利用全局平均池化在分类层中的特征映射, 全连接层容易 overfitting 和严重依赖于Dropout经常化。全局平均池化在功能映射和类别之间强制对应,充当了防止全局 overfitting 的结构正则化。
选择多层感知器作为微网络的实例化, 它是一个泛函逼近器和神经网络可训练的反向传播。将micro network集成到 CNN 结构中, 追求了对所有级别特征的更好的抽象。
GoogLeNet。 ILSVRC 2014获胜者是来自Szegedy et al.的一个卷积网络,来自Google。其主要贡献是开发了一个 Inception Module,大大减少了网络中的参数数量(与60M的AlexNet相比只有4M)。另外,本文在ConvNet的顶部使用Average Pooling而不是全连接Fully Connected层,从而消除了大量似乎并不重要的参数。 GoogLeNet还有几个后续版本,最新的是Inception-v4。
Inception深度卷积神经网络结构,提高了网络内部计算资源的利用率。通过精心的手工设计,在增加了网络深度和广度的同时保持了计算预算不变。为了优化质量,架构的设计以赫布理论和多尺度处理直觉为基础。
受灵长类视觉皮层神经科学模型的启发,Serre等人使用了一系列固定的不同大小的Gabor滤波器来处理多尺度。我们使用一个了类似的策略。然而,与固定的2层深度模型相反,Inception结构中所有的滤波器是学习到的。此外,Inception层重复了很多次,在GoogLeNet模型中得到了一个22层的深度模型。
Network-in-Network是Lin等人为了增加神经网络表现能力而提出的一种方法。在我们的设置中,1 × 1卷积有两个目的:最关键的是,它们主要是用来作为降维模块来移除卷积瓶颈,否则将会限制我们网络的大小。
基于区域的卷积神经网络(R-CNN)方法。R-CNN将整个检测问题分解为两个子问题:利用低层次的信号例如颜色,纹理以跨类别的方式来产生目标位置候选区域,然后用CNN分类器来识别那些位置上的对象类别。这样一种两个阶段的方法利用了低层特征分割边界框的准确性,也利用了目前的CNN非常强大的分类能力。我们在我们的检测提交中采用了类似的方式,但探索增强这两个阶段,例如对于更高的目标边界框召回使用多盒预测,并融合了更好的边界框候选区域分类方法。
Inception架构的主要想法是考虑怎样近似卷积视觉网络的最优稀疏结构并用容易获得的密集组件进行覆盖。
通过易获得的密集构造块来近似期望的最优稀疏结果是改善计算机视觉神经网络的一种可行方法。
VGGNet。 ILSVRC 2014的亚军是来自Karen Simonyan和Andrew Zisserman的网络,后来被称为VGGNet。其主要贡献在于表明网络的depth是良好表现的关键组成部分。他们最终的最佳网络包含16个CONV / FC层,而且极具吸引力的是,突出非常均匀的架构,从头到尾只执行3x3卷积和2x2pooling。他们的pretrained model 可用于Caffe的即插即用。VGGNet的缺点是评估更为昂贵,使用更多的内存和参数(140M)。这些参数中的大部分都在第一个全连接的层中,因为发现这些FC层可以在没有性能降级的情况下被移除,从而大大减少了必要参数的数量。
使用非常小的(3×3)卷积滤波器架构对网络深度的增加进行了全面评估
这可以看作是对7×7卷积滤波器进行正则化,迫使它们通过3×3滤波器(在它们之间注入非线性)进行分解。
结合1×1卷积层(配置C,表1)是增加决策函数非线性而不影响卷积层感受野的一种方式。即使在我们的案例下,1×1卷积基本上是在相同维度空间上的线性投影(输入和输出通道的数量相同),由修正函数引入附加的非线性。
GooLeNet是基于非常深的ConvNets(22个权重层)和小卷积滤波器(除了3×3,它们也使用了1×1和5×5卷积)。然而,它们的网络拓扑结构比我们的更复杂,并且在第一层中特征图的空间分辨率被更积极地减少,以减少计算量。我们的模型在单网络分类精度方面胜过Szegedy等人。
解决了ConvNet架构设计的另一个重要方面——其深度。修正了架构的其它参数,并通过添加更多的卷积层来稳定地增加网络的深度,这是可行的,因为在所有层中使用非常小的(3×3)卷积滤波器。
表示深度有利于分类精度,并且深度大大增加的传统ConvNet架构(LeCun等,1989;Krizhevsky等,2012)可以实现ImageNet挑战数据集上的最佳性能。
Inception-V3 GoogLeNet经过了Inception V1、Inception V2(BN)的发展以后,Google的Szegedy等人又对其进行了更深层次的研究和拓展,在本文中,作者提出了当前环境下,网络设计的一些重要准则,并根据这些准则,对原有的GoogLeNet进行了改进,提出了一个更加复杂、性能更好的模型框架:Inception V3。
通过1×n卷积和后面接一个n×1卷积替换任何n×n卷积
在神经网络中分解卷积,积极降维,可以导致计算成本相对较低的网络,同时保持高质量。
较低的参数数量、额外的正则化、批标准化的辅助分类器和标签平滑的组合允许在相对适中大小的训练集上训练高质量的网络。
GoogleNet只使用了500万参数,与其前身AlexNet相比减少了12倍,AlexNet使用了6000万参数。此外,VGGNet使用了比AlexNet大约多3倍的参数。
ResNet。 Residual Network由Kaiming He等开发,是ILSVRC 2015的获胜者。它具有特殊的skip connections和 batch normalization的大量使用。该架构在网络末端还缺少全连接层。读者还可以参考Kaiming的演示(video,slides),以及recent experiments 中重现这些网络的实验。 ResNets目前是迄今为止最先进的卷积神经网络模型,并且是在实践中使用ConvNets的默认选择(截至2016年5月10日)。特别是,还可以看到更多最新的进展,调整了Kaiming He et al. Identity Mappings in Deep Residual Networks 最初的架构(2016年3月发布)。
通过引入深度残差学习框架解决了退化问题。明确地让这些层拟合残差映射,而不是希望每几个堆叠的层直接拟合期望的基础映射。
与VGG网络相比,有更少的滤波器和更低的复杂度。
对于矢量量化,编码残差矢量被证明比编码原始矢量更有效。
训练多层感知机(MLP)的早期实践是添加一个线性层来连接网络的输入和输出。在Googlenet中,一些中间层直接连接到辅助分类器,用于解决梯度消失/爆炸,一个“inception”层由一个快捷分支和一些更深的分支组成。DenseNets CVPR 2017上,清华大学的Zhuang Liu、康奈尔大学的Gao Huang和Kilian Q.Weinberger,以及Facebook研究员Laurens van der Maaten 所作论文Densely Connected Convolutional Networks当选 ,与苹果的首篇公开论文Learning From Simulated and Unsupervised Images through Adversarial Training共同获得了2017 CVPR 最佳论文。
DenseNets可以将自身映射(identity mappings)、深度监督(deep supervision)和深度多样化(diversified depth)结合在一起
对网络特征的重复利用
简化了内部表征和降低了特征冗余
特征提取器。
稠密连接有正则化的作用
隐含的深度监督(implicit deep supervision)
由于更短的连接,每一层都可以从损失函数中获得监督信息。
可以将DenseNets理解为一种“深度监督”(deep supervision)
该网络在每一隐含层都加了分类器,迫使中间层也学习判断特征(discriminative features)。
DensNets和深度监督网络相似:网络最后的分类器通过最多两个或三个过渡层为所有层都提供监督信息。所有层之间共享了损失函数
CondenseNet 一作是康奈尔大学的黄高,主要在于优化了DenseNet网络,使其计算效率更高且参数存储更少。在DenseNet博客中介绍过DenseNet最大的一个缺点就是显存占用较大,主要原因在于生成了额外的较多特征层。在DenseNet后面紧接着有一篇技术文章通过开辟统一存储空间用于存储额外生成的特征,可以在一定程度上减少模型训练时候的显存占用。这篇文章则主要通过卷积的group操作以及在训练时候的剪枝来达到降低显存提高速度的目的。作者的实验证明,CondenseNet可以在只需要DenseNet的1/10训练时间的前提下,达到和DenseNet差不多的准确率。
总结下这篇文章的几个特点:1、引入卷积group操作,而且在1*1卷积中引入group操作时做了改进。2、训练一开始就对权重做剪枝,而不是对训练好的模型做剪枝。3、在DenseNet基础上引入跨block的dense连接。
它将层间的密集连接与一个机制相结合, 以移除未使用的连接。密集连接方便了网络中的功能重用, 而学习卷积组删除了此功能重用层之间的连接。
DenseNet 体系结构通过直接将每个层与前面的所有层连接在一起, 从而缓解了对特征复制的需求, 从而诱发了功能重用。虽然效率更高, 但我们假设在以后的层中不需要早期功能时, 密集连接会引入冗余。我们提出了一种新的方法来修剪这些层之间的冗余连接, 然后引入一个更有效的体系结构。与以前的修剪方法相比, 我们的方法在训练过程中自动学习一个稀疏网络, 并生成一个常规的连接模式, 可以使用卷积组有效地实现。具体地说, 我们将图层的过滤器拆分为多个组, 并在训练过程中逐步删除每个组中不太重要的功能的连接。重要的是, 传入功能的组不是预定义的, 而是经过学习的。
它鼓励通过密集连接和修剪过滤器的功能再利用, 与通过学习卷积组多余功能再利用相结合。为了有效地进行推理, 可将修剪后的网络转换为具有常规卷积组的网络。