理解CNN:LeNet-5深度解析

6 下载量 166 浏览量 更新于2024-08-31 收藏 979KB PDF 举报
"CNN–LeNet-5原理" LeNet-5是Yann LeCun在1998年提出的经典卷积神经网络(Convolutional Neural Network, CNN)模型,主要用于手写数字识别任务,是现代深度学习的先驱之一。它的设计思想和架构对后续的CNN模型有着深远的影响。 LeNet-5主要由以下七个层次构成: 1. 输入层(Input Layer):接收32x32像素的灰度图像,每个像素点作为一个神经元,总共1024个神经元。 2. C1层(Convolutional Layer 1):这一层包含6个5x5的卷积核,步长(stride)为1。当应用于32x32输入时,每个卷积核会在输入图像上滑动,产生28x28的特征图。由于没有填充(padding),所以特征图的大小减小。C1层共有784个输出神经元,参数数量为每个卷积核的权重和偏置项,即156个参数乘以特征图的神经元数,总计122304个连接。 3. S2层(Subsampling Layer 2):这是一个池化层,采用最大池化(max pooling)操作,pooling窗口大小为2x2,步长也为2。这将C1层的特征图减半至14x14,减少了计算量,同时保持重要的特征信息。 4. C3层(Convolutional Layer 3):这一层有16个5x5的卷积核,同样步长为1。因为S2层的输出尺寸为14x14,所以C3层的特征图尺寸为10x10。每个卷积核与S2层的特征图进行卷积,形成16张新的特征图。C3层的参数总数包括所有卷积核和偏置项,共计1516个参数,151600个连接。 5. S4层(Subsampling Layer 4):再次应用最大池化,同样2x2的窗口和2的步长,特征图尺寸减小为5x5,总共有400个神经元。 6. C5层(Convolutional Layer 5):最后的卷积层,使用5x5的卷积核生成120张特征图,每张大小为1,意味着C5层的输出是一维的。 7. 输出层(Output Layer):用于分类,这里是对0-9的数字进行识别,因此包含10个节点,通常采用Softmax激活函数,以生成概率分布。 LeNet-5的核心概念包括: - 卷积层:通过卷积操作提取特征,减少计算量和参数数量,同时保持位置关系。 - 池化层:降低空间维度,减少过拟合,保持关键特征。 - 局部连接和共享权重:每个卷积核只与输入的一部分区域相连,降低了模型复杂度。 - 填充:用于保持特征图尺寸不变,或根据需要调整大小。 - 激活函数:如ReLU、Sigmoid或 Tanh,引入非线性,使模型能够学习更复杂的模式。 卷积神经网络的理论基础是数学中的卷积运算和神经科学中的生物神经元模型。卷积层通过学习权重来发现图像的局部特征,池化层则用于降低空间分辨率,提取主要特征。通过多层组合,LeNet-5能够逐步捕获不同层次的图像信息,从而实现准确的分类。