ImageNet

ImageNet是一个包含超过1 500万幅手工标记的高分辨率图像的数据库,大约有22 000个类别。该数据库组织类似于WordNet的层次结构,其中每个领域叫同义词集合。每个同义词集合都是ImageNet层次结构中的一个节点。每个节点都包含超过500幅图像。

ImageNet大规模视觉识别挑战赛(ILSVRC)成立于2010年,旨在提高大规模目标检测和图像分类的最新技术。

LeNet-5

介绍

卷积神经网络算法是199年前就有的算法,是卷积神经网络的开山始祖。

原理

在这里插入图片描述
C1层是一个卷积层,由6个特征图Feature Map构成。特征图中每个神经元与输入为5∗55*55∗5的邻域相连。特征图的大小为28∗2828*2828∗28,这样能防止输入的连接掉到边界之外(32−5+1=28)(32-5+1=28)(32−5+1=28)。C1有156个可训练参数(每个滤波器5∗5=255*5=255∗5=25个unit参数和一个bias参数,一共6个滤波器,共(5∗5+1)∗6=156(5*5+1)*6=156(5∗5+1)∗6=156个参数),共156∗(28∗28)=122,304156*(28*28)=122,304156∗(28∗28)=122,304个连接。

S2层是一个下采样层,有6个14∗1414*1414∗14的特征图。特征图中的每个单元与C1中相对应特征图的2∗22*22∗2邻域相连接。S2层每个单元的4个输入相加,乘以一个可训练参数,再加上一个可训练偏置。每个单元的2∗22*22∗2感受野并不重叠,因此S2中每个特征图的大小是C1中特征图大小的1/4(行和列各1/2)。S2层有12(6∗(1+1)=12)12(6*(1+1)=12)12(6∗(1+1)=12)个可训练参数和5880(14∗14∗(2∗2+1)∗6=5880)5880(14*14*(2*2+1)*6=5880)5880(14∗14∗(2∗2+1)∗6=5880)个连接。

C3层也是一个卷积层,它同样通过5x5的卷积核去卷积层S2,然后得到的特征map就只有10x10个神经元,但是它有16种不同的卷积核,所以就存在16个特征map了。C3中每个特征图由S2中所有6个或者几个特征map组合而成。为什么不把S2中的每个特征图连接到每个C3的特征图呢?原因有2点。第一,不完全的连接机制将连接的数量保持在合理的范围内。第二,也是最重要的,其破坏了网络的对称性。由于不同的特征图有不同的输入,所以迫使他们抽取不同的特征(希望是互补的)。

S4层是一个下采样层,由16个5∗55*55∗5大小的特征图构成。特征图中的每个单元与C3中相应特征图的2∗22*22∗2邻域相连接,跟C1和S2之间的连接一样。S4层有32个可训练参数(每个特征图1个因子和一个偏置16∗(1+1)=32)16*(1+1)=32)16∗(1+1)=32)和2000(16∗(2∗2+1)∗5∗5=2000)2000(16*(2*2+1)*5*5=2000)2000(16∗(2∗2+1)∗5∗5=2000)个连接。

F6层有84个单元(之所以选这个数字的原因来自于输出层的设计),与C5层全相连。有10164(84∗(120∗(1∗1)+1)=10164)10164(84*(120*(1*1)+1)=10164)10164(84∗(120∗(1∗1)+1)=10164)个可训练参数。如同经典神经网络,F6层计算输入向量和权重向量之间的点积,再加上一个偏置。然后将其传递给sigmoid函数产生单元i的一个状态。
最后,输出层由欧式径向基函数(Euclidean Radial Basis Function)单元组成,每类一个单元,每个有84个输入。

AlexNet架构

在第一次运行中,该网络使用ReLU激活函数和0.5概率的dropout来对抗过拟合。如图4-3所示,架构中使用了一个标准化层,但是由于该网络使用了大量的数据增强,因此在实践中不再使用该标准化层。虽然有更精确的网络可用,但由于AlexNet相对简单的网络结构和较小的深度,AlexNet在今天仍然广泛使用。

VGG网络架构

介绍

2012年 AlexNet 在 ImageNet 上显著地降低了分类错误率,深度神经网络进入迅速发展阶段。VGG有两种结构,分别是VGG16和VGG19,VGG16是一个16层的神经网络,不包括最大池化层和softmax层。因此被称为VGG16。VGG19由19个层组成,在Keras中,Theano和TensorFlow后端都有一个预先训练好的模型。

原理

这里的关键设计考虑是深度。基于所有层中大小为3×3的卷积滤波器,可以通过添加更多的卷积层来增加网络深度。这个模型的输入图像的默认大小是224×224×3。图像以步长1、填充值1通过一系列卷积层。整个网络中的卷积大小都是3×3。最大池化层以步长2通过2×2的窗口滑动,然后是另一个卷积层,后面是三个全连接层。前两个全连接层各有4 096个神经元,第三个全连接层有1 000个神经元,主要负责分类。最后一层是softmax层VGG16使用一个较小的3×3卷积窗口,相比之下,AlexNet的11×11卷积窗口要大得多。所有隐含层构建过程都使用了ReLU激活函数。VGGNet架构如图4-5所示。

由于小的3×3卷积滤波器,使得VGGNet深度增加。该网络的参数数量约为1.4亿个,大部分来自于第一个全连接层。在现代架构中,VGGNet的全连接层被全局平均池化(GAP)层替代,以最小化参数数量。

注意我们不需要全连接层,所以网络就定义到最后一个卷积层为止。使用全连接层会将输入大小限制为224×224,即ImageNet原图片的大小。这是因为如果输入的图片大小不是224×224,在从卷积过度到全链接时向量的长度与模型指定的长度不相符。

GoogLeNet架构

GoogLeNet最吸引人之处在于它的运行速度非常快,主要原因是由于它引入了一个叫inception模块的新概念,从而将参数数量减少到500万个,是AlexNet的1/12。同时它的内存和功耗也都更低。

GoogLeNet有22层,所以它是一个非常深的网络。添加的层数越多,参数的数量就越多,而且网络很可能出现过拟合。同时计算量将会更大,因为滤波器的线性增加将会导致计算量的二次方增大。所以设计人员使用了inception模块和GAP(Global Average Pooling,全局池化层)。因为全连接层容易过拟合,因此在网络末端将使用GAP替代全连接层。GAP没有需要学习或优化的参数。

模型概述

与前面架构不同,GoogLeNet设计人员没有选择特定的滤波器大小,而是将大小为1×1、3×3和5×5的所有三个滤波器和3×3的最大池化层都应用到同一个补丁中,并连接到单个输出向量中。
在GoogLeNet中,inception模块一个叠着一个。这种堆叠允许我们修改每个模块而不影响后面的层。例如,你可以增加或减少任何一层的宽度。

深度网络在反向传播过程中也会遇到所谓的梯度消失问题。通过在中间层添加辅助分类器可以避免这种情况。此外,在训练过程中,中间层的损失将乘以因子0.3计入总损失。
由于全连接层容易出现过拟合,所以用GAP层来替代。平均池化不排除使用dropout,这是一种在深度神经网络中克服过拟合的正则化方法GoogLeNet在60之后添加一个线性层和一个GAP层,通过运用转移学习技术来帮助其他层滑动自己的分类器。

inception模块

ResNet架构

在一定深度后,向前反馈convNet添加额外层会导致更高的训练误差和验证误差。性能只会随着层的增加而增加到一定深度,然后会迅速下降。在ResNet(残余网络)论文中,作者认为这种低度拟合未必是由梯度消失问题导致的,因为当使用批处理标准化技术时也会发生这种情况。因此,他们增加了一个新的概念叫残余块。ResNet团队向网络中添加了可以跳过卷积层的连接。

卷积神经网络的几种典型架构相关推荐

  1. 深度学习几种典型架构

    深度学习几种典型架构 http://blog.sina.com.cn/s/blog_cfa68e330102zfaf.html 介绍几种典型的深度学习架构. 卷积神经网络(CNN) 卷积神经网络由Le ...

  2. DL之CNN:计算机视觉之卷积神经网络算法的简介(经典架构/论文)、CNN优化技术、调参学习实践、CNN经典结构及其演化、案例应用之详细攻略

    DL之CNN:计算机视觉之卷积神经网络算法的简介(经典架构/论文).CNN优化技术.调参学习实践.CNN经典结构.案例应用之详细攻略 目录 卷积神经网络算法的简介 0.Biologically Ins ...

  3. 领域驱动设计(DDD)架构演进和DDD的几种典型架构介绍(图文详解)

    我们生活中都听说了DDD,也了解了DDD,那么怎么将一个新项目从头开始按照DDD的过程进行划分与架构设计呢? 一.专业术语 各种服务 IAAS:基础设施服务,Infrastructure-as-a-s ...

  4. CNN卷积神经网络的三种基本模式(不懂的话还得多努力啊!)

    https://www.toutiao.com/i6652175494592594445/ 2019-01-30 14:38:22 通常用外部api进行卷积的时候,会面临mode选择. 这里清晰展示三 ...

  5. padding和卷积的区别_TensorFlow笔记1——20.CNN卷积神经网络padding两种模式SAME和VALID...

    第1种解说:(核心最后一张图,两种填充方式输出的形状尺寸计算公式) 在用tensorflow写CNN的时候,调用卷积核api的时候,会有填padding方式的参数,找到源码中的函数定义如下(max p ...

  6. 卷积神经网络只是一种全连接神经网络的特殊情况

    如图所示: 图片输入可以转换成一个一维向量,确定好卷积滤波器参数后,就可以确定整个参数矩阵(对应全连接层的w)哪些是0,哪些是需要计算的 第一行参数对应于与第一个输出相连的参数:第一次卷积 第二行参数 ...

  7. 045基于卷积神经网络的94种矿石识别

    demo仓库和视频演示找045期: 银色子弹zg的个人空间-银色子弹zg个人主页-哔哩哔哩视频 效果展示图如下: 代码文件展示如下: 运行01数据集文本生成制作.py可以读取图片路径保存再txt文本中 ...

  8. cs231n-(7)卷积神经网络:架构,卷积层/池化层

    架构总览 常用的层 卷积层 概述 池化层 归一化层 全连接层 全连接层转为卷积层 卷积网络架构 层模式 层大小设计模式 实例 计算资源考虑 额外资源 卷积神经网络和普通神经网络非常类似.卷积神经网络由 ...

  9. 几种主要的神经网络----全连接神经网络、前馈神经网络、卷积神经网络、循环神经网络

    几种主要的神经网络 一.全连接神经网络 二.前馈神经网络(Feedforward neural network,FNN) 三.卷积神经网络(Convolutional Neural Network,C ...

最新文章

  1. TD321DCAN 隔离CAN总线驱动器
  2. F1 score的意义
  3. GDCM:串联/提取DICOM文件的测试程序
  4. 多元统计分析最短距离法_多元统计分析重点
  5. 张帅用赢球庆生 搭档斯托瑟晋级澳网女双八强
  6. 【Python CheckiO 题解】The Warriors
  7. FBV(function base views) 顾名思义基于函数的视图类 CBV(class base views)基于类的视图类
  8. php+mysql投票代码_PHP+jQuery+MySql实现红蓝投票功能
  9. python里面print是什么意思_python里print是什么意思
  10. XEIM 配置程序源代码
  11. BASE64Encoder及BASE64Decoder的正确用法
  12. Magento:Paypal付款不成功返回后不要清空购物车产品的解决方案
  13. C ++中的初始化程序列表– std :: initializer_list
  14. Javascript第六章prototype原型向构造器中添加属性,实现构造器共享,节约空间第五课
  15. 六自由度机械臂研究(1)- 简介, 自由度与改装
  16. php短信接口开发(http协议)
  17. Tube Downloader(视频下载工具)
  18. 风景日历java制作_风景日历制作系统
  19. 【思维导图训练2】--发散思维的秘诀
  20. 如何使用Java以编程方式在 Excel 中创建图表

热门文章

  1. html 调用tcpdump,Linux tcpdump命令的用法详解(内容较多)
  2. anaconda和python都有_Anaconda和python有什么区别-Anaconda和python区别介绍
  3. .net 链oracle,.net链数据库oracle
  4. oracle数据库修改归档和非归档模式
  5. linux xmind无法运行,linux安装xmind的方法步骤
  6. java怎么抛出异常_java中如何抛出异常使程序不中断(7)
  7. php psot传值_三种方法教你如何用PHP模拟post提交数据
  8. 汇编:分段函数的值的计算
  9. 查看linux服务器的配置
  10. MVC(Java , C# ,php)