LeNet5的论文及理解

article/2025/7/3 15:01:54

LeNet5网络的来源:Lécun Y, Bottou L, Bengio Y, et al. Gradient-based learning applied to document recognition[J]. Proceedings of the IEEE, 1998, 86(11):2278-2324.

1. 卷积神经网络(Convolutional Neural Network,CNN)基本介绍

1.1 CNN的组成部分

卷积神经网络CNN(Convolutional Neural Network),是一类深度神经网络,最常用于分析视觉图像。一个卷积神经网络通常包括输入输出层和多个隐藏层,隐藏层通常包括卷积层和RELU层(即激活函数)、池化层、全连接层和归一化层等。
1.输入层
CNN的输入一般是二维向量,可以有高度,比如,RGB图像。
2.卷积层
卷积层是CNN的核心,层的参数由一组可学习的滤波器(filter)或内核(kernels)组成,它们具有小的感受野,延伸到输入容积的整个深度。卷积层的作用是对输入层进行卷积,提取更高层次的特征。
3.池化层
池化层(又称为下采样),它的作用是减小数据处理量同时保留有用信息,池化层的作用可以描述为模糊图像,丢掉了一些不是那么重要的特征。池化层一般包括均值池化、最大池化、高斯池化、可训练池化等。
下采样
4.激活层
激活层主要是把卷积层输出结果做非线性映射,常用的激励函数有ReLU、sigmoid、tanh、LeakyReLU等。CNN采用的激励函数一般为ReLU(The Rectified Linear Unit,修正线性单元),它的特点是收敛快,求梯度简单,但较脆弱。
ReLU
5.全连接层
全连接层是一个常规的神经网络,它的作用是对经过多次卷积层和多次池化层所得出来的高级特征进行全连接(全连接就是常规神经网络的性质),算出最后的预测值。
6.输出层
输出层输出对结果的预测值,一般会加一个softmax层。

1.2 CNN的特点

CNN主要有三大特色,分别是局部感知、权重共享和多卷积核
1. 局部感知
局部感知就是我们上面说的感受野,实际上就是卷积核和图像卷积的时候,每次卷积核所覆盖的像素只是一小部分,是局部特征,所以说是局部感知。CNN是一个从局部到整体的过程(局部到整体的实现是在全连通层),而传统的神经网络是整体的过程。
在这里插入图片描述
2. 权重共享
权值共享:不同的图像或者同一张图像共用一个卷积核,减少重复的卷积核。同一张图像当中可能会出现相同的特征,共享卷积核能够进一步减少权值参数。
3. 多卷积核
一种卷积核代表的是一种特征,为获得更多不同的特征集合,卷积层会有多个卷积核,生成不同的特征,这也是为什么卷积后的图片的高,每一个图片代表不同的特征。

2. LeNet5

LeNet5源自Yann LeCun的论文“Gradient-Based Learning Applied to Document Recognition”,是一种用于手写体字符识别的非常高效的卷积神经网络。

2.1 LeNet5结构

LeNet5
LeNet5网络虽然很小,但是包含了深度学习的基本模块:卷积层、池化层、全连接层。LeNet5共有七层,不包含输入,每层都包含可训练参数,每个层有多个Feature Map,每个Feature Map通过一种卷积滤波器提取输入的一种特征,然后每Feature Map有多个神经元
输入: 32 ∗ 32 32*32 3232的手写字体图片,这些手写字体包含0-9数字,也就是相当于10个类别的图片。
输出: 分类结果,0-9之间的一个数(softmax)

2.2 各层结构及参数

1. INPUT(输入层)
32 ∗ 32 32*32 3232的图片,共有1024个神经元。

2. C1(卷积层)
选取6个 5 ∗ 5 5*5 55卷积核(不包含偏置),得到6个特征图,每个特征图的大小为 32 − 5 + 1 = 28 32-5+1=28 325+1=28,也就是神经元的个数由1024减小到了 28 ∗ 28 = 784 28*28=784 2828=784
输入层与C1层之间的参数: 6 ∗ ( 5 ∗ 5 + 1 ) 6*(5*5+1) 6(55+1) ,对于卷积层C1,每个像素都与前一层的 5 ∗ 5 5*5 55个像素和1一个bias有连接,有 6 ∗ ( 5 ∗ 5 + 1 ) ∗ ( 28 ∗ 28 ) 6*(5*5+1)*(28*28) 6(55+1)(2828)个连接。

3. S2(池化层)
池化层是一个下采样层,有6个 14 ∗ 14 14*14 1414的特征图,特征图中的每个单元与C1中相对应特征图的 2 ∗ 2 2*2 22邻域连接。S2层每个单元对应C1中4个求和,乘以一个可训练参数,再加上一个可训练偏置。
C1与S2之间的参数: 每一个 2 ∗ 2 2*2 22 求和,然后乘以一个参数,加上一个偏置,共计 2 ∗ 6 = 12 2*6=12 26=12个参数。S2中的每个像素都与C1中的 2 ∗ 2 2*2 22个像素和1个偏置相连接,所以有 6 ∗ 5 ∗ 14 ∗ 14 = 5880 6*5*14*14=5880 651414=5880个链接。

4. C3(卷积层)
选取卷积核大小为 5 ∗ 5 5*5 55,得到新的图片大小为 10 ∗ 10 10*10 1010
S2与C3之间的组合: 如图所示 前6个feature map与S2层相连的3个feature map相连接,后面6个feature map与S2层相连的4个feature map相连接,后面3个feature map与S2层部分不相连的4个feature map相连接,最后一个与S2层的所有feature map相连。卷积核的大小依然为 5 ∗ 5 5*5 55,总共有 6 ∗ ( 3 ∗ 5 ∗ 5 + 1 ) + 6 ∗ ( 4 ∗ 5 ∗ 5 + 1 ) + 3 ∗ ( 4 ∗ 5 ∗ 5 + 1 ) + 1 ∗ ( 6 ∗ 5 ∗ 5 + 1 ) = 1516 6*(3*5*5+1)+6*(4*5*5+1)+3*(4*5*5+1)+1*(6*5*5+1)=1516 6(355+1)+6(455+1)+3(455+1)+1(655+1)=1516个参数。而图像大小为 10 ∗ 10 10*10 1010,所以共有151600个连接。
在这里插入图片描述
5. S4(池化层)
窗口大小为 2 ∗ 2 2*2 22,有16个特征图,共有32个参数。
C3与S4之间的参数: 16 ∗ ( 25 ∗ 4 + 25 ) = 2000 16*(25*4+25)=2000 16(254+25)=2000个连接。

6. C5(卷积层)
总共120个feature map,每个feature map与S4层所有的feature map相连接,卷积核大小为 5 ∗ 5 5*5 55,而S4层的feature map的大小也是 5 ∗ 5 5*5 55,所以C5的feature map就变成了一个点,共计有 120 ∗ ( 25 ∗ 16 + 1 ) = 48120 120*(25*16+1)=48120 120(2516+1)=48120个参数。

7. F6(全连接层)
F6相当于MLP(Multi-Layer Perceptron,多层感知机)中的隐含层,有84个节点,所以有 84 ∗ ( 120 + 1 ) = 10164 84*(120+1)=10164 84(120+1)=10164个参数,F6采用了sigmoid函数。

8. Output(输出层)
全连接层,共有10个节点,采用的是径向基函数(RBF)的网络连接方式。

3. 总结

  • LeNet5是一种用于手写体字符识别的非常高效的卷积神经网络。
  • 卷积神经网络能够很好的利用图像的结构信息。
  • 卷积层的参数较少,这也是由卷积层的主要特性即局部连接和共享权重所决定。

4. 参考

  1. CNN初探
  2. Concolutional neural network----WikiPedia
  3. 卷积神经网络(CNN)详解
  4. 卷积神经网络(CNN)详解
  5. LeNet-5详解
  6. LeNet-5网络结构解析
  7. 1.CNN学习笔记——理解结构,LeNet5介绍

http://chatgpt.dhexx.cn/article/a6PMn8Mt.shtml

相关文章

Pytorch搭建LeNet5网络

本讲目标:   介绍Pytorch搭建LeNet5网络的流程。 Pytorch八股法搭建LeNet5网络 1.LeNet5网络介绍2.Pytorch搭建LeNet5网络2.1搭建LeNet网络2.2测试LeNet网络输出2.3下载数据集2.4加载并配置网络2.5训练并保存网络2.6测试图片 1.LeNet5网络介绍 借鉴点:…

HLS:卷积神经网络LeNet5的实现与测试

目录 一、引言二、LeNet5的学习三、数学知识补充四、HLS代码设计五、仿真综合与优化六、Zynq平台搭建测试七、一些注意点八、文献时间线与后续工作 一、引言 1、开发环境。 Windows10、Vivado2018.2、Vivado HLS与Xilinx SDK。 2、LeNet5概述。 1994年,CNN网络&…

卷积神经网络(一):LeNet5的基本结构

在机器视觉,图像处理领域,卷积神经网络取得了巨大的成功。本文将参考UFLDL和DEEPLEARNING.NET的教程,结合自己的理解,梳理一下卷积神经网络的构成以及其BP算法的求解。虽然利用theano可以方便的实现LeNet5,但是不利于学…

LeNet5网络结构详解

文章目录 1.论文地址:2.LeNet5网络结构:3.首先了解参数量和计算量之间的区别和计算:(1)参数量(Params):(2)计算量(FLOPS):&#xff08…

经典网络模型介绍系列——LeNet-5

从今天开始,带大家从LeNet5开始学习经典的网络模型。 一、LeNet-5 LeNet-5是LeNet系列的最终稳定版,它被美国银行用于手写数字识别,该网络有以下特点: 所有卷积核大小均为5*5,步长为1;所有池化方法为平均…

LeNet5的深入解析

论文:Gradient-based-learning-applied-to-document-recognition 参考:http://blog.csdn.net/strint/article/details/44163869 LeNet5 这个网络虽然很小,但是它包含了深度学习的基本模块:卷积层,池化层,…

LeNet5模型讲解

加粗样式LeNet5模型讲解 LeNet5模型总览 总共8层网络,分别为: 输入层(INPUT)、卷积层(Convolutions,C1)、池化层(Subsampling,S2)、卷积层(C3)、…

LeNet-5详解

一、前言 LeNet-5出自论文Gradient-Based Learning Applied to Document Recognition,是一种用于手写体字符识别的非常高效的卷积神经网络。 本文将从卷积神经网络结构的基础说起,详细地讲解每个网络层。 论文下载:请到文章结尾处下载。 …

卷积神经网络:LeNet-5

2021SCSDUSC LeNet-5卷积神经网络的整体框架: 特征映射:一幅图在经过卷积操作后得到结果称为特征图。 LeNet-5共有8层,包含输入层,每层都包含可训练参数;每个层有多个特征映射(,每个特征映射通过一种卷积…

LeNet-5网络详解

文章目录 1 模型介绍2 模型结构3 模型特性 1 模型介绍 LeNet-5出自论文《Gradient-Based Learning Applied to Document Recognition》,是由 L e C u n LeCun LeCun 于1998年提出的一种用于识别手写数字和机器印刷字符的卷积神经网络,其命名来源于作者 …

深度学习入门(一):LeNet-5教程与详解

1.什么是LeNet LeNet5诞生于1994年,是最早的卷积神经网络之一,并且推动了深度学习领域的发展。自从1988年开始,在多年的研究和许多次成功的迭代后,这项由Yann LeCun完成的开拓性成果被命名为LeNet5。 LeNet: 主要用来…

卷积神经网络(CNN)开山之作——LeNet-5。卷积神经网络基本介绍。

目录 一、LeNet-5的背景 二、传统分类算法在图像识别上的弊端 三、卷积神经网络的3个基本特征 四、LeNet-5的网络结构 1、Input layer 2、Conv1 3、Subsampling2 4、Conv3 5、Subsampling4 6、Conv5 7、FC6 8、Output7 五、LeNet-5总结 一、LeNet-5的背景 LeNet-5…

这可能是神经网络 LeNet-5 最详细的解释了!

大家好,我是红色石头! 说起深度学习目标检测算法,就不得不提 LeNet- 5 网络。LeNet-5由LeCun等人提出于1998年提出,是一种用于手写体字符识别的非常高效的卷积神经网络。出自论文《Gradient-Based Learning Applied to Document R…

c语言--使用函数输出水仙花数

函数接口定义 1、int narcissistic( int number ); 2、void PrintN( int m, int n ); 函数 narcissistic 判断 number 是否为水仙花数,是则返回1,否则返回0。 函数 PrintN 则打印开区间 (m, n) 内所有的水仙花数,每个数字占一行。 …

【C语言程序设计】C语言水仙花数,阿姆斯特朗数!

阿姆斯特朗数也就是俗称的水仙花数,是指一个三位数,其各位数字的立方和等于该数本身。 例如:153135333,所以 153 就是一个水仙花数。 求出所有的水仙花数。 算法思想 对于阿姆斯特朗数问题,根据水仙花数的定义&#x…

C语言编程练习:水仙花数

文章目录 题目描述思路结果 题目描述 水仙花数是指一个N位正整数(N>3)&#xff0c;它的每个位上的数字的N次幂之和等于它本身。例如:153 1353 33。本题要求编写程序&#xff0c;计算所有N位水仙花数。 输入格式: 输入在一行中给出一个正整数N(3<N<7 )。 输出格式: …

C语言:水仙花数(daffodil),求出三位数中所有水仙花数

水仙花数&#xff08;C语言&#xff09; 文章目录 水仙花数&#xff08;C语言&#xff09;前言一、题目二、解题思路代码运行结果 总结***根据水仙花数满足的条件找出需要求的对象&#xff0c;这里是各位上的位数。*** 前言 刘汝佳算法书《算法竞赛入门经典》第二章上机练习第…

C语言输出三位数的水仙花数

从100-999中找出符合条件的水仙花数 文章目录 从100-999中找出符合条件的水仙花数前言一、水仙花数是什么&#xff1f;二、C语言实现输出水仙花数1.解题思路2.实现过程 总结 前言 提示&#xff1a;找出符合条件的水仙花数&#xff0c;我们需要弄明白什么叫水仙花数&#xff0c…

c语言设计程序计算水仙花数,C语言水仙花数算法

打印出所有的“水仙花数”&#xff0c; 所谓“水仙花数”是指一个三位数&#xff0c;其各位数字立方和等于该数本身。例如&#xff1a;153是一个“水仙花数”&#xff0c;因为1531的三次方5的三次方3的三次方。 1.程序分析&#xff1a;利用for循环控制100-999个数&#xff0c;每…

水仙花数的实现(C语言)

问题描述&#xff1a;一个三位数&#xff0c;百位的立方加上十位的立方加个位的立方对于这个数本身。 即&#xff1a;abc a^3b^3c^3; 例如&#xff1a;153 1^35^33^3 求出所有的水仙花数&#xff1a; 这是一个将一个三位数的百位&#xff0c;十位&#xff0c;个位提出来&…