logo资料库

目标分类网络总结.pdf

第1页 / 共26页
第2页 / 共26页
第3页 / 共26页
第4页 / 共26页
第5页 / 共26页
第6页 / 共26页
第7页 / 共26页
第8页 / 共26页
资料共26页,剩余部分请下载后查看
一、keras 的几个主流 cnn 模型比较 二、 Lenet LeNet5 特征能够总结为如下几点: 1)卷积神经网络使用三个层作为一个系列: 卷积,池化,非线性 2) 使用卷积提取空间特征 3)使用映射到空间均值下采样(subsample) 4)双曲线(tanh)或 S 型(sigmoid)形式的非线性 5)多层神经网络(MLP)作为最后的分类器 6)层与层之间的稀疏连接矩阵避免大的计算成本 三、 AlexNet 3.1 网络结构 Layer-1: 输入:长*宽*色深(224*224*3) 卷积:长*宽*通道*步长(11*11*96*4),这里的卷积结果被一分为二,后续 将会在两个独立的 GPU 上进行同步操作 激活函数:ReLU
池化:最大池化长*宽*步长(3*3*2) 备注:添加 LRN 输出:长*宽*通道(27*27*96),且分为两组,每组分别为(27*27*48) Layer-2: 输入:长*宽*通道(27*27*48) 卷积:长*宽*通道*步长(5*5*128*1),且采用全零填充,两个 GPU 进行同 步卷积 激活函数:ReLU 池化:最大池化长*宽*步长(3*3*2) 备注:添加 LRN 输出:长*宽*通道(13*13*128) Layer-3: 输入:长*宽*通道(13*13*128) 卷积:长*宽*通道*步长(3*3*192*1),且采用全零填充,两个 GPU 进行同 步卷积,输出结果交叉运算 激活函数:ReLU 输出:长*宽*通道(13*13*192) Layer-4: 输入:长*宽*通道(13*13*192) 卷积:长*宽*通道*步长(3*3*192*1),且采用全零填充,两个 GPU 进行同 步卷积 激活函数:ReLU 输出:长*宽*通道(13*13*192) Layer-5: 输入:长*宽*通道(13*13*192) 卷积:长*宽*通道*步长(3*3*128*1),且采用全零填充,两个 GPU 进行同 步卷积 激活函数:ReLU 池化:最大池化长*宽*步长(3*3*2)
输出:长*宽*通道(6*6*128) 全连接层 Layer-6: 输入:将特征矩阵拉成一维的 List,且分为两组,(6*6*256)/2=4096 全连接层:shape = (4096,2048),两组 GPU 同步计算 激活函数:ReLU 备注:添加 dropout 输出:节点*通道(2048*2) Layer-7: 输入:两组 2048 的节点参数 全连接层:shape = (2048,2048),两组 GPU 同步计算 激活函数:ReLU 备注:添加 dropout 输出:节点*通道(2048*2) Layer-8: 输入:两组 2048 的节点参数在通道上进行拼接,组成 4096 的节点参数 全连接层:shape = (4096,1000),则一 GPU 进行计算即可 备注:最后一层采用 softmax 输出:经 softmax 后的答案,1000 种
3.2 AlexNet 简介 AlexNet 2012 年,Hinton 的学生 Alex Krizhevsky 提出了深度卷积神经网络模 型 AlexNet,它可以算是 LeNet 的一种更深更宽的版本。AlexNet 中包含了几个比 较新的技术点,也首次在 CNN 中成功应用了 ReLU、Dropout 和 LRN 等 Trick。同 时 AlexNet 也使用了 GPU 进行运算加速,作者开源了他们在 GPU 上训练卷积神 经网络的 CUDA 代码。AlexNet 包含了 6 亿 3000 万个连接,6000 万个参数和 65 万个神经元,拥有 5 个卷积层,其中 3 个卷积层后面连接了最大池化层,最后还 有 3 个全连接层。AlexNet 以显著的优势赢得了竞争激烈的 ILSVRC 2012 比赛, top-5 的错误率降低至了 16.4%,相比第二名的成绩 26.2%错误率有了巨大的提 升。AlexNet 可以说是神经网络在低谷期后的第一次发声,确立了深度学习(深 度卷积网络)在计算机视觉的统治地位,同时也推动了深度学习在语音识别、自 然语言处理、强化学习等领域的拓展。 3.3 AlexNet 优点 AlexNet 将 LeNet 的思想发扬光大,把 CNN 的基本原理应用到了很深很宽的 网络中。AlexNet 主要使用到的新技术点如下。 (1)成功使用 ReLU 作为 CNN 的激活函数,并验证其效果在较深的网络超 过了 Sigmoid,成功解决了 Sigmoid 在网络较深时的梯度弥散问题。虽然 ReLU 激 活函数在很久之前就被提出了,但是直到 AlexNet 的出现才将其发扬光大。 (2)训练时使用 Dropout 随机忽略一部分神经元,以避免模型过拟合。 Dropout 虽有单独的论文论述,但是 AlexNet 将其实用化,通过实践证实了它的 效果。在 AlexNet 中主要是最后几个全连接层使用了 Dropout。 (3)在 CNN 中使用重叠的最大池化。此前 CNN 中普遍使用平均池化,AlexNet 全部使用最大池化,避免平均池化的模糊化效果。并且 AlexNet 中提出让步长比 池化核的尺寸小,这样池化层的输出之间会有重叠和覆盖,提升了特征的丰富性。 (4)提出了 LRN 层,对局部神经元的活动创建竞争机制,使得其中响应比 较大的值变得相对更大,并抑制其他反馈较小的神经元,增强了模型的泛化能力。 (5)使用 CUDA 加速深度卷积网络的训练,利用 GPU 强大的并行计算能力,
处理神经网络训练时大量的矩阵运算。AlexNet 使用了两块 GTX 580 GPU 进行训 练,单个 GTX 580 只有 3GB 显存,这限制了可训练的网络的最大规模。因此作 者将 AlexNet 分布在两个 GPU 上,在每个 GPU 的显存中储存一半的神经元的参 数。因为 GPU 之间通信方便,可以互相访问显存,而不需要通过主机内存,所以 同时使用多块 GPU 也是非常高效的。同时,AlexNet 的设计让 GPU 之间的通信只 在网络的某些层进行,控制了通信的性能损耗。 (6)数据增强,随机地从 256´256 的原始图像中截取 224´224 大小的区域 (以及水平翻转的镜像),相当于增加了(256-224)2´2=2048 倍的数据量。如果没 有数据增强,仅靠原始的数据量,参数众多的 CNN 会陷入过拟合中,使用了数 据增强后可以大大减轻过拟合,提升泛化能力。进行预测时,则是取图片的四个 角加中间共 5 个位置,并进行左右翻转,一共获得 10 张图片,对他们进行预测 并对 10 次结果求均值。同时,AlexNet 论文中提到了会对图像的 RGB 数据进行 PCA 处理,并对主成分做一个标准差为 0.1 的高斯扰动,增加一些噪声,这个 Trick 可以让错误率再下降 1%。 3.4 局部响应归一化 LRN(Local Response Normalization) 参考:https://blog.csdn.net/yangdashi888/article/details/77918311 https://blog.csdn.net/hduxiejun/article/details/70570086 局部响应归一化原理是仿造生物学上活跃的神经元对相邻神经元的抑制现 象(侧抑制),然后根据论文有公式如下 这个公式中的 a 表示卷积层(包括卷积操作和池化操作)后的输出结果,这 个输出结果的结构是一个四维数组[batch,height,width,cha nnel],这里可以简单解 释一下,batch 就是 批次数(每一批为一张图片),height 就是图片高度,width 就 是图片宽度,channel 就是通道数可以理解成一批图片中的某一个图片经 过卷积 操作后输出的神经元个数(或是理解 成处理后的图片深度)。ai(x,y)表示在这个输 出结构中的一个位置[a,b,c,d],可以理解成在某一张图中的某一个通道下的某个
高度和某 个宽度位置的点,即第 a 张图的第 d 个通道下 的高度为 b 宽度为 c 的 点。论文公式中的 N 表示通道数(channel)。a,n/2,k,α,β 分别表示函数中的 input,depth_radius,bias,alpha,beta,其 中 n/2,k,α,β 都是自定义的,特别注意一下 ∑叠加的方向是沿着通道方向的,即每个点值的平方和是沿着 a 中的第 3 维 channel 方向 的,也就是一个点同方向的前面 n/2 个通 道(最小为第 0 个通道) 和后 n/2 个通道(最大为第 d-1 个通道)的点的平方和(共 n+1 个点)。而函数的 英文注解中也说明了把 input 当 成是 d 个 3 维的矩阵,说白了就是把 input 的通 道 数当作 3 维矩阵的个数,叠加的方向也是在 通道方向。 画个简单的示意图 四、Vgg net 4.1 介绍 VGGNet 是牛津大学计算机视觉组(Visual Geometry Group)和 Google DeepMind 公司的研究员一起研发的的深度卷积神经网络。VGGNet 探索了卷积神 经网络的深度与其性能之间的关系,通过反复堆叠 3´3 的小型卷积核和 2´2 的最大 池化层,VGGNet 成功地构筑了 16~19 层深的卷积神经网络。VGGNet 相比之前 state-of-the-art 的网络结构,错误率大幅下降,并取得了 ILSVRC 2014 比赛分类 项目的第 2 名和定位项目的第 1 名。同时 VGGNet 的拓展性很强,迁移到其他图片 数据上的泛化性非常好。VGGNet 的结构非常简洁,整个网络都使用了同样大小的 卷积核尺寸(3´3 )和最大池化尺寸(2´2 )。到目前为止,VGGNet 依然经常被用来 提取图像特征。VGGNet 训练后的模型参数在其官方网站上开源了,可用来在 domain specific 的图像分类任务上进行再训练(相当于提供了非常好的初始化权
重),因此被用在了很多地方。 4.2 Vgg 网络结构 4.3 Vgg 特点 VGGNet 拥有 5 段卷积,每一段内有 2~3 个卷积层,同时每段尾部会连接一个 最大池化层用来缩小图片尺寸。每段内的卷积核数量一样,越靠后的段的卷积核数 量越多:64 – 128 – 256 – 512 – 512。其中经常出现多个完全一样的 3´3 的卷
积层堆叠在一起的情况,这其实是非常有用的设计。如图 8 所示,两个 3´3 的卷积 层串联相当于 1 个 5´5 的卷积层,即一个像素会跟周围 5´5 的像素产生关联,可以 说感受野大小为 5´5 。而 3 个 3´3 的卷积层串联的效果则相当于 1 个 7´7 的卷积层。 除此之外,3 个串联的 3´3 的卷积层,拥有比 1 个 7´7 的卷积层更少的参数量,只 有后者的。最重要的是,3 个 3´3 的卷积层拥有比 1 个 7´7 的卷积层更多的非线性 变换(前者可以使用三次 ReLU 激活函数,而后者只有一次),使得 CNN 对特征的 学习能力更强。 五、Network in network 网络中的网络(NiN,参见论文:Network In Network)的思路简单又伟大: 使用 1×1 卷积为卷积层的特征提供更组合性的能力。 NiN 架构在各个卷积之后使用空间 MLP 层,以便更好地在其他层之前组合 特征。同样,你可以认为 1×1 卷积与 LeNet 最初的原理相悖,但事实上它们 可以以一种更好的方式组合卷积特征,而这是不可能通过简单堆叠更多的卷积特 征做到的。这和使用原始像素作为下一层输入是有区别的。其中 1×1 卷积常常 被用于在卷积之后的特征映射上对特征进行空间组合,所以它们实际上可以使用 非常少的参数,并在这些特征的所有像素上共享! MLP 的能力能通过将卷积特征组合进更复杂的组(group)来极大地增加单 个卷积特征的有效性。这个想法之后被用到一些最近的架构中,例如 ResNet、 Inception 及其衍生技术。 NiN 也使用了平均池化层作为最后分类器的一部分(这里作者说的有异议, 全连接层替换成平均池化层,NIN 提出的),这是另一种将会变得常见的实践。 这是通过在分类之前对网络对多个输入图像的响应进行平均完成的。
分享到:
收藏