LeNet-5
LeNet-5
LeNet-5[LeCun et al., 1998]虽然提出的时间比较早,但是是一个非常成功的神经网络模型。基于 LeNet-5的手写数字识别系统在 90年代被美国很多银行使用,用来识别支票上面的手写数字。
原文下载
示例
LeNet-5共有7层,不包含输入,每层都包含可训练参数;每个层有多个Feature Map,每个FeatureMap通过一种卷积滤波器提取输入的一种特征。
各层参数详解
INPUT层-输入层
首先是数据 INPUT 层,输入图像的尺寸统一归一化为32*32。
C1层-卷积层
- 输入图片:32x32
- 卷积核大小:5x5
- 卷积核种类:6
- 输出featuremap大小:28x28 (32-5+1)=28
- 神经元数量:28x28x6
- 可训练参数:(5x5+1) x 6(每个滤波器5x5=25个unit参数和一个- - bias参数,一共6个滤波器)
- 连接数:(5x5+1)x6x28x28=122304
S2层-池化层(下采样层)
- 输入:28x28
- 采样区域:2x2
- 采样方式:4个输入相加,乘以一个可训练参数,再加上一个可训练偏置。结果通过sigmoid
- 采样种类:6
- 输出featureMap大小:14x14(28/2)
- 神经元数量:14x14x6
- 连接数:(2x2+1)x6x14x14
S2中每个特征图的大小是C1中特征图大小的1/4。
C3层-卷积层
- 输入:S2中所有6个或者几个特征map组合
- 卷积核大小:5x5
- 卷积核种类:16
- 输出featureMap大小:10x10 (14-5+1)=10
C3中的每个特征map是连接到S2中的所有6个或者几个特征map的,表示本层的特征map是上一层提取到的特征map的不同组合
存在的一个方式是:C3的前6个特征图以S2中3个相邻的特征图子集为输入。接下来6个特征图以S2中4个相邻特征图子集为输入。然后的3个以不相邻的4个特征图子集为输入。最后一个将S2中所有特征图为输入。
则:可训练参数:6x(3x5x5+1)+6x(4x5x5+1)+3x(4x5x5+1)+1x(6x5x5+1)=1516
连接数:10x10x1516=151600
C3与S2中前3个图相连的卷积结构如下图所示:
采取这种方式的原因:
- 减少参数;
- 这种不对称的组合连接的方式有利于提取多种组合特征。
S4层-池化层(下采样层)
- 输入:10x10
- 采样区域:2x2
- 采样方式:4个输入相加,乘以一个可训练参数,再加上一个可训练偏置。结果通过sigmoid
- 采样种类:16
- 输出featureMap大小:5x5(10/2)
- 神经元数量:5x5x16=400
- 连接数:16x(2x2+1)55=2000
S4中每个特征图的大小是C3中特征图大小的1/4
C5层-卷积层
- 输入:S4层的全部16个单元特征map(与s4全相连)
- 卷积核大小:5x5
- 卷积核种类:120
- 输出featureMap大小:1x1(5-5+1)
- 可训练参数/连接:120x(16x5x5+1)=48120
F6层-全连接层
- 输入:c5层的120维向量
- 计算方式:计算输入向量和权重向量之间的点积,再加上一个偏置,结果通过sigmoid函数输出。
- 可训练参数:84x(120+1)=10164
Output层-全连接层
Output层也是全连接层,共有10个节点,分别代表数字0到9,且如果节点i的值为0,则网络识别的结果是数字i。采用的是径向基函数(RBF)的网络连接方式。假设x是上一层的输入,y是RBF的输出,则RBF输出的计算方式是:
\[{y_i} = \sum\limits_j {{{({x_j} - {w_{ij}})}^2}}
\]
上式\({{w_{ij}}}\)的值由i的比特图编码确定,i从0到9,j取值从0到7*12-1。RBF输出的值越接近于0,则越接近于i,即越接近于i的ASCII编码图,表示当前网络输入的识别结果是字符i。该层有84x10=840个参数和连接。