CNN图像分类模型(一)——LeNet
CNN图像分类模型(一)——LeNet
1
1
- 三)总结
一)简介
LeNet-5是一种先进用于手写体字符识别的卷积神经网络。基于梯度的方法在文档识别领域取得重要进展,由_Yann LeCun_等人于1998年发表。尽管结构相对简单,其包含了深度学习的基本组件——卷积层、下采样层和全连接层,成为后续各类CNN识别模型的基础。
二)LeNet模型简介
LeNet-5网络结构

如图所示LeNet-5网络的结构框架总共有7个层次(不包括输入端)。其中输入端(对应于32x32尺寸的图像数据),随后依次展开如下:卷积操作单元1、池化操作单元1、卷积操作单元2、池化操作单元4、全连接操作单元5和全连接操作单元6作为输出端。
2.1)输入图像
首先是图像输入层,输入灰度图像的尺寸归一化为32*32像素。
2.2)卷积层C1
滤波器尺寸:5\times 5(每一步滑动一个像素即stride=1)
滤波器数量:6
输出特征图大小:28\times 28(计算得出)
输出神经元数目:28\times 28\times 6
可训练参数数目为:
每个滤波器包含5\times 5的权重参数和一个偏置项,
共计6个滤波器。
连接总数为(5\times 5 + 1)\times 28 \times 28 \times 6 = 12\,2304
2.3)池化层S2
C₁输出的6通道特征图(28×28×6),其Pool window大小设定为[Formula: 2×2];每层Pool采样数量设定为[Formula: 6];Pool方式采用四个单元相加的方式,并通过一个可训练参数与一个bias进行线性变换后再应用sigmoid函数映射;经过Pool处理后特征图尺寸变为[Formula: 14×14](宽度与高度各减少一半);输出层共有[Formula: 14×14×6]神经元数量;其中每个Pool核包含两个权重参数用于计算后再与bias相加并做sigmoid激活;总的连接数目计算公式为[Formula: ( Pool window size × Pool window size + 1 ) × output feature map size × number of output channels ) ]
2.4)卷积层C3
输入为S2输出的6通道featuremap
卷积核大小:5×5(每次滑动一个像素的卷积核 stride=1)
卷积核个数:16个
输出featuremap尺寸:10×10(通过数学运算得到)
输出神经元的数量:10×10×6个
可训练参数/连接数:需采用以下组合方式进行计算
原文中对C3的说明:

其中横轴对应C3层的16个特征图(featuremaps),纵轴对应上一层S2层的6个特征图。通过将S2层相邻的3个特征图进行卷积操作得到16个新的特征图。
对于0-5号范围内的6个特征图,则是通过将S2层相邻的3个特征图进行卷积操作得到;而位于6-11号范围内的6个特征图,则是通过将S2层相邻4个特征图进行卷积操作获得;对于编号为12-14号范围内的3个特征图,则是通过将与之不相邻但仍在同一区域内的4个S2层特征图进行卷积操作获得;最后的一个特殊编号为15号特征图,则是通过将整个S2层的所有6个特征图进行一次完整的卷积操作获得。
需要注意的是:
注释部分:
- 卷积核深度等于输入图像所具有的通道数
- 卷积核数量等于经过卷积操作后输出图像所具有的通道数
2.5)池化层S4
S4与S2具有相似性,在本层中池化核数量提升至8个。
特征图尺寸为5×5(宽度和高度分别减半)。
该层神经元数量配置为每个位置上配置了8个神经元。
可训练参数包括每个池化单元中的比例系数及偏置项共8个参数。
每个位置上的滤波器接收来自前一层全部输入通道的连接数量为(3×3+1)。
2.6)全连接层C5(卷积层)
该系统生成16通道特征图作为输入信号;其中包含以下关键参数设置:第一层卷积核尺寸设定为5乘以5像素;每层卷 convolution 核数量共配置了120个;输出特征图的空间维度被压缩至单像素尺寸;模型架构中所包含的可训练参数数量计算公式为(每层卷积所需的权重参数数加上偏置项的数量)乘以卷积核的数量
2.7)全连接层F6
120维的向量空间
节点数量为84个
计算方法是将输入向量与权重向量进行点积运算后,并上加一个偏置值,并将结果代入sigmoid函数得到最终输出
参数数量为(120+1)与84相乘的结果
2.8)全连接层G7(输出层)
节点数量:10(代表数字0-9);RBF网络结构采用欧氏空间中的高斯函数;训练参数与连接数目分别为84和10
三)总结
围绕LeNet网络体系,在TensorFlow官方文档中所介绍的MNIST数据集是一个绝佳的学习实践资源。
