1. LeNet-5简介

LeNet5卷积神经网络源于Yann LeCun在1998年发表的论文:Gradient-based Learning Applied to Document Recognition (论文下载地址:http://yann.lecun.com/exdb/publis/pdf/lecun-01a.pdf),是一种用于手写数字识别的卷积神经网络。

LeNet-5是CNN网络架构中最知名的网络模型,是卷积神经网络的开山之作。

2. MNIST数据集

MNIST数据集(官网:http://yann.lecun.com/exdb/mnist/)是由Yann LeCun等人收集整理,其目的是用于手写数字识别模型的训练。主要包括了6万张训练图像和1万张测试图像,每张图像大小为28*28的灰度图像,即图像通道数为1。官网提供的下载分为四个文件,即训练集图像、训练集标签、测试集图像、测试集标签:

由于官网下载速度超慢,更快下载请移步:

mnist数据集下载——mnist数据集提供百度网盘下载地址

3. LeNet5结构

上图是LeNet5原文中的截图,LeNet5包含了卷积网络的基本组成部分:卷积、池化及全连接。顾名思义,LeNet5为5层的卷积神经网络:3层卷积和2层全连接层组成。

网络层 类型 特征图 尺寸 核大小 步长 激活函数
输出层 全连接层 10 None None None RBF
F6 全连接层 None 84 None None tanh
C5 卷积层 120 1*1 5*5 1 tanh
S4 平均池化层 16 5*5 2*2 2 tanh
C3 卷积层 16 10*10 5*5 1 tanh
S2 平均池化层 6 14*14 2*2 2 tanh
C1 卷积层 6 28*28 5*5 1 tanh
输入层 输入 1 32*32 None None None

注意:通常输入层不计入神经网络层数。

3.1输入层

输入层为32*32大小的灰色图像。通常输入层不计入神经网络层数。

MNIST数据集图像大小为28*28,因此在喂入网络前对图像四周进行0填充,使得大小变为32*32,并且对像素值进行归一化处理。

3.2 卷积层1

输入:1个32*32的图像

卷积:卷积层1选取6个5*5的卷积核,步长为1,非全0填充,因此输出图像长宽为(32-5+1)/1=28。

参数:6*5*5+6*1=156。

连接数:(5*5+1)*6*28*28=122304

输出:为6个28*28的特征图

3.3 降采样层2

输入:6个28*28的特征图

参数:6*1+6*1=12

连接数:(2*2+1)*6*14*14=5880

输出:6个14*14的特征图

该层在LeNet5原文中称作降采样层(sub-sampling layer),使用了6个2*2的卷积核,具体运算过程为:2*2的视野中4个数求和后乘上一个可训练的权重并加上一个偏置,

注意:目前卷积神经网络普遍的做法是平均池化或最大池化,最大池化更常用。因此这一层池化层可以改进为平均池化或最大池化即可,不用再乘以权重和加上偏置。

3.4 卷积层3

输入:6个14*14的特征图

卷积:卷积层2选取16个5*5的卷积核,步长为1,非全0填充,因此输出图像长宽为(14-5+1)/1=10。

参数:6*(3*5*5+1)+6*(4*5*5+1)+3*(4*5*5+1)+1*(6*5*5+1)=1516

连接数:(3*5*5+1)*6*10*10+(4*5*5+1)*6*10*10+(4*5*5+1)*3*10*10+(6*5*5+1)*1*10*10=151600

输出:16个10*10的特征图

注意:卷积层3的前6个feature map(对应下图第一个红框的6列)与3.3中降采样层的相连3个feature map相连接(下图第一个红框);之后6个feature map与3.3中降采样层的相连4个feature map相连接(下图第二个红框);之后3个feature map与3.3中降采样层部分不相连的4个feature map相连接;最后一个feature map与3.3中降采样层的所有feature map相连。

3.5 降采样层4

输入:16个10*10的特征图

参数:16*(1+1)=32

连接数:(2*2+1)*16*5*5=2000

输出:16个5*5的特征图

3.6 卷积层5

输入:16个5*5的特征图

卷积:卷积层5选取120个5*5的卷积核,步长为1,非全0填充,因此输出图像长宽为(5-5+1)/1=1。

参数:120∗(25∗16+1)=48120

连接数:120∗(25∗16+1)=48120

输出:为120个1*1的特征图

注意:总共生成120个feature map,每个feature map与上一层所有的feature map相连接,卷积核大小为5*5,因此共有120∗(25∗16+1)=48120个连接。

3.7 全连接层6

输入:120维的向量

神经元:84个

参数:120*84+84=10164

连接:120*84+84=10164

输出:84维向量

3.8 输出层7

输入:84维向量

神经元:10个

参数:0(由于输出层采用的是径向基函数,所以参数个数为0)

连接数:84*10=840

输出:10(对应10个分类结果)

4. 总结

LeNet5总共5层:3层卷积和2层全连接,池化层未计入层数。参数总数为60000个,而连接数达340908,连接数远远多于参数个数,这主要归功于卷积核的参数共享。

LeNet5是卷积神经网络的开篇大作,稍显复杂、晦涩难懂,或者说与现在的卷积神经网络相比有些绕,但在当年来说是非常了不起的成就,完成了卷积神经网络从无到有的突破。

5. TensorFlow2实现LeNet5

请移步:

实现方案1:TensorFlow2利用MNIST数据集实现LeNet5卷积神经网络模型

6. 参考文献

LeNet5论文原著:Y. Lecun ; L. Bottou ; Y. Bengio ; et al. Gradient-based learning applied to document recognition[J]. Proceedings of the IEEE, 1998, 86(11):2278-2324.

深度学习之卷积神经网络经典网络LeNet-5简介相关推荐

  1. 【深度学习】卷积神经网络发展史从LeNet到AlexNet

    本文主要讨论CNN的发展,并且引用刘昕博士的思路,对CNN的发展作一个更加详细的介绍,将按下图的CNN发展史进行描述: 上图所示是刘昕博士总结的CNN结构演化的历史,起点是神经认知机模型,此时已经出现 ...

  2. 深度学习之卷积神经网络(12)深度残差网络

    深度学习之卷积神经网络(12)深度残差网络 ResNet原理 ResBlock实现 AlexNet.VGG.GoogleLeNet等网络模型的出现将神经网络的法阵带入了几十层的阶段,研究人员发现网络的 ...

  3. 深度学习~卷积神经网络(CNN)概述

    目录​​​​​​​ 1. 卷积神经网络的形成和演变 1.1 卷积神经网络结构 1.2 卷积神经网络的应用和影响 1.3 卷积神经网络的缺陷和视图 1.3.1 缺陷:可能错分 1.3.2 解决方法:视图 ...

  4. 深度学习之卷积神经网络(10)CIFAR10与VGG13实战

    深度学习之卷积神经网络(10)CIFAR10与VGG13实战 MNIST是机器学习最常用的数据集之一,但由于手写数字图片非常简单,并且MNIST数据集只保存了图片灰度信息,并不适合输入设计为RGB三通 ...

  5. 【深度学习】卷积神经网络-图片分类案例(pytorch实现)

    前言 前文已经介绍过卷积神经网络的基本概念[深度学习]卷积神经网络-CNN简单理论介绍.下面开始动手实践吧.本文任务描述如下: 从公开数据集CIFAR10中创建训练集.测试集数据,使用Pytorch构 ...

  6. 【深度学习】卷积神经网络速成

    [深度学习]卷积神经网络速成 文章目录 [深度学习]卷积神经网络速成 1 概述 2 组成 2.1 卷积层 2.2 池化层 2.3 全连接层 3 一个案例 4 详细分析 1 概述 前馈神经网络(feed ...

  7. 深度学习之卷积神经网络(11)卷积层变种

    深度学习之卷积神经网络(11)卷积层变种 1. 空洞卷积 2. 转置卷积 矩阵角度 转置卷积实现 3. 分离卷积 卷积神经网络的研究产生了各种各样优秀的网络模型,还提出了各种卷积层的变种,本节将重点介 ...

  8. 深度学习之卷积神经网络(8)BatchNorm层

    深度学习之卷积神经网络(8)BatchNorm层 BatchNorm层概念 BatchNorm层实现 1. 向前传播 2. 反向更新 3. BN层实现 4. 完整代码 卷积神经网络的出现,网络参数量大 ...

  9. 深度学习之卷积神经网络(7)池化层

    深度学习之卷积神经网络(7)池化层 在卷积层中,可以通过调节步长参数s实现特征图的高宽成倍缩小,从而降低了网络的参数量.实际上,处理通过设置步长,还有一种专门的网络层可以实现尺寸缩减功能,它就是这里要 ...

最新文章

  1. 屏蔽敏感词的正则表达式
  2. 加权残差连接ReZero
  3. xp sp3安装.Net 4.0提示严重错误,0x80070643,解决办法2017版
  4. oracle:sql约束
  5. 使用网络存储SAN和NAS
  6. maven pc配置要求_《使命召唤:黑色行动5》公开测试PC配置要求:推荐GTX970+i7
  7. 四轴码垛机器人配件_四轴码垛机器人的应用范围
  8. php 类 private,有关php类的private属性继承问题详解
  9. 勒索病毒的原理和防范机制研究
  10. 什么是即席查询及即席查询实现
  11. 侠盗病毒”志不在“侠”,360安全大脑强力查杀!
  12. unity lookat导致物体颠倒怎么解决_在Unity 2D中如何用一行代码实现LookAt的效果,以及向量归一化小总结...
  13. SAP中国客户名单[转载]
  14. 今日睡眠质量记录79
  15. kali2020之chrome安装代理插件
  16. 巨帧(jumbo frame)
  17. Unity Movetowards方法
  18. 使用IKAnalyzer进行中文分词
  19. R语言使用factor函数处理名义变量(nominal、无序/标称分类变量)、使用ordered函数处理序数变量(ordinal、有序分类/标称变量)
  20. matlab与amesim,amesim与matlab联合仿真步骤(自己总结)(精)

热门文章

  1. 阿里推崇的大中台、小前台,什么是中台,什么是平台,有什么区别
  2. 当window.opener无法调用时的原因与解决方案
  3. 2021-2027全球与中国讲解员视频软件市场现状及未来发展趋势
  4. 【Lintcode】562. Backpack IV
  5. 2022年河南省房地产经纪人(房地产交易制度政策)练习题及答案
  6. Python实现平行坐标图的两种方式
  7. delphi 操作excel(全)
  8. 130页5万字某市档案馆数字档案馆建设方案
  9. USB串口导致鼠标乱跳
  10. 联想异能者z51-70笔记本如何bios设置u盘启动?