LeNet是最早的卷积神经网络。 LeNet具有一个输入层,两个卷积层,两个池化层,三个全连接层。每个卷积快的基本单元是一个卷积层,一个sigmoid函数和平均汇聚层。
输入层:需要对28X28的图像加上paddings(即周围填充0),变为32X32。这样的目的是为了防止原图像信息丢失。
C1层:该层是一个卷积层。使用6个大小为5X5的卷积核,步长为1,对输入层进行卷积运算,特征图尺寸为32-5+1=28,因此产生6个大小为28X28的特征图。这么做够防止原图像输入的信息掉到卷积核边界之外。
S2层:该层是一个池化层(pooling,也称为下采样层)。这里采用max pool (最大池化),池化的size定为2X2,经池化后得到5个14×14的特征图,作为下一层神经元的输入。
C3层:该层仍为一个卷积层,我们选用大小为5X5的16种不同的卷积核。这里需要注意:C3中的每个特征图,都是S2中的所有6个或其中几个特征图进行加权组合得到的。输出为16个10×10的特征图。
S4层:该层仍为一个池化层,size为2x2,仍采用max_pool。最后输出16个5X5的特征图,神经元个数也减少至16X5X5=400。
C5层:该层我们继续用5X5的卷积核对54层的输出进行卷积,卷积核数量增加至120。这样C5层的输出图片大小为S5-5+1=1。该终输出120个1X1的特征图。这里实际上是与54全连接了,但仍将其标为卷积层,原因是如果LeNet-5的输入图片尺寸变大,其他保持不变,那该层特征图的维数也会大于1X1。
F6层:该层与C5层全连接,输出84张特征图。
输出层:该层与6层全连接,输出长度为10的张量,代表所抽取的特征属于哪个类别。(例如[0,0,0,1,0,0,0,0,0,0]的张量,1在index=3的位置,故该张量代表的图片属于第三类)。
每个卷积块中的基本单元是一个卷积层、一个sigmoid激活函数和平均汇聚层。请注意,虽然ReLU和最大汇聚层更有效,但它们在20世纪90年代还没有出现。每个卷积层使用5×5卷积核和一个sigmoidt激活函数。这些层将输入映射到多个二维特征输出,通常同时增加通道的数量。第一卷积层有6个输出通道,而第二个卷积层有16个输出通道。每个2×2池操作(步骤2)通过空间下采样将维数减少4倍。 卷积的输出形状由批量大小、通道数、高度、宽度决定。 为了将卷积块的输出传递给稠密块〈加强信息流通和特征重利用),我们必须在小批量中展平每个样本。换言之,我们将这个四维输入转换成全连接层所期望的二维输入。这里的二维表示的第一个维度索引小批量中的样本,第二个维度给出每个样本的平面向量表示。LeNet的稠密块有三个全连接层,分别有120、84和10个输出。因为我们在执行分类任务,所以输出层的10维对应于最后输出结果的数量。
- 为了构造高性能的卷积神经网络,我们通常对卷积层进行排列,逐渐降低其表示的空间分辨率,同时增加通道数
- LeNet是最早发布的卷积神经网络之一,先使用卷积层学习图片空间信息,然后使用全连接层来转换到类别空间
|