【深度学习】Deep Learning必备之必背十大网络结构

版权声明:本文为博主原创文章,未经博主允许不得转载。如遇到疑问,评论会给出答复。学习交流——关注页面微信公众号。【吃良心,拉思想】 https://blog.csdn.net/Taily_Duan/article/details/82871593

深度学习网络结构:

【深度学习】Deep Learning必备之必背十大网络结构

(从公众号转发过来发现图片不能引用,直接点上面链接吧)

————————————————————————————————————————————

昨天的文章介绍了在学习Deep Learning过程中必须背熟的十几条知识点【深度学习】Deep Learning必备之必背知识点,主要让大家有个对深度学习的整体认识,有了对知识点的认识,然后可以针对不理解或不熟悉的point再单个的深入挖掘。

今天想给大家分享一下DeepLearning常见的十大深度学习架构,这十个架构中,大家有见过或没见过的,见过的回顾一下,没见过的可以有个初步的认识,再有针对的学习,时间充裕的基础上可以多遍的阅读原始论文。一直秉持一个观点,学习知识点时,在理解的基础上背诵是很有必要的。


随着最近在深度学习中取得的进步,时刻保持最新状态变得非常困难。 几乎每一天都有关于深度学习的创新,而大部分的深度学习创新都隐藏在那些发表于ArXiv和Spinger等研究论文中。

本文包含了一些深度学习的最新进展及其在Keras库中的实现代码。也提供了原始文件的链接,如果你有兴趣阅读或想要参考他们。

为了保持文章的简洁性,我只考虑了在计算机视觉领域取得成功的架构。

如果你感兴趣,继续读吧!

本文假定了神经网络的知识和对角点的熟悉程度。如果您需要了解这些主题,我强烈建议您先阅读以下文章:

  • Fundamentals of Deep Learning – Starting with Artificial Neural Network

       深度学习的基本原理-从人工神经网络开始

  • Tutorial: Optimizing Neural Networks using Keras (with Image recognition case study)

       教程:使用Keras优化神经网络(结合图像识别案例研究)


Table of Contents 目录

  • What do we mean by an advanced architecture? 什么是深度学习“高级框架”

  • Types of Computer Vision Tasks 计算机视觉任务的类型

  • List of Deep Learning Architectures 深度学习架构的列表

与单一的传统机器学习算法相比,深度学习算法由一组不同的模型组成。这是因为神经网络在建立完整的端到端模型时所提供的灵活性。

神经网络有时可以与乐高积木相比较,在那里你可以建立几乎任何简单或复杂的结构,按照你的想象力建立。

我们可以将高级体系结构定义为具有成功模型的经过验证的记录的体系结构。这主要体现在ImageNet这样的挑战中,您的任务是使用给定的数据解决问题,比如图像识别。ImageNet是一项关于数据集的挑战,它是ILSVR(ImageNet大规模视觉识别)中提供的数据集。

同样,正如下面将要提到的体系结构所描述的,每个体系结构都有一个细微之处,这使得它们与通常的模型不同;当它们用于解决一个问题时,给它们一个优势。这些体系结构也属于“深度”模型的范畴,因此它们可能比浅层模型的性能更好。

计算机视觉任务的类型

‍‍‍‍本文主要研究计算机视觉,因此自然地描述了计算机视觉任务的视域。计算机视觉;顾名思义,就是创建人工模型,可以复制人类执行的视觉任务。这实质上意味着我们可以看到什么,我们感觉到的是一个可以在人工系统中理解和实现的过程。‍‍‍‍‍

计算机视觉的主要任务可分为以下几类:

  • 目标识别/分类 Object Recognition / classification 

    -在对象识别中,您将得到一个原始图像,您的任务是识别该图像属于哪个类。
  • 分类+定位 Classification + Localisation

    -如果图像中只有一个对象,而您的任务是查找该对象的位置,则对此问题的一个更具体的术语是定位问题。
  • 目标检测 Object Detection

    -在对象检测中,您的任务是确定对象在图像中的位置。这些对象可能属于同一个类或完全不同的类。
  • 图像分割 Image Segmentation

    -图像分割是一项有点复杂的任务,其目标是将每个像素映射到其正确的类别。

深度学习架构列表

既然我们已经了解了什么是高级体系结构,并探索了计算机视觉的任务,那么让我们列出最重要的体系结构及其描述:

1. AlexNet

AlexNet是由深度学习的先驱之一GeoffreyHinton和他的同事提出的第一个深度体系结构。这是一种简单而强大的网络架构,它为现在的深度学习领域的开创性研究铺平了道路。以下是作者提出的体系结构的表示形式。

当从分解过程中,AlexNet似乎是一个简单的体系结构,其中一个是卷积层,另一个是池层,然后是顶部完全连接的层。这是一种非常简单的架构,早在20世纪80年代就被概念化了。区别这个模型的是它执行任务的规模,以及GPU用于训练的规模。20世纪80年代,CPU被用于神经网络的训练。而AlexNet通过使用GPU将训练速度提高了10倍。

尽管目前AlexNet还有点过时,但它仍然是将深度神经网络应用于所有任务的起点,无论是计算机视觉还是语音识别。

详情查看这篇文章:【经典论文】经典卷积神经网络——AlexNet

原论文链接:

https://papers.nips.cc/paper/4824-imagenet-classification-with-deep-convolutional-neural-networks.pdf

2. VGG Net

“VGG Net”是由牛津大学“视觉图像研究组”的研究人员引入的。VGG网络的最大特点是它的金字塔状,靠近图像的底部比较宽阔,而顶部的层相对窄且深。

正如图像所描绘的那样,VGG包含后续的卷积层,然后是池层。池层负责使层变窄。在他们的论文中,他们提出了多种这样的网络类型,随着架构的深度的改变。

VGG的优势是:

  • 它是一种非常好的架构,用于在特定任务上进行基准测试。
  • 此外,VGG的预训练网络可以在互联网上免费使用,因此它通常用于各种应用程序。

另一方面,它的主要缺点是,如果从零开始训练是非常缓慢的。即使是在一个像样的GPU上,也需要一个多星期的时间才能开始工作。

原论文链接:

https://arxiv.org/abs/1409.1556

3. GoogleNet

GoogleNet(又称“InceptionNet”)是由谷歌的研究人员们设计的一个网络架构。GoogleNet在2014年的 ImageNet大赛中获得了冠军,证明了它是一个功能强大的模型。

在这个网络架构中,研究人员们不仅加深了网络深度(GoogleNet包含22个层,而VGG网络只有19个层),还研究出了一个叫做“Inception模块”的新方法。

正如上面所看到的,这与我们之前看到的顺序体系结构相比是一个巨大的变化。在一个单层中,存在多种类型的“特征提取器”。因为当处理任务时,网络在自我训练过程中的选择非常广泛。它既可以选择卷积输入,也可以选择直接将输入聚积起来。

最终的体系结构包含这些初始模块中的多个,每个模块堆叠在一起。甚至在Google网中,培训也略有不同,因为大多数最顶层的层都有自己的输出层。这种细微差别有助于模型更快地收敛,因为有一个联合训练以及层本身的并行训练。

Google网的优点是:

  • GoogleNet的训练速度比VGG快。
  • 预先训练过的GoogleNet的大小比VGG要小一些。一个VGG模型可以有>500 MB,而GoogleNet只有96 MB大小。

GoogleNet本身并没有直接的缺点,但它提出了进一步的架构改变,从而使该模型表现得更好。一个这样的变化被称为XceptionNet,在这个网络中,初始模块的发散极限(如我们在上面的图像中所看到的,在GoogleNet中是4)增加了。从理论上讲,它可以是无限的(因此被称为极端开始!)

原论文链接:

https://arxiv.org/abs/1512.00567

4. ResNet

ResNet是真正定义深度学习体系结构的深度架构之一。残差网络(ResNet,简称ResNet)由多个连续的残差模块组成,它们是ResNet体系结构的基本构件。残差模块的表示如下:

简单来说,一个“残差模块”有两个选择——它可以选择在输入上执行一组函数,也可以选择跳过这些步骤。

与GoogleNet类似,这些“残差模块”相互叠加,从而形成一个完整的网络的。

ResNet引入的其他一些新技术包括:

  • 使用标准的SGD,而不是花哨的自适应学习技术。这是与一个合理的初始化功能一起完成的,它保持了训练的原样。
  • 在预处理输入方面的变化,其中输入首先被划分为补丁,然后被分配到网络中。

ResNet的主要优点是可以使用数百甚至数千个剩余层来创建网络,然后进行培训。这与通常的顺序网络略有不同,在这种情况下,随着层数的增加,性能升级会减少。

原论文链接:

https://arxiv.org/abs/1512.03385

5. ResNeXt

据称,ResNeXt是目前为止最先进的物体识别技术。ResNeXt建立于inception和ResNet的基础之上,是一个全新的、改良的网络架构。下图总结了ResNeXt的一个残差模块:

原论文链接:

https://arxiv.org/pdf/1611.05431.pdf

6.RCNN(Region Based CNN)

RCNN据说是用于解决物体识别问题的深度学习架构中最具影响力的网络架构。为了解决识别检测问题,RCNN试图框出图像中的所有物体,然后再识别图像中的物体具体是什么。其操作流程如下:

RCNN的结构如下:

原论文链接:

https://arxiv.org/abs/1506.01497

7. YOLO (You Only Look Once)

YOLO是目前最先进的实时系统,建立在深入学习的基础上,解决图像检测问题。如下面给出的图像所示,它首先将图像划分为定义的边界框,然后对所有这些框并行运行识别算法,以识别它们所属的对象类。在识别了这些类之后,它继续智能地合并这些框,从而在对象周围形成一个最优的包围框。

所有这些都是并行完成的,因此它可以实时运行,一秒钟处理多达40幅图像。

尽管与RCNN相比,它的性能有所下降,但它仍然有一个优势,即在日常问题中可以实时使用。这里是YOLO体系结构的一个表示。

原论文链接:

https://pjreddie.com/media/files/papers/yolo.pdf

8. SqueezeNet

SqueezeNet是一种更强大的体系结构,在诸如移动平台这样的低带宽场景中非常有用。这个架构只占用了4.9MB的空间,另一方面,Inception占用了超过100 MB!这种显著的变化是由一个名为“fire模块”的专门结构引起的。下图是fire模块的表示。

下图为squeezeNet的最终架构:

原论文链接:

https://arxiv.org/abs/1602.07360

9.SegNet

SegNet是一种用于解决图像分割问题的深度学习体系结构。它由处理层(编码器)序列和对应的一组解码器组成,用于像素级分类。下面的图片总结了SegNet的工作原理。

SegNet的一个关键特点是在分割图像中保留高频细节,因为编码器网络的池索引与解码器网络的池索引相连接。总之,信息的传递是直接的,而不是转移的。SegNet是处理图像分割问题时使用的最佳模型之一。

原论文链接:

https://arxiv.org/abs/1511.00561

10. GAN (Generative Adversarial Network 生成对抗性网络)

GAN是一个完全不同的神经网络架构,其中的神经网络被用于生成一个全新的不存在的图像,这个图像看似在训练数据集中出现过,但实际上并没有。下图是GAN的分解示意图。

原论文链接:

https://arxiv.org/abs/1406.2661

参考:

https://www.analyticsvidhya.com/blog/2017/08/10-advanced-deep-learning-architectures-data-scientists/


其他常见神经网络结构

LeNet:基于渐变的学习应用于文档识别

AlexNet:具有深卷积神经网络的ImageNet分类

ZFNet:可视化和理解卷积网络

VGGNet:用于大规模图像识别的非常深的卷积网络

NiN:网络中的网络

GoogLeNet:卷入更深入

Inception-v3:重新思考计算机视觉的初始架构

ResNet:图像识别的深度残差学习

Stochastic_Depth:具有随机深度的深层网络

WResNet:非常深的网络的加权残差

Inception-ResNet:Inception-v4,inception-resnet以及剩余连接对学习的影响

Fractalnet:没有残差的超深层神经网络

WRN:宽残留网络

ResNeXt:深层神经网络的聚合残差变换

DenseNet:密集连接的卷积网络

PyramidNet:深金字塔残留网络

DPN:双路径网络

SqueezeNet:AlexNet级准确度,参数减少50倍,模型尺寸小于0.5MB

MobileNets:用于移动视觉应用的高效卷积神经网络

ShuffleNet:移动设备极高效的卷积神经网络


Taily老段的微信公众号,欢迎交流学习

猜你喜欢

转载自blog.csdn.net/Taily_Duan/article/details/82871593
今日推荐