作者:Yann LeCun
年份:1998
论文:《Gradient-Based Learning Applied to Document Recognition》
应用:手写体字符识别
特点:网络结构规模较小,但包含了现代CNN网络的基本组件:卷积层、池化层、全连接层。
层数:8层(含输入层)
卷积层的作用:通过卷积操作,使原信号特征增强,并降低噪音。不同的卷积核能够提取到图像中的不同特征。
池化层(下采样层)的作用:利用局部相关性原理,对图像进行子抽样,可以减少数据处理量,同时也可保留一定的有用信息。
池化层的目的:降低网络训练参数及模型的过拟合程度。
训练参数个数、层之间的连接数:
1,每个卷积核都是一个权重参数矩阵,并且除权重参数外,还带有一个偏置参数
所有卷积核的参数+ 偏置参数 = 总的训练参数
如Conv1层有6个5*5的卷积核,每个卷积核带1个偏置参数,总的参数=6*(5*5+1)=156
2,一个神经元是输出feature map的一个像素
如 根据 Wout = [ (Win - Wkernel + 2 * padding ) / stride ] + 1 , paddint = 0 , stride = 1的情况下,Conv1的输出feature map的shape为(28*28)*6,每个feature map有28*28个神经元。
输出的同一个feature map中的每个值都是由同一个卷积核计算得到。这也叫做权值共享。
3,两层之间的连接数 = 训练参数个数 * 输出层神经元个数
如Conv1的每个像素(每个神经元)都与输入图像中的5*5个像素和1个bias有连接(这也叫局部连接。计算连接数时不考虑输入为多少通道),所以Conv1层和输入层之间总共有(5*5+1)*6*28*28=156*28*28=122304个连接
池化层每个神经元和Conv1层输出的feature map的 2*2区域相连(如a1, a2, a3, a4),每个神经元的输出为:sigmoid((a1+a2+a3+a4)*w1+b1)。池化层输出feature map的shape为 (28/2 * 28/2)* 6 = (14*14)*6 (因为使用的是最大池化:用不重叠的矩形框将输入层分成不同的区域,对于每个矩形框的数取最大值作为输出层)
池化层总共有 (14*14)*6=1176个神经元。总共有 (4+1)* (14*14)*6=5880个连接。
池化层总共有 (1+1)*6=12 个参数。因为每个输出feature map只对应同一个权重参数w和同一个偏置参数b。
LeNet-5采用的是后来被称为平均池化的方法(论文中当时叫下采样subsampling),不是最大池化。
参考:https://cuijiahua.com/blog/2018/01/dl_3.html
https://www.zhihu.com/question/66029994
LeNet 网络图: