LeNet-5卷积神经网络的整体框架介绍

       在数字手写体识别中,LeNet-5卷积神经网络框架是每一个深度学习入门新手都必须要掌握的基本框架模型。本文对这个基本模型进行一下介绍:

LeNet-5卷积神经网络的整体框架介绍_第1张图片

可以看出LeNet-5包含输入层共有8层,每一层都包含多个参数(权重)。C层代表的是卷积层,通过卷积操作,可以使原信号特征增强,并且降低噪音。 S层是一个下采样层,利用图像局部相关性的原理,对图像进行子抽样,可以减少数据处理量同时保留有用信息。下面针对每一层进行解释:

1.   输入层是32*32大小的图像。

2.   C1层是一个卷积层,有6feature map,由于用的5*5大小的卷积核,每个feature map有28*28个神经元,每个神经元都与输入层的5*5大小的区域相连。所以C1层一共有(5*5+1)*6=156个参数(同一feature map的每个神经元共享权值,一共unite参数和每个feature map固有的一个bias参数,一共6feature map)。两层之间的连接数为156*(28*28)=122304C1层的每个feature map的每个神经元都与输入层有(5*5+1=26)个连接,每个feature map层又有28*28个神经元,一共有6feature map层,故可以得到122304个连接)

3.   S2层是一个下采样层,有6feature map,每个feature map中的每个神经元都与C1层对应的feature map中的2*2的区域相连。S2层中的每个神经元是由这4个输入相加,再乘以一个训练参数,再加上这个feature map的偏置参数,结果通过sigmoid函数计算而得。S2中各feature map有14*14个神经元。由于S2每个feature map中的神经元都只需要两个参数计算得来,一共6feature map,故S2层所有的参数为12个。而S2中各feature map的每个神经元都与C1层的4个神经元和1个偏置单元相连,故可以得到连接数为(14*14)*(4+1)*6=5880。

4.   C3 层也是一个卷积层,它也是运用 的5*5的卷积核,去处理 S2 层。可以计算出 C3 feature map 的神经元个数为10*10 。可以看到不同的是 C3 16 feature map ,它的每个 feature map 都是由上一层的各 feature map 之间的不同组合。如本例所示的组合方式如图所示

LeNet-5卷积神经网络的整体框架介绍_第2张图片

可以得知:C3层的第0feature map是由S2层的第012feature map组合得到的,C3层的第1feature map是由S2层的第123feature map组合得到的。。。看图类推即可。
现在我们可以计算出C3层的训练参数个数为

(5*5*3+1)*6+(5*5*4+1)*9+(5*5*6+1)*1=1516

5.   S4层是一个下采样层,同理,由16大小的feature map构成,每个神经元都与C3中对应feature map的2*2大小的区域相连。同样可以计算出来有个2*16=32参数,和(4+1)*(5*5)*16=2000个连接。

6.   C5层是一个卷积层,同样使用的5*5卷积核,所以每个feature map1个神经元,每个单元都与S4层的全部16feature map区域相连(全相连)。C5层一共有120feature map

C5层的参数为(5*5*16+1)*120=48120

7.   F6层有84feature map(取决于输出层的设计),每个feature map只有一个神经元,与C5层全相连。故有个参数和连接。F6层计算输入向量和权重向量之间的点积,再加上一个偏置。然后将其传递给sigmoid函数来计算神经元。

8.   输出层由欧式径向基函数(Euclidean Radial Basis Function)神经元组成,每个类别对应一个神经元,一共10类,故10个神经元,每个神经元都有84个输入。


总结:得掌握每一层参数的计算方法,最后的3层有点类似于普通的神经网络结构,对应的输入层-隐含层-输出层







你可能感兴趣的:(深度学习,深度学习,CNN)