深度学习500问——Chapter04:经典网络解读(2)

简介: 深度学习500问——Chapter04:经典网络解读(2)

4.5 VGGNet

4.5.1 模型介绍

VGGNet是由牛津大学视觉几何小组(Visual Geometry Group,VGG)提出的一种深层卷积网络结构,它们以7.32%的错误率赢得了2014年ILSVRC分类任务的亚军(冠军由GoogLeNet以6.65%的错误率夺得)和25.32%的错误率夺得定位任务(Localization)的第一名(GooleNet错误率为26.44%)[5],网络名称VGGNet取自该小组名缩写。VGGNet是首批把图像分类的错误率降低到10%以内模型,同时该网络所采用的$3\times3$卷积核的思想是后来许多模型的基础,该模型发表在2015年国际学习表征会议(International Conference On Learning Representations, ICLR)后至今被引用的次数已经超过1万4千余次。

4.5.2 模型结构

图 4.7 VGG16网络结构图

在原论文中的VGGNet包含了6个版本的演进,分别对应VGG11、VGG11-LRN、VGG13、VGG16-1、VGG16-3和VGG19,不同的后缀数值表示不同的网络层数(VGG11-LRN表示在第一层中采用了LRN的VGG11,VGG16-1表示后三组卷积块中最后一层卷积采用核尺寸为1×1,相应的VGG16-3表示卷积核尺寸为3×3),本节介绍的VGG16为VGG16-3。图4.7中的VGG16体现了VGGNet的核心思路,使用3×3的卷积组合替代大尺寸的卷积(2个3×3卷积即可与5×5卷积拥有相同的感受视野),网络参数设置如表4.5所示。

表4.5 VGG16网络参数配置

image.png

4.5.3 模型特性

  • 整个网络都使用了同样大小的卷积核尺寸3×3和最大池化尺寸2×2
  • 1×1卷积的意义主要在于线性变换,而输入通道数和输出通道数不变,没有发生降维。
  • 两个3×3的卷积层串联相当于1个5×5的卷积层,感受野大小为5×5。同样地,3个3×3的卷积层串联的效果则相当于1个7×7的卷积层。这样的连接方式使得网络参数量更小,而且多层的激活函数令网络对特征的学习能力更强。
  • VGGNet在训练时有一个小技巧,先训练浅层的简单网络VGG11,再复用VGG11的权重来出初始化VGG13,如此反复训练并初始化VGG19.能够使训练时收敛的速度更快。
  • 在训练过程中使用多尺度的变换对原始数据做数据增强,使得模型不易过拟合。

4.6 GoogLeNet

4.6.1 模型介绍

GooLeNet作为2014年ILSVRC在分类任务上的冠军,以6.65%的错误率力压VGGNet等模型,在分类的准确率上面相比过去两届冠军ZFNet和AlexNet都有很大的提升。从名字GoogLeNet可以知道这是来自谷歌工程师所设计的网络结构,而名字中的GoogLeNet更是致敬了LeNet[0]。GoogLeNet中最核心的部分是其内部子网络结构Inception,该结构灵感来源于NIN,至今已经经历了四次版本迭代(Inceptionv1−4)。

图 4.8 Inception性能比较图

4.6.2 模型结构

图4.9 GoogLeNet网络结构图如图4.9所示,GoogLeNet相比于以为的卷积神经网络结构,除了在深度上进行了延伸,还对网络的宽度进行了扩展,整个网络由许多块状子网络的堆叠而成,这个子网络构成了Inception结构。图4.9为Inception的四个版本:Inceptionv1在同一层中采用不同的卷积核,并对卷积结果进行合并;Inceptionv2组合不同卷积核的堆叠形式,并对卷积结果进行合并;Inceptionv3则在v2基础上进行深度组合的尝试;Inceptionv4结构相比于前面的版本更加复杂,子网络中嵌套者子网络。

  • Inceptionv1

  • Inceptionv2

  • Inceptionv3

  • Inceptionv4

图 4.10 Inceptionv14结构图

表 4.6 GoogLeNet中Inceptionv1网络参数配置

网络层 输入尺寸 核尺寸 输出尺寸

参数个数

卷积层C11 H×W×C1 1×1×C2/21×1 H2×W2×C2

(1×1×C1+1)×C2

卷积层C21 H×W×C2 1×1×C2/21×1 H2×W2×C2

(1×1×C2+1)×C2

卷积层C22 H×W×C2 3×3×C2/13×3 H×W×C2/1

(3×3×C2+1)×C2

卷积层C31 H×W×C1 1×1×C2/21×1 H2×W2×C2

(1×1×C1+1)×C2

卷积层C32 H×W×C2 5×5×C2/15×5 H×W×C2/1

(5×5×C2+1)×C2

下采样层C41 H×W×C1 3×3/2 H2×W2×C2

0

卷积层C42 H2×W2×C2 1×1×C2/11×1 H2×W2×C2

(3×3×C2+1)×C2

合并层M H2×W2×C2(×4) 拼接 H2×W2×(C2×4)

0


4.6.3 模型特性

  • 采用不同大小的卷积核意味着不同大小的感受野,最后拼接意味着不同尺度特征的融合;
  • 之所以卷积核大小采用1、3和5,主要是为了方便对齐。设定卷积步长stride=1之后,只要分别设定pad=0、1、2,那么卷积之后便可以得到相同维度的特征,然后这些特征就可以直接拼接在一起了;
  • 网络越到后面,特征越抽象,而且每个特征所涉及的感受野也更大了,因此随着层数的增加,3x3和5x5卷积的比例也要增加。但是,使用5x5的卷积核仍然会带来巨大的计算量。 为此,文章借鉴NIN2,采用1x1卷积核来进行降维。

4.7 为什么现在的CNN模型都是在GoogleNet、VGGNet或者AlexNet上调整的

  • 评测对比:为了让自己的结果更有说服力,在发表自己成果的时候会同一个标准的baseline及在baseline上改进而进行比较,常见的比如各种检测分割的问题都会基于VGG或者Resnet101这样的基础网络。
  • 时间和精力有限:在科研压力和工作压力中,时间和精力只允许大家在有限的范围探索。
  • 模型创新难度大:进行基本模型的改进需要大量的实验和尝试,并且需要大量的实验积累和强大灵感,很有可能投入产出比比较小。
  • 资源限制:创造一个新的模型需要大量的时间和计算资源,往往在学校和小型商业团队不可行。
  • 在实际的应用场景中,其实是有大量的非标准模型的配置。

参考文献

[1] Y. LeCun, L. Bottou, Y. Bengio, and P. Haffner. Gradient-based learning applied to document recognition. Proceedings of the IEEE, november 1998.

[2] A. Krizhevsky, I. Sutskever and G. E. Hinton. ImageNet Classification with Deep Convolutional Neural Networks. Advances in Neural Information Processing Systems 25. Curran Associates, Inc. 1097–1105.

[3] LSVRC-2013. ImageNet Large Scale Visual Recognition Competition 2013 (ILSVRC2013)

[4] M. D. Zeiler and R. Fergus. Visualizing and Understanding Convolutional Networks. European Conference on Computer Vision.

[5] M. Lin, Q. Chen, and S. Yan. Network in network. Computing Research Repository, abs/1312.4400, 2013.

[6] K. Simonyan and A. Zisserman. Very Deep Convolutional Networks for Large-Scale Image Recognition. International Conference on Machine Learning, 2015.

[7] Bharath Raj. a-simple-guide-to-the-versions-of-the-inception-network, 2018.

[8] Christian Szegedy, Sergey Ioffe, Vincent Vanhoucke, Alex Alemi. Inception-v4, Inception-ResNet and the Impact of Residual Connections on Learning, 2016.

[9] Sik-Ho Tsang. review-inception-v4-evolved-from-googlenet-merged-with-resnet-idea-image-classification, 2018.

[10] Zbigniew Wojna, Christian Szegedy, Vincent Vanhoucke, Sergey Ioffe, Jonathon Shlens. Rethinking the Inception Architecture for Computer Vision, 2015.

[11] Christian Szegedy, Wei Liu, Yangqing Jia, Pierre Sermanet, Scott Reed, Dragomir Anguelov, Dumitru Erhan, Vincent Vanhoucke, Andrew Rabinovich. Going deeper with convolutions, 2014.

目录
相关文章
|
10天前
|
机器学习/深度学习 人工智能 自然语言处理
深度学习的奥秘:探索神经网络的核心原理
本文将深入浅出地介绍深度学习的基本概念,包括神经网络的结构、工作原理以及训练过程。我们将从最初的感知机模型出发,逐步深入到现代复杂的深度网络架构,并探讨如何通过反向传播算法优化网络权重。文章旨在为初学者提供一个清晰的深度学习入门指南,同时为有经验的研究者回顾和巩固基础知识。
34 11
|
11天前
|
机器学习/深度学习 人工智能 自然语言处理
深度学习的魔法:如何用神经网络解锁数据的奥秘
在人工智能的璀璨星空中,深度学习犹如一颗最亮的星,它以其强大的数据处理能力,改变了我们对世界的认知方式。本文将深入浅出地介绍深度学习的核心概念、工作原理及其在不同领域的应用实例,让读者能够理解并欣赏到深度学习技术背后的奇妙和强大之处。
25 3
|
5天前
|
机器学习/深度学习 人工智能 TensorFlow
深度学习入门:理解卷积神经网络(CNN)
【9月更文挑战第14天】本文旨在为初学者提供一个关于卷积神经网络(CNN)的直观理解,通过简单的语言和比喻来揭示这一深度学习模型如何识别图像。我们将一起探索CNN的基本组成,包括卷积层、激活函数、池化层和全连接层,并了解它们如何协同工作以实现图像分类任务。文章末尾将给出一个简单的代码示例,帮助读者更好地理解CNN的工作原理。
20 7
|
3天前
|
机器学习/深度学习 算法 算法框架/工具
深度学习中的卷积神经网络(CNN)及其在图像识别中的应用
【9月更文挑战第16天】本文将深入浅出地介绍卷积神经网络(CNN)的基本概念、结构和工作原理,同时通过一个实际的代码示例来展示如何在Python中使用Keras库构建一个简单的CNN模型进行图像识别。我们将看到,即使是初学者也能够通过简单的步骤实现深度学习的强大功能,进而探索其在复杂数据集上的应用潜力。
|
3天前
|
机器学习/深度学习 自动驾驶 搜索推荐
深度学习之探索神经网络、感知器与损失函数
在当今的数字化时代,深度学习作为一种强大的机器学习技术,正在迅速改变着我们的生活方式。无论是智能推荐系统、自动驾驶车辆还是语音识别应用,深度学习都在背后默默地发挥作用。
11 1
|
7天前
|
机器学习/深度学习 监控 并行计算
深度学习之生物网络推理
基于深度学习的生物网络推理利用深度学习技术来解析和理解生物网络(如基因调控网络、代谢网络、蛋白质-蛋白质相互作用网络等)的复杂关系和动态行为。
21 5
|
6天前
|
机器学习/深度学习 编解码 自然语言处理
深度学习中的对抗生成网络
本文深入探讨了深度学习中的一种重要模型——对抗生成网络(GAN)。通过详细介绍其基本原理、结构组成以及训练过程,揭示了GAN在数据生成方面的独特优势。同时,文章还讨论了GAN在图像处理、自然语言处理等领域的广泛应用,并指出了其面临的挑战及未来发展方向。
12 2
|
7天前
|
机器学习/深度学习 人工智能 自然语言处理
探索AI的奥秘:深度学习与神经网络
【9月更文挑战第11天】本文将深入探讨人工智能的核心领域——深度学习,以及其背后的神经网络技术。我们将从基础理论出发,逐步深入到实践应用,揭示这一领域的神秘面纱。无论你是AI领域的初学者,还是有一定基础的开发者,都能在这篇文章中获得新的启示和理解。让我们一起踏上这场探索之旅,揭开AI的神秘面纱,体验深度学习的魅力。
|
13天前
|
机器学习/深度学习 人工智能 算法
深度学习的奥秘:探索神经网络的魔法
在本文中,我们将一起踏上一场奇妙的旅程,探索深度学习背后的科学奥秘。通过简单易懂的语言和有趣的比喻,我们将解锁神经网络的强大力量,并了解它们如何改变我们的世界。无论你是科技爱好者还是对人工智能充满好奇的朋友,这篇文章都将为你打开一扇通往未来的大门。
|
10天前
|
机器学习/深度学习 数据采集 数据可视化
深度学习实践:构建并训练卷积神经网络(CNN)对CIFAR-10数据集进行分类
本文详细介绍如何使用PyTorch构建并训练卷积神经网络(CNN)对CIFAR-10数据集进行图像分类。从数据预处理、模型定义到训练过程及结果可视化,文章全面展示了深度学习项目的全流程。通过实际操作,读者可以深入了解CNN在图像分类任务中的应用,并掌握PyTorch的基本使用方法。希望本文为您的深度学习项目提供有价值的参考与启示。