深度学习经典案例解析:基于MATLAB
上QQ阅读APP看书,第一时间看更新

4.1 LeNet卷积神经网络

LeNet卷积神经网络出自文章Gradient-Based Learning Applied to Document Recognition。LeNet-5卷积神经网络的结构如图4-1所示。

图4-1 LeNet-5卷积神经网络的结构

下面,我们就详细地对这个网络进行分析:

1.C1:卷积层

· 输入图片大小:32×32像素。

· 输入图片通道数:1个。

· 卷积核大小:5×5。

· 卷积核个数:6个(每个卷积核中的参数都不相同)。

· 卷积的步长为1,卷积的步长为valid。

· 输出特征图的个数:6个(与卷积核的个数相等)。

· 输出特征图的大小:28×28。

· 本层需要训练的参数:156个(每个卷积核要训练的参数为5×5个,再加1个公共偏置参数,所以每个卷积核需要训练的参数为26个,一共有6个卷积核)。

2.S2:池化层

· 输入特征图:28×28像素。

· 输入特征图通道数:6个(与上一层输出的特征图的个数相等)。

· 池化的方法:平均池化。

· 每个池化区域大小:2×2。

· 输出特征图的个数:6个(与输入特征图的个数相等)。

· 输出特征图的大小:14×14。

· 本层需要训练的参数:无。

3.C3:卷积层

· 输入特征图大小:14×14。

· 输入特征图通道数:6个(与上一层输出的特征图的个数相等)。

· 卷积核大小:5×5。

· 卷积核个数:16个(每个卷积核中的参数都不相同)。

· 卷积的步长为1,卷积的步长为valid。

· 输出特征图的个数:16个(与卷积核的个数相等)。

· 输出特征图的大小:10×10。

· 本层需要训练的参数:1516个。

在这里,需要强调的是S2层产生的6个特征图与C3层的16个卷积核之间的连接关系如图4-2所示,它们只是部分连接(图中的X表示连接),并不是全连接,这种连接关系能将连接的数量控制在一个比较合理的范围内。

4.S4:池化层

· 输入特征图:10×10。

· 池化的方法:平均池化。

· 每个池化区域大小:2×2。

图4-2 S2层产生的6个特征图与C3层的16个卷积核之间的连接关系

· 输出特征图的个数:16个(与输入特征图的个数相等)。

· 输出特征图的大小:5×5。

· 本层需要训练的参数:无。

5.C5:卷积层

· 输入特征图大小:5×5。

· 输入特征图通道数:16个(与上一层输出的特征图的个数相等)。

· 卷积核大小:5×5。

· 卷积核个数:120个(每个卷积核中的参数都不相同,每个卷积核中有16个子卷积核,与输入特征图的通道数相等)。

· 输出特征图的个数:120个(与卷积核的个数相等)。

· 输出特征图的大小:1×1。

· 本层需要训练的参数:48120个。

本层需要训练的参数计算过程如下。

由于输入特征图通道有16个,故每个卷积核中有16个子卷积核,每个子卷积核的大小为5×5,所以每个卷积核需要确定的参数为5×5×16 +1,其中,1为卷积核的公共偏置参数;而卷积核的个数为120个,故本层需要训练的参数为(5×5×16+1)×120=48120。由于C5层卷积核的大小与输入的特征图大小相同,故本层也可以看作是全连接层。

6.F6:全连接层

· 输入:120维向量。

· 节点数:84。

· 非线性激活函数:Sigmoid函数。

· 本层需要训练的参数:10164个(84×(120+1)=10164)。

7.O7:输出层

也是全连接层,共有10个节点,分别代表数字0到9,且如果节点i的值为0,则网络识别的结果是数字i。采用的是径向基函数(RBF)的网络连接方式。