LeNet5的论文及理解

本文介绍了卷积神经网络(CNN)的基本组成部分和特点,特别是LeNet5的结构和参数。LeNet5是手写体字符识别的高效网络,包括卷积层、池化层和全连接层,利用局部感知、权重共享和多卷积核来提取特征。文章详细阐述了各层结构,如卷积层的参数计算、池化层的作用以及全连接层的功能。

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

LeNet-5模型的原始论文是由Yann LeCun教授及其同事于1998年发表的,题为《Gradient-based learning applied to document recognition》。这篇论文详细介绍了LeNet-5这一卷积神经网络的设计与应用,特别是其在手写数字识别问题上的成功应用[^1]。 如果您希望获取这篇论文的具体内容或者了解更多关于LeNet-5模型的技术细节,可以通过学术数据库或者搜索引擎查找该论文的标题和作者信息。这篇论文对于理解早期卷积神经网络的发展及其在实际问题中的应用具有重要意义。 ### 示例代码 为了帮助您更好地了解LeNet-5模型的应用,这里提供一个使用TensorFlow/Keras框架构建LeNet-5模型的基本示例代码: ```python from tensorflow.keras.models import Sequential from tensorflow.keras.layers import Conv2D, MaxPooling2D, Flatten, Dense # 创建LeNet-5模型 def create_lenet5_model(): model = Sequential() # 第一层卷积层,输入尺寸为32x32x1的灰度图像 model.add(Conv2D(6, (5, 5), activation='relu', input_shape=(32, 32, 1))) # 第一层池化层 model.add(MaxPooling2D((2, 2))) # 第二层卷积层 model.add(Conv2D(16, (5, 5), activation='relu')) # 第二层池化层 model.add(MaxPooling2D((2, 2))) # 展平层 model.add(Flatten()) # 全连接层 model.add(Dense(120, activation='relu')) # 输出层 model.add(Dense(10, activation='softmax')) # 假设输出为10类 return model # 调用函数创建模型 lenet5 = create_lenet5_model() # 编译模型 lenet5.compile(optimizer='adam', loss='sparse_categorical_crossentropy', metrics=['accuracy']) ``` 这段代码定义了一个简化版的LeNet-5模型,适用于处理32x32大小的灰度图像输入[^3]。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值