本节介绍几种广泛使用的典型深层卷积神经网络。

LeNet-5

LeNet-5[LeCun et al., 1998]虽然提出的时间比较早,但是是一个非常成功
的神经网络模型。基于LeNet-5的手写数字识别系统在90年代被美国很多银行
使用,用来识别支票上面的手写数字。

LeNet-5的网络结构如图所示。

不计输入层,LeNet-5共有7层,每一层的结构为:

  1. 输入层:输入图像大小为32 × 32 = 1024。

  2. C1层是卷积层,使用6个5 × 5的滤波器,得到6组大小为28 × 28 = 784的特征映射。因此,C1层的神经元数量为6 × 784 = 4,704,可训练参数
    数量为6 × 25 + 6 = 156,连接数为156 × 784 = 122,304(包括偏置在内,
    下同)。

  3. S2层为汇聚层,采样窗口为2×2,使用平均汇聚,并使用一个非线性函数。神经元个数为6 × 14 × 14 = 1,176,可训练参数数量为6 × (1 + 1) = 12,连接数为6 × 196 × (4 + 1) = 5,880。

  4. C3层为卷积层。LeNet-5中用一个连接表来定义输入和输出特征映射之间
    的依赖关系,如图5.11所示,共使用60个5×5的滤波器,得到16组大小
    为10×10的特征映射。神经元数量为16×100 = 1,600,可训练参数数量为(60 × 25) + 16 = 1,516,连接数为100 × 1,516 = 151,600。
    (如果不使用连接表,则需要
    96个5 × 5的滤波器)。

  5. S4层是一个汇聚层,采样窗口为2 × 2,得到16个5 × 5大小的特征映射,
    可训练参数数量为16 × 2 = 32,连接数为16 × 25 × (4 + 1) = 2000。

  6. C5层是一个卷积层,使用120 × 16 = 1,920个5 × 5的滤波器,得到120
    组大小为1 × 1的特征映射。C5层的神经元数量为120,可训练参数数量
    为1,920 × 25 + 120 = 48,120,连接数为120 × (16 × 25 + 1) = 48,120。

  7. F6层是一个全连接层,有84个神经元,可训练参数数量为84×(120+1) =
    10,164。连接数和可训练参数个数相同,为10,164。

  8. 输出层:输出层由10个欧氏径向基函数(Radial Basis Function,RBF)
    函数组成。这里不再详述。

可以知道,卷积层的每一个输出特征映射都依赖于所有输入特征映射,相当于卷积层的输入和输出特征映射之间是全连接的关系。实际上,这种全连接关系不是必须的。我们可以让每一个输出特征映射都依赖于少数几个输入特征映射。

定义一个连接表(Link Table) T T T 来描述输入和输出特征映射之间的连接关系。如果第 p p p个输出特征映射依赖于第 d d d个输入特征映射,则
T p , d = 1 T_{p,d} = 1 Tp,d​=1,否则为0。

Y p = f ( ∑ d , T p , d = 1 W p , d ⊗ X d + b p ) Y^p=f\left(\sum\limits_{d,\\ T_{p,d}=1}W^{p,d}\otimes X^d+b^p\right) Yp=f ​d,Tp,d​=1∑​Wp,d⊗Xd+bp ​
其中 T T T 为 P × D P × D P×D大小的连接表。假设连接表 T T T 的非零个数为 K K K,每个滤波器的
大小为 m × n m × n m×n,那么共需要 K × m × n + P K × m × n + P K×m×n+P 参数。

在LeNet-5中,连接表的基本设定如图所示。C3层的第0-5个特征映射
依赖于S2层的特征映射组的每3个连续子集,第6-11个特征映射依赖于S2层
的特征映射组的每4个连续子集,第12-14个特征映射依赖于S2层的特征映射
的每4个不连续子集,第15个特征映射依赖于S2层的所有特征映射。

论文地址:
http://vision.stanford.edu/cs598_spring07/papers/Lecun98.pdf

AlexNet

AlexNet[Krizhevsky et al., 2012]是第一个现代深度卷积网络模型,其首次使用了很多现代深度卷积网络的一些技术方法,比如使用GPU进行并行训练,
采用了ReLU作为非线性激活函数,使用Dropout防止过拟合,使用数据增强
来提高模型准确率等。

AlexNet赢得了2012年ImageNet图像分类竞赛的冠军。
AlexNet的结构如图所示,包括5个卷积层、3个全连接层和1个softmax
层。因为网络规模超出了当时的单个GPU的内存限制,AlexNet将网络拆为两半,分别放在两个GPU上,GPU间只在某些层(比如第3层)进行通讯。


AlexNet的具体结构如下:

  1. 输入层,224 × 224 × 3的图像;
  2. 第一个卷积层,使用两个11 × 11 × 3 × 48的卷积核,步长s = 4,零填充
    p = 3,得到两个55 × 55 × 48的特征映射组。
  3. 第一个汇聚层,使用大小为3×3的最大汇聚操作,步长s = 2,得到两个
    27 × 27 × 48的特征映射组。
  4. 第二个卷积层,使用两个 5×5×48×128的卷积核,步长s = 1,零填充
    p = 1,得到两个27 × 27 × 128的特征映射组。
  5. 第二个汇聚层,使用大小为3×3的最大汇聚操作,步长s = 2,得到两个
    13 × 13 × 128的特征映射组。
  6. 第三个卷积层为两个路径的融合,使用一个 3 × 3 × 256 × 384的卷积核,
    步长s = 1,零填充p = 1,得到两个13 × 13 × 192的特征映射组。
  7. 第四个卷积层,使用两个 3 × 3 × 192 × 192的卷积核,步长s = 1,零填
    充p = 1,得到两个13 × 13 × 192的特征映射组。
  8. 第五个卷积层,使用两个 3 × 3 × 192 × 128的卷积核,步长s = 1,零填
    充p = 1,得到两个13 × 13 × 128的特征映射组。
  9. 汇聚层,使用大小为3×3的最大汇聚操作,步长s = 2,得到两个6×6×128
    的特征映射组。
  10. 三个全连接层,神经元数量分别为4096,4096和1000。

Alex-Net是计算机视觉中首个被广泛关注、使用的卷积神经网络,特别是在2012年ImageNet竞赛中以超越第二名10.9个百分点的优异成绩一举夺冠,从而打响了卷积神经网络、乃至深度学习在计算机视觉领域中研究热潮的“第一枪”。

Alex-Net由加拿大多伦多大学的Alex Krizhevsky ,Ilya Sutskever(Hinton的两位博士生)和 提出,网络名“Alex-Net”即取自第一作者。

不过仍需指出 Alex-Net 的几点重大贡献,正因如此,Alex-Net 方可在整个卷积神经网络甚至连接主义机器学习发展进程中占据里程碑式的地位。

1.Alex-Net 首次将卷积神经网络应用于计算机视觉领域的海量图像数据集ImageNet(该数据集共计 1000 类图像,图像总数约 128 多万张),揭示了卷积神经网络拥有强大的学习能力和表示能力。另一方面,海量数据同时也使卷积神经网络免于过拟合。可以说二者相辅相成,缺一不可。自此便引发了深度学习,特别是卷积神经网络在计算机视觉中“井喷”式的研究。

2.利用 GPU 实现网络训练。在上一轮神经网络研究热潮中,由于计算资源发展受限,研究者无法借助更加高效的计算手段 (如 GPU),这也较大程度阻碍了当时神经网络的研究进程。“工欲善其事,必先利其器”,在Alex-Net 中,研究者借助 GPU 从而将原本需数周甚至数月的网络训练过程大大缩短至五到六天。在揭示卷积神经网络强大能力的同时,无疑也大大缩短了深度网络和大型网络模型开发研究的周期与时间成本。缩短了迭代周期,数量繁多、立意新颖的网络模型和应用才能像雨后春笋一般层出不穷。

3.一些训练技巧的引入使“不可为”变“可为”,甚至是“大有可为”。如ReLU 激活函数、局部响应规范化操作、为防止过拟合而采取的数据增广(data augmentation)和随机失活(dropout) 等,这些训练技巧不仅保证了模型性能,更重要的是为后续深度卷积神经网络的构建提供了范本。实际上,此后的卷积神经网络大体都是遵循这一网络构建的基本思路。

论文地址:
https://proceedings.neurips.cc/paper/2012/file/c399862d3b9d6b76c8436e924a68c45b-Paper.pdf


论文复现代码下载:在「阿远学长」公众号后台回复:
【论文代码】
即可领取

经典卷积神经网络(一):LeNet-5和AlexNet相关推荐

  1. Pytorch之CNN:基于Pytorch框架实现经典卷积神经网络的算法(LeNet、AlexNet、VGG、NIN、GoogleNet、ResNet)——从代码认知CNN经典架构

    Pytorch之CNN:基于Pytorch框架实现经典卷积神经网络的算法(LeNet.AlexNet.VGG.NIN.GoogleNet.ResNet)--从代码认知CNN经典架构 目录 CNN经典算 ...

  2. 【深度学习基础】经典卷积神经网络

    点击上方"小白学视觉",选择加"星标"或"置顶" 重磅干货,第一时间送达 导语 卷积神经网络(Convolutional Neural Ne ...

  3. AI基础:经典卷积神经网络

    导语 卷积神经网络(Convolutional Neural Networks, CNN)是一类包含卷积计算且具有深度结构的前馈神经网络(Feedforward Neural Networks),是深 ...

  4. 一文总结经典卷积神经网络CNN模型

    一般的DNN直接将全部信息拉成一维进行全连接,会丢失图像的位置等信息. CNN(卷积神经网络)更适合计算机视觉领域.下面总结从1998年至今的优秀CNN模型,包括LeNet.AlexNet.ZFNet ...

  5. Tensorflow系列 | TensorFlowNews五大经典卷积神经网络介绍

    编译 | fendouai 编辑 | 安可 [导读]:这个系列文章将会从经典的卷积神经网络历史开始,然后逐个讲解卷积神经网络结构,代码实现和优化方向.下一篇文章将会是 LeNet 卷积神经网络结构,代 ...

  6. CNN(经典卷积神经网络)来了!

    导语 卷积神经网络(Convolutional Neural Networks, CNN)是一类包含卷积计算且具有深度结构的前馈神经网络(Feedforward Neural Networks),是深 ...

  7. 深度学习二三事-回顾那些经典卷积神经网络

    前言 卷积神经网络从2012年开始逐步火热起来.我是在2017年开始接触深度学习技术,完成硕士课题研究,在2019年毕业后以算法工程师职位进入AI创业公司,如今工作3年了.俗话说,温故而知新,结合自己 ...

  8. 【经典卷积神经网络CNN模型 之 VGG16Net】模型实验,强烈建议使用GPU来跑,经试验,若使用CPU,普通PC理论上需要超过100小时

    声明:仅学习使用~ 建议回顾基础知识: 包含但不限于 [模型实验]几个 经典卷积神经网络CNN模型 回顾:分组卷积–AlexNet,使用3x3卷积核----VGG,使用多种卷积核结构----Googl ...

  9. 【CNN】卷积神经网络(LeNet)是什么?如何实现LeNet?

    系列文章目录 第一章 深度学习 CNN中的卷积神经网络(LeNet) 目录 系列文章目录 文章目录 前言 一.卷积神经网络(LeNet)是什么? 二.LeNet的网络结构 三.实现LeNet模型 ​​ ...

  10. 卷积神经网络鼻祖LeNet网络分析

    卷积神经网络鼻祖LeNet网络分析 https://www.toutiao.com/a6634346529920385539/ 1998年,被成为是现代卷积神经网络的鼻祖LeNet,被Yann LeC ...

最新文章

  1. leetcode算法题--验证二叉树的前序序列化
  2. java 优酷视频缩略图_java获取优酷等视频缩略图
  3. html5 canvas 图像预览,html5-canvas 加载并显示图像
  4. oracle约束 关闭,Oracle约束管理脚本
  5. 使用pm2启动node文件_PM2 是什么
  6. 汇编语言编译器masm_计算机汇编语言和指令操作
  7. Python中文编程
  8. sizeof和strlen的简单使用方法和区别
  9. Matlab命令系列之目录操作
  10. elipse下载及安装
  11. pgadmin3连接mysql_postgresql – pgAdmin III:拒绝访问数据库
  12. 深度linux 安装qq游戏,在Deepin系统下用Playonlinux完全可以运行QQ游戏大厅
  13. hdu 4699 模拟栈
  14. 拓嘉辰丰电商:关于拼多多推广计划有哪些问题
  15. SAP SD 销售中的借贷项凭证
  16. Oracle 12c 新特性之 数据库内归档(In-Database Archiving)
  17. 记录--Spyder打开时出现“An error occurred while starting the kernel“
  18. 复习高数下册8-10章主要内容(简略版)
  19. 2017年英语专升本英语阅读「Part II 阅读专区」【文章(图片)、答案、词汇记忆】
  20. 用计算机处理医学信息处理,医学信息处理

热门文章

  1. 一个51单片机的键盘扫描程序,算法简单有效
  2. 移动端H5-音视频资源优化方案实战方案推荐
  3. 基于vue-next(vue3)企业微信H5搭建
  4. No.046<软考>《(高项)备考大全》【专项2】《案例分析 - 计算题(上)》
  5. 非对称加密BTC算法面试题
  6. 在Linux下进行jre环境配置(以JDK1.7.0_79为例)
  7. 写一个计算器,要求实现加减乘除功能,并且能够接受新数据,通过用户交互实现
  8. 终极battle刚刚结束,我们对“物流”、“机器人”又有了深深的感悟……
  9. flutter错误处理处理篇
  10. cstdio和stdio.h的区别