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

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

4.1 LeNet-5

4.1.1 模型介绍

LeNet-5是由LeCun 提出的一种用于识别手写数字和机器印刷字符的卷积神经网络(Convolutional Nerual Network,CNN)[1],其命名来源于作者LeCun的名字,5则是其研究成果的代号,在LeNet-5之前还有LeNet-4和LeNet-1鲜为人知。LeNet-5阐述了图像中像素特征之间的相关性能够由参数共享的卷积操作所提取,同时使用卷积、下采样(池化)和非线性映射这样的组合结构,是当前流行的大多数深度图像识别网络的基础。

4.1.2 模型结构

如图4.1所示,LeNet-5一共包含7层(输入层不作为网络结构),分别由2个卷积层、2个下采样层和3个连接层组成,网络的参数配置如表4.1所示,其中下采样层和全连接层的核尺寸分别代表采样范围核连接矩阵的尺寸(如卷积核尺寸中的)5×5×1/1,6表示核大小为5×5×1步长为1且核个数为6的卷积核。

表4.1 LeNet-5网络参数配置

网络层 输入尺寸 核尺寸 输出尺寸 可训练参数量
卷积层C1 32×32×132×32×1 5×5×1/1,65×5×1/1,6 28×28×628×28×6 (5×5×1+1)×6
下采样层S2 28×28×628×28×6 2×2/22×2/2 14×14×614×14×6 (1+1)×6
卷积层C3 14×14×614×14×6 5×5×6/1,165×5×6/1,16 10×10×1610×10×16 1516
下采样层S4 10×10×1610×10×16 2×2/22×2/2 5×5×165×5×16 (1+1)×16
卷积层C5 5×5×165×5×16 5×5×16/1,1205×5×16/1,120 1×1×1201×1×120 (5×5×16+1)×120
全连接层F6 1×1×1201×1×120 120×84120×84 1×1×841×1×84 (120+1)×84
输出层 1×1×841×1×84 84×1084×10 1×1×101×1×10 (84+1)×10
  • 在LeNet中,下采样操作核池化操作类似,但是在得到采样结果后会乘以一个系数和加上一个偏置项,所以下采样的参数个数是(1+1)×6(1+1)×6而不是零。
  • C3

3

卷积层可训练参数并未直接连接S2

2

中的所有特征图(Feature Map),而是采用如图4.2所示的采样特征特征方式进行连接(稀疏连接),生成的16个通道特征图中分别按照相邻3个特征图、相邻4个特征图、非相邻4个特征图和全部6个特征图进行映射,得到的参数个数计算公式为:6×(25×3+1)+6×(25×4+1)+3×(25×4+1)+1×(25×6+1)=1516,在原论文中解释了使用这种采样方式原因包含两点:限制了连接数不至于过大(当年的计算能力比较弱);强制限定不同特征图的组合可以使映射得到的特征图学习到不同的特征模式。

图4.2 S2C3之间的特征图稀疏连接

C5卷积层在图4.1中显示为全连接层,原论文中解释这里实际采用的是卷积操作,只是刚好在5×5卷积后尺寸被压缩为1×1,输出结果看起来和全连接很相似。

4.1.3 模型特性

  • 卷积网络使用一个3层的序列组合:卷积、下采样(池化)、非线性映射(LeNet-5是最重要的特性,奠定了目前深层卷积网络的基础)
  • 使用卷积提取空间特征
  • 使用映射的空间均值进行下采样
  • 使用 tanh 或 sigmoid 进行非线性映射
  • 多层神经网络(MLP)作为最终端的分类器
  • 层间的稀疏连接矩阵以避免巨大的计算开销

4.2 AlexNet

4.2.1 模型介绍

AlexNet是由Alex Krizhevsky提出的首个应用于图像分类的深层卷积神经网络,该网络在2012年ILSVRC(ImageNet Large Scale Visual Recognition Competition)图像分类竞赛中以15.3%的top-5测试错误率赢得第一名[2]。AlexNet使用GPU代替CPU进行运算,使得在可接受的时间范围内模型结构能够更加复杂,它的出现证明了深层神经网络在复杂模型下的有效性,使CNN在计算机视觉中流行开来,直接或间接地引发了深度学习的热潮。

4.2.2 模型结构

图4.3 AlexNet网络结构图

如图4.3所示,除去下采样(池化层)和局部响应规范化操作(Local Responsible Normalization,LRN),AlexNet一共包含8层,前5层由卷积层组成,而剩下的3层为全连接层。网络结构分为上下两层,分别对应两个GPU的操作过程,除了中间某些层(C3卷积层和F6−8全连接层会有GPU间的交互),其他层两个GPU分别计算结果。最后一层全连接层的输出作为 softmax的输入,得到1000个图像分类标签对应的概率值。除去GPU并行结构的设计,AlexNet网络结构与LeNet十分相似,其网络参数配置如表4.2所示。

image.png

卷积层C1输入为224×224×3的图片数据,分别在两个GPU中经过核为11×11×3、步长(stride)为4的卷积后,分别得到两条独立的55×55×48的输出数据。

下采样层Smax实际上是嵌套在卷积中的最大池化操作,但是为了区分没有采用最大池化的卷积层单独列出来。在C12卷积层中的池化操作之后(ReLU激活操作之前),还有一个LRN操作,用作对相邻特征点的归一化处理。

卷积层C3的输入与其他卷积层不同,13×13×192×2GPU13×13×192×2表示汇聚了上一层网络在两个GPU上的输出结果作为输入,所有在进行卷积操作时通道上的卷积核维度为384。

全连接层F68中输入数据尺寸也和C3类似,都是融合了两个GPU流向的输出结果作为输入。

4.2.3 模型特性

  • 所有卷积层都使用ReLU作为非线性映射函数,使模型收敛速度更快。
  • 在多个GPU上进行模型的训练,不但可以提高模型的训练速度,还能提升数据的使用规模。
  • 使用LRN对局部的特征进行归一化,结果作为ReLU激活函数的输入能有效降低错误率。
  • 重叠最大池化(overlapping max pooling),即池化范围z与步长s存在关系z>s(如Smax中核尺度为3×3/2),避免平均池化(average pooling)的平均效应。
  • 使用随机丢弃技术(dropout)选择性地忽略训练中的单个神经元,避免模型的过拟合。

4.3 ZFNet

4.3.1 模型介绍

ZFNet是由Matthew D.Xeiler和Rob Fergus在AlexNet基础上提出的大型卷积网络,在2013年ILSVRC图像分类竞赛中以11.19%的错误率获得冠军(实际上原ZFNet所在的队伍并不是真正的冠军,原ZFNet以13.51%错误率排在第8,真正的冠军是Clarifai这个队伍,而Clarifai这个队伍所对应的一家初创公式的CEO又是Zeiler,而且Clarifai对ZFNet的改动比较小,所以通常认为是ZFNet获得了冠军)[3-4]。ZFNet实际上是微调(fine-tuning)了的AlexNet,并通过反卷积(Deconvolution)的方式可视化各层的输出特征图,进一步解释了卷积操作在大型网络中效果显著的原因。

4.3.2 模型结构

图4.4 ZFNet网络结构图(原始结构图与AlexNet风格结构图)

如图4.4所示,ZFNet与AlexNet类似,都是由8层网络组成的卷积神经网络,其中包含5层卷积层和3层全连接层。两个网络结构最大的不同在于,ZFNet第一层卷积采用了7×7×3/2的卷积核替代了AlexNet中第一层卷积核11×11×3/4的卷积核。图4.5中ZFNet相比于AlexNet在第一层输出的特征图中包含更多中间频率的信息,而AlexNet第一层输出的特征图大多是低频或高频的信息,对中间频率特征的缺失导致后续网络层次如图4.5(c)能够学习到的特征不够细致,而导致这个问题的根本原因在于AlexNet在第一层中采用的卷积核和步长过大。

图4.5 (a)ZFNet第一层输出的特征图(b)AlexNet第一层输出的特征图(c)AlexNet第二层输出的特征图(d)ZFNet第二层输出的特征图

表4.3 ZFNet网络参数配置

卷积层C1与AlexNet中的C1有所不同,采用7×7×3的卷积核代替11×11×3/4,使第一层卷积输出的结果可以包含更多的中频率特征,对后续网络层中多样化的特征组合提供更多选择,有利于捕捉更细致的特征。

卷积层C2采用了步长2的卷积核,区别于AlexNet中C2的卷积核步长,所以输出的维度有所差异。

4.3.3 模型特性

ZFNet与AlexNet在结构上几乎相同,此部分虽属于模型特性,但准确地说应该是ZFNet原论文中可视化技术的贡献。

  • 可视化技术揭露了激发模型中每层单独的特征图。
  • 可视化技术允许观察在训练阶段特征的演变过程且诊断出模型的潜在问题。
  • 可视化技术用到了多层解卷积网络,即由特征激活返回到输入像素空间。
  • 可视化技术进行了分类器输出的敏感性分析,即通过阻止部分输入图像来揭示那部分对于分类是重要的。
  • 可视化技术提供了一个非参数的不变性来展示来自训练集的哪一块激活哪个特征图,不仅需要裁剪输入图片,而且自上而下的投影来揭露来自每块的结构激活一个特征图。
  • 可视化技术依赖于解卷积操作,即卷积操作的逆过程,将特征映射到像素上。

4.4 Network in Network

4.4.1 模型介绍

Network in Network(NIN)是由Min Lin等人提出,在CIFAR-10和CIFAR-100分类任务中达到当时的最好水平,因其网络结构是由三个多层感知机堆叠而成被称为NIN[5]。NIN以一种全新的角度审视了卷积神经网络中的卷积核设计,通过引入子网络结构代替纯卷积中的线性映射部分,这种形式的网络结构激发了更复杂的卷积神经网络的结构设计,其中下一节中介绍的GoogleLeNet的Inception结构就是来源于这个思想。

4.4.2 模型结构

图4.6 NIN网络结构图

NIN由三层的多层感知卷积层(MLPConv Layer)构成,每一层多层感知卷积层内部由若干的局部全连接层和非线性激活函数组成,代替了传统卷积层中采用的线性卷积核。在网络推理(inference)时,这个多层感知器会对输入特征图的局部特征进行滑窗计算,并且每个滑窗的局部特征图对应的乘积的权重是共享的,这两点是和传统卷积操作完全一致的,最大的不同在于多层感知器对局部特征进行了非线性的映射,而传统卷积的方式是线性的。NIN的网络参数配置表4.4所示(原论文并未给出网络参数,表中参数为编者结合网络结构图和CIFAR-100数据集以3×3卷积为例给出)。

表4.4 NIN网络参数配置(结合原论文NIN结构和CIFAR-100数据给出)

image.png

局部全连接层L11实际上是对原始输入图像进行划窗式的全连接操作,因此划窗得到的输出特征尺寸为30×30(32−3k+11stride=30) 全连接层L12是紧跟L11后的全连接操作,输入的特征是划窗后经过激活的局部响应特征,因此仅需连接L11和L12的节点即可,而每个局部全连接层和紧接的全连接层构成代替卷积操作的多层感知卷积层(MLPConv)。 全局平均采样层或全局平均池化层GAP(Global Average Pooling)将L32输出的每一个特征图进行全局的平均池化操作,直接得到最后的类别数,可以有效地减少参数量。

4.4.3 模型特性

  • 使用多层感知机结构来代替传统卷积的滤波操作,不但有效减少卷积核数过多而导致的参数量暴涨问题,还能通过引入非线性的映射来提高模型对特征的抽象能力。
  • 使用全局平均池化来代替最后一个全连接层,能够有效地减少参数量(没有可训练的参数),同时池化用到了整个特征图的信息,对空间信息的转换更加鲁棒,最后得到的输出结果可直接作为对应类别的置信度。

相关实践学习
部署Stable Diffusion玩转AI绘画(GPU云服务器)
本实验通过在ECS上从零开始部署Stable Diffusion来进行AI绘画创作,开启AIGC盲盒。
目录
相关文章
|
7天前
|
机器学习/深度学习 人工智能 算法
深度学习入门:理解神经网络与反向传播算法
【9月更文挑战第20天】本文将深入浅出地介绍深度学习中的基石—神经网络,以及背后的魔法—反向传播算法。我们将通过直观的例子和简单的数学公式,带你领略这一技术的魅力。无论你是编程新手,还是有一定基础的开发者,这篇文章都将为你打开深度学习的大门,让你对神经网络的工作原理有一个清晰的认识。
|
3天前
|
机器学习/深度学习 人工智能 自然语言处理
深度学习中的卷积神经网络(CNN)及其应用
【9月更文挑战第24天】本文将深入探讨深度学习中的一种重要模型——卷积神经网络(CNN)。我们将通过简单的代码示例,了解CNN的工作原理和应用场景。无论你是初学者还是有经验的开发者,这篇文章都将为你提供有价值的信息。
18 1
|
8天前
|
机器学习/深度学习 人工智能 自动驾驶
深度学习中的卷积神经网络(CNN)及其在图像识别中的应用
【9月更文挑战第19天】在人工智能的浩瀚星海中,卷积神经网络(CNN)如同一颗璀璨的星辰,照亮了图像处理的天空。本文将深入CNN的核心,揭示其在图像识别领域的强大力量。通过浅显易懂的语言和直观的比喻,我们将一同探索CNN的奥秘,并见证它如何在现实世界中大放异彩。
|
9天前
|
机器学习/深度学习 算法 自动驾驶
深度学习的奥秘:探索神经网络的魔法
【9月更文挑战第18天】本文将带领读者深入理解深度学习背后的科学原理,通过直观的例子和简单的语言解释复杂的技术概念。我们将一起探讨如何通过构建神经网络模型来模拟人脑的工作方式,并了解这一领域如何影响我们的日常生活。
|
8天前
|
机器学习/深度学习 人工智能 算法
植物病害识别系统Python+卷积神经网络算法+图像识别+人工智能项目+深度学习项目+计算机课设项目+Django网页界面
植物病害识别系统。本系统使用Python作为主要编程语言,通过收集水稻常见的四种叶片病害图片('细菌性叶枯病', '稻瘟病', '褐斑病', '稻瘟条纹病毒病')作为后面模型训练用到的数据集。然后使用TensorFlow搭建卷积神经网络算法模型,并进行多轮迭代训练,最后得到一个识别精度较高的算法模型,然后将其保存为h5格式的本地模型文件。再使用Django搭建Web网页平台操作界面,实现用户上传一张测试图片识别其名称。
55 21
植物病害识别系统Python+卷积神经网络算法+图像识别+人工智能项目+深度学习项目+计算机课设项目+Django网页界面
|
8天前
|
机器学习/深度学习 人工智能 算法
鸟类识别系统Python+卷积神经网络算法+深度学习+人工智能+TensorFlow+ResNet50算法模型+图像识别
鸟类识别系统。本系统采用Python作为主要开发语言,通过使用加利福利亚大学开源的200种鸟类图像作为数据集。使用TensorFlow搭建ResNet50卷积神经网络算法模型,然后进行模型的迭代训练,得到一个识别精度较高的模型,然后在保存为本地的H5格式文件。在使用Django开发Web网页端操作界面,实现用户上传一张鸟类图像,识别其名称。
51 12
鸟类识别系统Python+卷积神经网络算法+深度学习+人工智能+TensorFlow+ResNet50算法模型+图像识别
|
8天前
|
机器学习/深度学习 算法 TensorFlow
交通标志识别系统Python+卷积神经网络算法+深度学习人工智能+TensorFlow模型训练+计算机课设项目+Django网页界面
交通标志识别系统。本系统使用Python作为主要编程语言,在交通标志图像识别功能实现中,基于TensorFlow搭建卷积神经网络算法模型,通过对收集到的58种常见的交通标志图像作为数据集,进行迭代训练最后得到一个识别精度较高的模型文件,然后保存为本地的h5格式文件。再使用Django开发Web网页端操作界面,实现用户上传一张交通标志图片,识别其名称。
37 6
交通标志识别系统Python+卷积神经网络算法+深度学习人工智能+TensorFlow模型训练+计算机课设项目+Django网页界面
|
4天前
|
机器学习/深度学习 人工智能 算法
【新闻文本分类识别系统】Python+卷积神经网络算法+人工智能+深度学习+计算机毕设项目+Django网页界面平台
文本分类识别系统。本系统使用Python作为主要开发语言,首先收集了10种中文文本数据集("体育类", "财经类", "房产类", "家居类", "教育类", "科技类", "时尚类", "时政类", "游戏类", "娱乐类"),然后基于TensorFlow搭建CNN卷积神经网络算法模型。通过对数据集进行多轮迭代训练,最后得到一个识别精度较高的模型,并保存为本地的h5格式。然后使用Django开发Web网页端操作界面,实现用户上传一段文本识别其所属的类别。
18 1
【新闻文本分类识别系统】Python+卷积神经网络算法+人工智能+深度学习+计算机毕设项目+Django网页界面平台
|
2天前
|
机器学习/深度学习 人工智能 自然语言处理
深度学习与神经网络:探索复杂数据的表示
【9月更文挑战第26天】深度学习作为人工智能领域的明珠,通过神经网络自动从大数据中提取高级特征,实现分类、回归等任务。本文介绍深度学习的基础、张量表示、非线性变换、反向传播及梯度下降算法,并探讨其在计算机视觉、自然语言处理等领域的应用与挑战。未来,深度学习将更加智能化,揭示数据背后的奥秘。
|
8天前
|
机器学习/深度学习 人工智能 算法
深度学习中的卷积神经网络(CNN)入门与实践
【9月更文挑战第19天】在这篇文章中,我们将探索深度学习的一个重要分支——卷积神经网络(CNN)。从基础概念出发,逐步深入到CNN的工作原理和实际应用。文章旨在为初学者提供一个清晰的学习路径,并分享一些实用的编程技巧,帮助读者快速上手实践CNN项目。