本篇文章5908字,读完约15分钟

雷锋。(公开号码:雷锋。记者:智虎,这么多网络最初都是装在cnn里,有什么区别?如何修改cnn网络?在佐米的回答下。作者授权重印。

为了解释这个问题,我认为有必要了解cnn架构模型的发展,从cnn架构模型的发展来看不同网络之间的差异,并学习cnn模型的定义。

-

最近,深度学习算法变得越来越流行和有用。然而,深度学习或深度神经网络的成功得益于无止境的神经网络模型架构。本文回顾了自1998年以来的18年间深度神经网络体系结构的发展。

CNN 那么多的网络有什么区别吗?看这里了解 CNN 的发展历程

我们可以看到横坐标是运算的复杂度,纵坐标是精度。在模型设计之初,模型的权重越大,精度越高。后来,出现了诸如resnet、googlenet、initiative等网络架构。,重量参数以相同或更高的精度下降。值得注意的是,这并不意味着横坐标越向右,其运行时间越长。这里不计算时间,但是模型参数和网络的精度是纵向和横向比较的。

CNN 那么多的网络有什么区别吗?看这里了解 CNN 的发展历程

有几个网络作者认为学习是必要的,值得学习和借鉴:alexnet,lenet,googlenet,vgg-16,nin。

如果你想更多地了解深层神经网络的体系结构及其相应的应用,请看这篇综述《深层神经网络模型的实际应用分析》。

lenet5

1998年。乐纯的大神乐坤发布了lenet网络架构,从而揭开了深度学习的神秘面纱。自1998年以来,深度学习的领域已经被人们所熟知,也正是由于这种网络架构,深度学习的领域不断得到推广。当然,为什么不是lenet,而是lenet5,因为yann lecun已经被测试了很多次,而且因为有五个体积基础,它被命名为lenet5!

CNN 那么多的网络有什么区别吗?看这里了解 CNN 的发展历程

lenet5架构是一项开创性的工作,因为图像的特征分布在整个图像中,而学习参数是通过卷积从相同参数的多个位置提取相似特征的有效方法。直到1998年,Return没有gpu来帮助训练,甚至cpu速度也非常慢。因此,与使用每个像素作为单个输入的多层神经网络相比,lenet5可以节省参数和计算,这是一个关键优势。Lenet5提到,不应该将完全卷积放置在第一层中,因为图像中的空之间有很高的相关性,并且使用图像的每个像素作为单独的输入特征将不会使用这些相关性。因此,美国有线电视新闻网有三个特点:1。局部知觉,2。下采样,和3。体重分担。

CNN 那么多的网络有什么区别吗?看这里了解 CNN 的发展历程

Lenet5总结:

卷积神经网络采用三层结构:卷积、下采样和非线性激活函数

利用卷积提取图像间的特征空

下采样使用图像的平均稀疏度

激活函数采用tanh或sigmoid函数

多层神经网络被用作最终的分类器

各层之间使用稀疏连接矩阵,以避免较大的计算成本

总的来说,lenet5架构将人们带入了深度学习的领域,这值得称赞。自2010年以来,近年来的大多数神经网络架构都是基于lenet的三个特征。

间隙

从1998年到2010年的十年间,神经网络的发展非常缓慢。即使是人工智能领域的丹尼尔·吴恩达教授,也在2003年的公开课上花了两堂课解释支持向量机的推导过程,而神经网络只用了不到20分钟。在2012年coresea新开放的人工智能课程中,支持向量机用了不到一堂课来解释,而神经网络用了两节课来介绍算法,这表明科学家对神经网络越来越重视。随着cpu和gpu速度的提高,它带来了性能和存储的飞跃,这使得深层神经网络更加可测,因此自2010年以来,深层学习的大门已经打开。

CNN 那么多的网络有什么区别吗?看这里了解 CNN 的发展历程

dan ciresan网络

2010年,丹·克劳迪奥·西瑞森和尤尔根·施密德胡伯发表了一个gpu神经网络。本文证明了nvidia gtx 280 gpu可以处理多达9层的神经网络。

从那以后,英伟达的股价一直在上涨,深度学习变得越来越广为人知。

alexnet

2012年,alex krizhevsky发表了alexnet,它的网络层次比lenet更深,从lenet的5层到alexnet的7层。更重要的是,alexnet在2012年赢得了imagenet竞赛的第一名。Alexnet不仅比lenet的神经网络有更多更深的层次,而且可以学习更复杂的图像高维特征。

CNN 那么多的网络有什么区别吗?看这里了解 CNN 的发展历程

Alexnet摘要:

relu函数被用作激活函数,这减少了sigmoid类函数的计算

在训练过程中,利用脱落技术选择性地切断部分神经元,避免模型过度拟合

引入最大池技术

借助双gpu nvidia gtx 580显著缩短培训时间

由于gpu提供了越来越强大的性能,并允许超过10倍的训练增长时间,它可以处理越来越大的图片和更大的数据集。随着风暴的到来,阿列克谢网的成功引发了一场小革命。卷积神经网络cnn现在是深度学习的主力军,所以有人说“网络越复杂,任务就越艰巨。”

CNN 那么多的网络有什么区别吗?看这里了解 CNN 的发展历程

网络中的网络

2013年底,林敏提出了卷积后与1×1卷积校验图像的卷积,这是网络中网络的核心思想。Nin在每次卷积后使用,以便在进入下一层时合并更多的特征参数。同样,nin层违反了lenet(浅层网络使用大卷积核)的设计原则,但它有效地结合了卷积特征并减少了网络参数。相同的内存可以存储更大的网络。

CNN 那么多的网络有什么区别吗?看这里了解 CNN 的发展历程

根据林敏的nin论文,他们说这个“网络网络”(nin)可以改善cnn的局部感知区域。例如,当前没有nin的卷积如下:3×3 256[conv]->[最大池],加上nin后的卷积如下:3×3 256[conv]--> 1x 1 256[conv]->[最大池]。

CNN 那么多的网络有什么区别吗?看这里了解 CNN 的发展历程

mlp多层初始的优点是它将卷积特征组合成一个更复杂的组合,稍后将在resnet和初始中使用。

vgg

2014年是繁荣的一年,有两份重要的论文:vgg和googlenet。

牛津大学的Vgg网络是第一个使用较小的3×3卷积核在每个卷积层对图像进行卷积,并将这些小卷积核排列成卷积序列。一般来说,原始图像先进行3×3的卷积,然后再进行3×3的卷积,连续使用小卷积对图像进行多次卷积。

CNN 那么多的网络有什么区别吗?看这里了解 CNN 的发展历程

也许许多人在这里看到它时会感到困惑。为什么你用这么小的卷积核来卷积图像,而仍然使用连续的小卷积核?当vgg被提出时,它正好违背了lenet的设计原则,因为lenet相信大的卷积核可以捕获图像中相似的特征(权重共享)。Alexnet还在浅层网络开始时使用9×9和11×11卷积核,并试图避免在浅层网络中使用1×1卷积核。然而,vgg的神奇之处在于使用多个3×3卷积核可以模仿较大的卷积核来局部感知图像。后来,googlenet和resnet吸收了多个串联的小卷积核的思想。

CNN 那么多的网络有什么区别吗?看这里了解 CNN 的发展历程

从下图中,我们可以看到vgg使用多个3×3卷积来提取高维特征。因为如果使用更大的卷积核,参数将大大增加,运算时间将成倍增加。例如,如果3×3卷积核只有9个权重参数,那么7×7卷积核的权重参数将增加到49。由于缺乏一个模型来归一化和减少大量参数,或者限制大规模参数的出现,训练具有较大核数的卷积网络变得非常困难。

CNN 那么多的网络有什么区别吗?看这里了解 CNN 的发展历程

Vgg认为使用一个大的卷积核会造成很大的时间浪费,而缩减的卷积核可以减少参数,节省运算开销。虽然训练时间变得更长,但是预测时间和参数总体上减少了。

CNN 那么多的网络有什么区别吗?看这里了解 CNN 的发展历程

googlenet

2014年,在谷歌工作的克里斯蒂安·塞格迪(christian szegedy)提出了这个谷歌网络(也称为盗梦空间v1),目的是找到一个能够有效减少计算资源的深层神经网络结构。

CNN 那么多的网络有什么区别吗?看这里了解 CNN 的发展历程

从2014年底至今,深度学习模型已经广泛应用于图像内容分类和视频分类。在此之前,许多起初对深度学习和神经网络持怀疑态度的人纷纷涌入深度学习领域,原因很简单,因为深度学习不再是海市蜃楼,而是越来越扎根。甚至像谷歌这样的互联网巨头也在深度学习领域展开了布局,并建立了各种人工智能实验室。

CNN 那么多的网络有什么区别吗?看这里了解 CNN 的发展历程

克里斯蒂安正在考虑如何减少深层神经网络的计算量,并获得更好的性能框架。即使你不能两全其美,下一个最好的办法是保持相同的计算成本并提高性能。然后克里斯蒂安和他的团队在谷歌上提出了这个模型:

CNN 那么多的网络有什么区别吗?看这里了解 CNN 的发展历程

乍一看,它基本上是1×1,3×3和5×5卷积核的并行组合。然而,最重要的是使用1×1卷积核(nin)来减少后续并行操作中的特征数量。这个想法现在被称为“瓶颈层”。

CNN 那么多的网络有什么区别吗?看这里了解 CNN 的发展历程

瓶颈层

受nin的启发,googlenet的瓶颈层减少了特征的数量,从而降低了每一层的运算复杂度,从而加快了推理时间。在将数据传递到下一层卷积之前,特征的数量减少了大约4个。因此,这种设计架构以节省大量计算成本而闻名。

CNN 那么多的网络有什么区别吗?看这里了解 CNN 的发展历程

让我们详细研究一下这个瓶颈层。假设输入时有256个要素图,输出时有256个要素图,并且假设初始层仅执行3×3卷积,则该行需要大约(256×256)x(3×3)卷积(大约589,000次计算操作)。让我们假设589,000次计算操作在谷歌的服务器上花费了0.5毫秒,并且计算成本仍然很高。目前,瓶颈层的思想是先减少特征的数量。我们首先执行256 -> 64 1×1卷积,然后在瓶颈层的所有分支上卷积64尺寸的特征图,最后执行64-> 256 1×1卷积。操作数是:

CNN 那么多的网络有什么区别吗?看这里了解 CNN 的发展历程

256×64 × 1×1 = 16,000s

64×64 × 3×3 = 36,000s

64×256 × 1×1 = 16,000s

总数约为70,000,而我们过去有近600,000。几乎少了10倍的操作!

虽然我们做了更少的操作,但是我们没有失去这个特性。实际上,瓶颈层在imagenet数据集上表现很好,并将在以后的架构中使用,如resnet。

成功的原因是输入特征是相关的,因此可以通过与1×1卷积的适当组合来消除冗余。然后,在卷积具有少量特征之后,它们可以被再次扩展并应用于下一级输入。

CNN 那么多的网络有什么区别吗?看这里了解 CNN 的发展历程

盗梦空间v3

克里斯蒂安的团队真的很棒。2015年2月,他们发表了一篇关于在谷歌网上添加一个批量标准化图层的新文章。批量标准化图层对图层输出处所有要素图的平均值和标准偏差进行标准化,并用这些值对其响应进行标准化。这对应于这样一个事实,即“白化”数据非常有效,并且所有神经层都具有相同的范围和零均值响应。这对于训练很有帮助,因为下一层不必学习输入数据中的偏移,并且可以专注于如何最好地组合特征。

CNN 那么多的网络有什么区别吗?看这里了解 CNN 的发展历程

2015年12月,他们发布了新版谷歌网络(盗梦空间v3)模块和相应的架构,并更好地解释了谷歌网络的原始架构,谷歌网络的原始理念:

通过建立一个深度和宽度平衡的网络,网络的信息流被最大化。在进入汇集图层之前添加要素地图

当网络层的深度增加时,特征的数量或层的宽度也相应增加

在每一层中使用宽度增加来增加下一层之前的特征组合

仅使用3×3卷积

最终的模型是这样的:

最后,网络体系结构使用汇集层+softmax层作为最终的分类器,就像googlenet一样。

resnet

Resnet是在2015年12月发布的,可能是与initiative v3网络一起发布的。resnet的一个重要思想是,输出是两个连续的卷积层,输入绕到下一层。这句话不容易理解。你可以看到下图。

CNN 那么多的网络有什么区别吗?看这里了解 CNN 的发展历程

但是在这里,他们绕过了两层,并在网络中大规模地应用这个模型。绕过第2层是一个关键,因为绕过单层在实践中没有多大帮助,但绕过第2层可以被视为网络中的一个小分类器!它似乎没有任何感觉,但它是一个致命的架构,因为通过这个架构,超过1000层的神经网络最终得以实现。这很愚蠢。在我们使用lenet之前,它只有5层,alexnet最多不超过7层。

CNN 那么多的网络有什么区别吗?看这里了解 CNN 的发展历程

该层首先使用1×1卷积,然后输出原始特征数的1/4,然后使用3×3卷积核,然后再次使用1×1卷积核,但这次输出的特征数是原始输入大小。如果原始输入是256个特征,则输出也是256个特征。然而,正如瓶颈层所说,计算量大大减少,但是保留了丰富的高维特征信息。

CNN 那么多的网络有什么区别吗?看这里了解 CNN 的发展历程

Resnet从7x7卷积内核开始,然后遵循一个池层。当然,最终的分类器,像googlenet一样,是一个以softmax作为分类器的汇集层。在下图的左侧,vgg19有190万个参数,在右侧,34层resnet只需要360,000个参数:

CNN 那么多的网络有什么区别吗?看这里了解 CNN 的发展历程

Resnet网络特性

Resnet可视为并行和串行模块的组合

resnet的输入和输出是相同的,所以它看起来有点像rnn,所以它可以看作是一个更好的生物神经网络模型

挤压网

对于2016年11月发表的一篇文章,文章的标题可能会被扼杀:挤压网:亚历克斯网级精度,参数减少50倍,X接受度

异常模型使用与resnet和initiative v4相同的简单而优雅的体系结构,并改进了异常模型。

从异常模型可以看出,异常模型的框架有36个卷积层,与resnet-34非常相似。但是模型的代码和resnet一样简单,而且比初始版本v4更容易理解。

您可以在这里或这里找到异常的实现代码。

摘要

让我们在开始时回顾一下比较图表。从图中我们可以看出,像alexnet这样的模型没有考虑太多的权重参数,所以圆圈相对较大。起初,alexnet只想在深度网络图像中找到更多的高维特征。后来发现,网络越深,需要的参数越多,硬件跟不上软件的发展。这时,如果网络加深,gpu的视频存储器就不能容纳更多的参数,所以硬件限制了深度网络的发展。为了提高网络的深度和精度,大神们一直在不断地研究,试图用小卷积核代替大卷积核来提高精度和大面积减少参数,这样网络的深度就不再受硬件的限制。

CNN 那么多的网络有什么区别吗?看这里了解 CNN 的发展历程

但另一方面,网络越深,计算时间就越慢,这也是一件非常痛苦的事情,不可能两全其美。作者相信,在未来的2-3年里,我们将能够见证比现有网络更深、更精确、计算时间更少的网络的出现。由于硬件的快速发展,特斯拉使用的nvidia驱动程序px 2的计算速度比泰坦x快了7倍

CNN 那么多的网络有什么区别吗?看这里了解 CNN 的发展历程

SOA无政府状态后记

事实上,作者认为神经网络的体系结构对于理解“深度学习”和深度学习的发展非常重要,因此强烈建议您深入研究与上述网络体系结构相对应的文章。

CNN 那么多的网络有什么区别吗?看这里了解 CNN 的发展历程

有些人总是会问为什么我们需要这么多时间来理解这些深层网络的架构,而不是研究数据,然后理解数据背后的含义以及如何预处理数据。关于如何研究数据,你可以搜索另一篇文章“人工智能的特征工程问题”。是的,数据非常重要,模型也很重要。举个简单的例子,如果你很了解一些图像数据,但是不知道cnn是如何从这些图像中提取高维特征的,那么你最终还是可以使用hog或者传统的sift特征检测算法。

CNN 那么多的网络有什么区别吗?看这里了解 CNN 的发展历程

还应该注意的是,这里我们主要讨论计算机视觉的深度学习架构。类似的神经网络结构也在其他领域不断发展。如果你有精力和时间,你可以学习更多不同的建筑。

CNN 那么多的网络有什么区别吗?看这里了解 CNN 的发展历程

引用

chenzomi12.github.io

lenet

dan ciresan网络

alexnet

网络中的网络

vgg

googlenet

盗梦空间v3

批量标准化层

resnet

挤压网

例外

神经网络结构

雷锋文章版权所有。严禁擅自转载。详情请参考转载说明。

标题:CNN 那么多的网络有什么区别吗?看这里了解 CNN 的发展历程

地址:http://www.hcsbodzyz.com/hcxw/5857.html