随着时间的推移,计算机视觉的魅力不断展现,包括各类模型我们都可以直接进行网上下载,但是往往我们就会忽略了模型的一些细节所在,正好在课程学习中老师提及这块内容,我觉得很有必要记录下来给大家借鉴学习,借此我将针对LeNet-5这个第一个卷积神经网络进行相关介绍。
【相关论文可查阅:
Y. Lecun, L. Bottou, Y. Bengio and P. Haffner, "Gradient-based learning applied to
document recognition," in Proceedings of the IEEE, vol. 86, no. 11, pp. 2278-2324,
Nov. 1998】
CNN基本网络:
输入层、卷积层、激活层、池化层、全连接层
![](https://img-blog.csdnimg.cn/b263c0679d9541f0ae49ca95a5fffc15.png)
图1:数字识别
![](https://img-blog.csdnimg.cn/eaed862c49c94898baf1a5d448e3d166.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5p6X5LuUCkxpbg==,size_20,color_FFFFFF,t_70,g_se,x_16)
图2:LeNet-5基本结构
• 输入层 INPUT
输入
32
×
32
×
1
的图像
•
C1
:卷积层
(
1
)特征图大小:使用
6
个尺寸为
5
×
5
的滤波器,在卷积的过程中不做边缘填充,步长
为
stride=1
。单个核的卷积输出大小为
(32−5+1)
×
(32−5+1)=28
×
28
。由于有
6
个卷积核,
所以整个卷积层输出得到为
Feature Map
为
28
×
28
×
6
。
(2
)参数个数:由于参数(权值)共享的原因,对于同个卷积核每个神经元均使用相同
的参数,因此,参数个数为(5×
5+1
)×
6= 156
,其中
5
×
5
为卷积核参数,
1
为偏置参数。
(3
)连接数:
(5
×
5+1)
×
28
×
28
×
6=122304
。在卷积层,每个输出的
28
×
28
的
Feature Map
,都和一个
5
×
5
卷积核相连。每个卷积核都有一个偏置。
• S2:下采样层、池化层 【特征降维、局部平移不变性】
(
1
)特征图大小:池化单元为
2
×
2
,池化单元之间没有重叠,在池化区域内进行聚合统
计后得到新的特征值,因此经
2
×
2
池化后,每两行两列重新算出一个特征值出来,相当
于图像大小减半,因此卷积后的
28
×
28
图像经
2
×
2
池化后就变为
14
×
14
。这一层的计算
过程是:
2
×
2
单元里的值相加,然后再乘以训练参数
w
,再加上一个偏置参数
b
(每一个
特征图共享相同的
w
和
b)
,然后取
sigmoid
值(
S
函数:
0-1
区间),作为对应的该单元的
值
(2)参数个数:
S2
层由于每个特征图都共享相同的
w
和
b
这两个参数,因此需要
2
×
6=12
个参数。
(3)连接数:下采样之后的图像大小为
14
×
14
,因此
S2
层的每个特征图有
14
×
14
个神
经元,每个池化单元连接数为
2
×
2+1
(
1
为偏置量),因此,该层的连接数为(2×
2+1)
×14
×
14
×
6 = 5880
•
C3
:卷积层
(
1
)特征图大小:
C3
层有
16
个特征图,
60
个卷积核,卷积模板大小为
5
×
5
。与
C1
层的
分析类似,
C3
层的特征图大小为(
14-5+1
)×(
14-5+1
)
= 10
×
10
。
![](https://img-blog.csdnimg.cn/7b0bf2a788f14eb19547576a350ba538.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5p6X5LuUCkxpbg==,size_20,color_FFFFFF,t_70,g_se,x_16)
(2)参数个数:
C3
与
S2
并不是全连接而是部分连接,有些是
C3
连接到
S2
三层、有些四
层、甚至达到
6
层。一是可以减少连接个数,二是打破网络的对称结构,提取不同特征。
计算过程为:用
3
个卷积模板分别与
S2
层的
3
个
feature maps
进行卷积,然后将卷积的结
果相加求和,再加上一个偏置,再取
sigmoid
得出卷积后对应的
feature map
了。参数:
(5×
5
×
3+1
)×
6 +
(5×
5
×
4+1
)×
9 +
(5×
5
×
6+1
)
= 1516
(3)连接数:卷积后的特征图大小为
10
×
10
,参数数量为
1516
,因此连接数为
1516
×
10
×
10= 151600
•
S4
:池化层
(
1
)特征图大小:与
S2
的分析类似,池化单元大小为
2
×
2
,因此,该层与
C3
一样共有
16
个特征图,每个特征图的大小为
5
×
5
。
(2)参数个数:与
S2
的计算类似,所需要参数个数为
16
×
2 = 32
(3)连接数:连接数为(2×
2+1
)×
5
×
5
×
16 = 2000
•
C5
:卷积层
(
1
)特征图大小:该层有
120
个特征图,每个卷积核的大小仍为
5
×
5
,因此有
120
个特征
图。
C5
的每个特征图与
S4
的
16
个特征图全部相连。特征图大小为(5-5+1)×(5-5+1) = 1×
1
。
(2)参数个数:本层的参数数目为
120
×(5×
5
×
16+1
)
= 48120
(3)连接数:由于该层的特征图大小刚好为
1
×
1
,因此连接数为
48120
×
1
×
1=48120
注意:该层刚好变成了全连接,这只是巧合,如果原始输入的图像比较大,则该层就不是
全连接了。所以依然称为卷积层.
•
F6
:全连接层
(
1
)特征图大小:
F6
层有
84
个单元,之所以选这个数字的原因是来自于输出层的设计,
对应于一个
7
×
12
的比特图。
0
表示白色,
1
表示黑色,这样每个符号的比特图的黑白色就
对应于一个编码。该层有
84
个特征图,特征图大小与
C5
一样都是
1
×
1
,与
C5
层全连接。
(2)参数个数:由于是全连接,参数数量为(
120+1
)×
84=10164
(3)连接数:由于是全连接,连接数与参数数量一样,也是
10164
•
OUTPUT
:输出层
(
1
)特征图大小:
Output
层也是全连接层,共有
10
个节点,分别代表数字
0
到
9
。如果第
i
个节点的值为
0
,则表示网络识别的结果是数字
i
。
(2)参数个数:由于是全连接,参数个数为
84
×
10=840
(3)连接数:由于是全连接,连接数与参数个数一样,也是
840