LeNet-5-经典的CNN架构
Yann LeCun,Leon Bottou,Yosuha Bengio和Patrick Haffner在1990年代提出了一种用于手写和机器打印字符识别的神经网络架构,他们称之为LeNet-5。该架构简单明了,这就是为什么它被广泛用作卷积
神经网络教学的第一步的原因。
LeNet-5架构
原始图像发表在[LeCun et al。,1998]
LeNet-5体系结构由两组卷积和平均池化层组成,然后是平坦的卷积层,然后是两个完全连接的层,最后是softmax分类器。
第一层:
LeNet-5的输入是一个32×32灰度图像,该图像穿过第一卷积层,并带有6个特征图或大小为5×5,跨度为1的滤镜。图像尺寸从32x32x1更改为28x28x6。
第二层:
然后LeNet-5应用平均池化层或子采样层,滤镜大小为2×2,跨度为2。结果图像尺寸将减小为14x14x6。
第三层:
接下来,存在第二个卷积层,该卷积层具有16个尺寸为5×5,步幅为1的特征图。在该层中,只有16个特征图中的10个被连接到前一层的6个特征图,如下所示。
主要原因是要打破网络中的对称性,并使连接数保持在合理范围内。这就是为什么此层中的训练参数数量为1516而不是2400的原因,并且类似地,连接数量为151600而不是240000的原因。
第四层:
第四层(S4)仍然是平均池化层,滤镜大小为2×2,步幅为2。该层与第二层(S2)相同,除了具有16个特征图,因此输出将减少为5x5x16 。
第五层:
第五层(C5)是具有120个特征图的完全连接的卷积层,每个特征图的大小为1×1。C5中的120个单元中的每一个都连接到第四层S4中的所有400个节点(5x5x16)。
第六层:
第六层是具有84个单元的完全连接层(F6)。
输出层:
最后,有一个完全连接的softmax输出层?,其中10个可能的值对应于0到9的数字。
LeNet-5架构摘要
LeNet-5体系结构汇总表
使用Keras实现LeNet-5
下载数据集并规范化
我们将在Keras API下下载MNIST数据集,并像之前的文章中一样对其进行规范化。
有关详细信息,请访问:使用Keras实现CNN
定义LeNet-5模型
使用顺序模型API创建模型对象的新实例。然后按照前面讨论的LeNet-5架构将层添加到神经网络。最后,使用“ categorical_crossentropy”损失函数和“ SGD”成本优化算法编译模型。编译模型时,添加metrics = ['accuracy']作为参数之一以计算模型的准确性。
重要的是要强调,MNIST数据集中的每个图像的尺寸为28 X 28像素,因此我们将对LeNet-5输入使用相同的尺寸,而不是32 X 32像素。
我们可以通过调用model.fit函数来训练模型,并传入训练数据,预期输出,时期数和批量大小。此外,Keras提供了一种在每个时期结束时评估损失和准确性的工具。为此,我们可以使用“ validation_split”参数拆分训练数据,或者使用“ validation_data”参数使用另一个数据集。在每个时期之后,我们将使用我们的训练数据集来评估损失和准确性。
评估模型
我们可以通过调用model.evaluate并传递测试数据集和预期输出来测试模型。
可视化培训过程
通过绘制每个时期后的训练准确性和损失,我们将可视化训练过程。
概要
我们详细了解了LeNet-5架构。
我们学习了使用Keras实现LeNet-5的方法。
1