深度学习之卷积神经网络经典网络LeNet5简介

1. LeNet5简介

LeNet5卷积神经网络源于Yann LeCun在1998年发表的论文:Gradient-based Learning Applied to Document Recognition,是一种用于手写数字识别的卷积神经网络。

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层全连接层组成。

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

3.1输入层

输入层为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相连。

https://cuijiahua.com/wp-content/uploads/2018/01/dl_3_5.png

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.