1. LeNet-5
1.1 模型介绍
LeNet-5是由LeCun 提出的一种用于识别手写数字和机器印刷字符的卷积神经网络(Convolutional Neural Network,CNN)[1],其命名来源于作者LeCun的名字,5则是其研究成果的代号,在LeNet-5之前还有LeNet-4和LeNet-1鲜为人知。LeNet-5阐述了图像中像素特征之间的相关性能够由参数共享的卷积操作所提取,同时使用卷积、下采样(池化)和非线性映射这样的组合结构,是当前流行的大多数深度图像识别网络的基础。
1.2 模型结构
图4.1 LeNet-5网络结构图
如图4.1所示,LeNet-5一共包含7层(输入层不作为网络结构),分别由2个卷积层、2个下采样层和3个连接层组成,网络的参数配置如表4.1所示,其中下采样层和全连接层的核尺寸分别代表采样范围和连接矩阵的尺寸(如卷积核尺寸中的“5×5×1/1,6”表示核大小为5×5×1、步长为1且核个数为6的卷积核)。
表4.1 LeNet-5网络参数配置
网络层 |
输入尺寸 |
核尺寸 |
输出尺寸 |
可训练参数量 |
卷积层C1
|
32×32×1 |
5×5×1/1,6 |
28×28×6 |
(5×5×1+1)×6 |
下采样层S2
|
28×28×6 |
2×2/2 |
14×14×6 |
(1+1)×6 ∗
|
卷积层C3
|
14×14×6 |
5×5×6/1,16 |
10×10×16 |
1516∗ |
下采样层S4
|
10×10×16 |
2×2/2 |
5×5×16 |
(1+1)×16 |
卷积层C5∗
|
5×5×16 |
5×5×16/1,120 |
1×1×120 |
(5×5×16+1)×120 |
全连接层F6
|
1×1×120 |
120×84 |
1×1×84 |
(120+1)×84 |
输出层 |
1×1×84 |
84×10 |
1×1×10 |
(84+1)×10 |
∗ 在LeNet中,下采样操作和池化操作类似,但是在得到采样结果后会乘以一个系数和加上一个偏置项,所以下采样的参数个数是(1+1)×6而不是零。
∗ C3卷积层可训练参数并未直接连接S2中所有的特征图(Feature Map),而是采用如图4.2所示的采样特征方式进行连接(稀疏连接),生成的16个通道特征图中分别按照相邻3个特征图、相邻4个特征图、非相邻4个特征图和全部6个特征图进行映射,得到的参数个数计算公式为6×(25×3+1)+6×(25×4+1)+3×(25×4+1)+1×(25×6+1)=1516,在原论文中解释了使用这种采样方式原因包含两点:限制了连接数不至于过大(当年的计算能力比较弱);强制限定不同特征图的组合可以使映射得到的特征图学习到不同的特征模式。
图4.2 S2与C3之间的特征图稀疏连接
∗ C5卷积层在图4.1中显示为全连接层,原论文中解释这里实际采用的是卷积操作,只是刚好在5×5卷积后尺寸被压缩为1×1,输出结果看起来和全连接很相似。
1.3 模型特性
- 卷积网络使用一个3层的序列组合:卷积、下采样(池化)、非线性映射(LeNet-5最重要的特性,奠定了目前深层卷积网络的基础)
- 使用卷积提取空间特征
- 使用映射的空间均值进行下采样
- 使用tanh或sigmoid进行非线性映射
- 多层神经网络(MLP)作为最终的分类器
- 层间的稀疏连接矩阵以避免巨大的计算开销