基于神经网络的手写数字识别方法
免责声明:由于完成时间相对较早,本文仅提供思路与解决方案,不保证一定是最优实践。实际效果会受到多种条件影响,本文不对其他人的使用结果承担责任。
基于神经网络的手写数字识别模型
本次作业的目标是使用MNIST数据集训练神经网络,以实现对手写数字的识别。针对该任务,本文对三类手写数字识别方案进行了设计与评估:浅层全连接网络、卷积神经网络(CNN),以及带残差块的改进卷积神经网络。通过比较这三种模型在训练与验证阶段的表现,进一步分析不同网络结构对识别效果的影响。
本案例所采用的数据集为MNIST手写数字数据集。MNIST是机器学习中最常见的公开数据集之一,包含大量手写数字图片;每张图片对应一个0-9之间的数字。
ü数据集规模:训练集共60,000张图片,测试集共10,000张图片。
ü图片格式:每张图片为28x28像素的灰度图,因此每张图包含784个像素点。
ü数据表示:图像以矩阵形式保存,矩阵中每个元素对应像素的灰度强度(0-255)。标签以整数形式给出,用于标注对应数字(0-9)。
由于MNIST数据集获取方便、处理简单,并且样本数量充足,足以支撑训练更复杂的神经网络模型。因此,它非常适合作为学习与研究卷积神经网络等图像处理技术的入门与研究数据。
在正式使用MNIST数据集之前,需要完成必要的数据预处理。主要包括:加载数据集、把图像像素转换成神经网络可用的形式(例如将像素值归一化到0-1区间)、将标签转换为one-hot编码等。完成这些处理后,才能为后续训练准备好质量更高的输入数据。
本实验一共构建并训练了三类神经网络:浅层全连接网络、卷积神经网络(CNN)以及改进的卷积神经网络(含残差块)。接下来将从结构与理论背景角度,对这三种模型做详细说明。
1.图像原理
在计算机中,图像可以理解为一组有序排列的数值,取值范围为0到255。0代表最暗,255代表最亮。 如下图:
图 { SEQ 图 \* ARABIC |1} 图像原理
上图呈现的是黑白的灰度形式;更常见的表达方式是RGB颜色模型,也就是通过红、绿、蓝三种基色光按比例叠加来形成多样的颜色。RGB模型中,一个二维矩阵会扩展为三个按顺序排列的矩阵,也可以用三维张量来进行理解。
图 { SEQ 图 \* ARABIC |2} RGB颜色模型
这三个矩阵中的每一个,都可称为该图像的一个channel(通道)。
2.全连接神经网络原理
全连接神经网络属于深度学习中最基础的网络形态之一。虽然“网络”一词容易让人联想到复杂结构,但从实现角度看,它的搭建要比现实中的网络简单许多。不过,正是这种相对直接的结构,却能在实践中发挥出非常强的能力,用于处理多类复杂任务,因此全连接神经网络在人工智能领域具有重要地位。
下面的示意图展示了它的典型结构。
图 { SEQ 图 \* ARABIC |3} 全连接神经网络基本结构
如图所示,网络由输入层、中间的计算层(隐藏层)以及输出层构成。各层对应的处理过程如下:
图 { SEQ 图 \* ARABIC |4} 全连接神经网络运算示意图
如果不把输入层算作计算部分,上述结构一共包含隐藏层和输出层两级,它们在“圆圈”标注处完成的运算,实际就是对x的两条表达式组合计算。每一级的结果再作为下一层的输入,实现逐层传递。
该函数的作用是把输出约束到(0, 1)之间,从而实现归一化,避免输入数值过大导致训练不稳定,进而降低整体训练效果。
在训练层面,全连接神经网络通常以有监督学习为核心:通过损失函数Loss衡量网络输出与真实标签之间的差距;随后使用反向传播算法依据Loss的大小更新模型参数,使误差逐步减小,最终得到更优的模型。下图进一步展示了反向传播的运行流程。
图 { SEQ 图 \* ARABIC |5} 反向传播示意图
所谓训练,就是持续调整网络权重,让损失函数趋近于最小。这个过程在直观上类似于数学中求解方程,只是神经网络训练中我们追求的是最优参数,而不是单一确定解。
将上面的公式做进一步整理后可以发现,A、B、C、D、E、F都是常数,真正需要求的未知量是w和b。为了让Loss尽可能小,我们需要找到最合适的w与b。若在二维空间中理解,它就相当于要寻找一条曲线,使其与坐标轴上的所有样本点之间的整体距离最小。如图所示。
图 { SEQ 图 \* ARABIC |6} 曲线拟合图
同样地,我们也可以把Loss方程改写为三维图像来寻找最优解。三维视图就像一个“碗”,如图4.6所示;它和二维情形的抛物线一样存在极值。只要找到极值位置,就能确定Loss最小时对应的(w , b),也就是“碗底”的坐标。
图 { SEQ 图 \* ARABIC |7} 三维图像示意图
为了获得最优解,梯度下降算法是一种常用选择。梯度下降属于迭代式优化方法,目标是最小化某个待优化函数。每次迭代时,都会根据当前点的梯度来更新参数,从而试图逼近函数的局部最小值。这个过程可以类比为沿着最陡峭的下坡方向从山上走到山谷:
每走一步,位置会发生变化:
其中,表示学习率(Learning Rate),它在梯度下降中非常关键,用来控制每轮迭代中参数更新的步幅。学习率设定是否合适,会显著影响模型训练表现;学习率过大或过小都可能导致效果变差。下图展示了不同学习率对模型收敛速度的影响。
图 { SEQ 图 \* ARABIC |8} 学习率变化示意图
从结果中可以看出,学习率会直接决定模型收敛到局部最小值的速度,也就是最终精度形成的快慢。一般而言,学习率越大,模型学习速度往往更快;但如果过小,模型可能会卡在局部最优附近。反过来,如果设置过大,可能跨过最优点,使损失不再持续下降,并在某个区域反复震荡。
总结来说,合理设置学习率既能保证模型准确性,也能提升训练效率并降低资源消耗。尽管学习率并不存在绝对统一的标准,但通常需要结合实验与经验来寻找较优数值。
结合本题,浅层全连接网络模型可按以下步骤搭建:
1.输入层:将28x28的二维图像通过Flatten层展开为一维向量。
2.隐藏层:使用包含128个神经元的全连接层,并采用ReLU作为激活函数。
3.输出层:设置10个神经元的全连接层,激活函数使用Softmax,用于对10个类别进行分类。
公式描述:
设输入图像尺寸为2828,经层展平后得到784维向量。
输入到隐藏层的权重矩阵为,偏置为:
其中为输入图像向量。隐藏层的激活计算为:
输出层的权重矩阵为,偏置为:
最终利用函数得到各类别的概率结果:
1.卷积的介绍
卷积神经网络(Convolutional Neural Network,CNN)是计算机视觉领域里应用广泛且效果突出的深度学习模型。它的设计灵感来自生物视觉系统,试图模拟人类视觉的处理思路。近年来,CNN在图像识别、目标检测、图像生成等任务上持续取得显著进展,逐渐成为计算机视觉与深度学习研究中的重要组成部分。
在传统神经网络中,当我们面对下图红色框内的目标时,模型往往难以正确识别。原因在于这些样本的位置互不相同,而传统网络难以感知到它们实际上属于同一种形状或同一类物体。
图 { SEQ 图 \* ARABIC |9} 案例
传统神经网络的基本思路如下图:
图 { SEQ 图 \* ARABIC |10} 传统神经网络
我们希望无论物体出现在画面的左侧还是右侧,模型都能把它当作同一类目标进行识别,这种性质被称为不变性。要实现平移不变性,卷积神经网络(CNN)等模型会在卷积层引入卷积操作,使其能够提取图像中的局部特征,同时尽量降低位置变化带来的影响。
在卷积神经网络中,卷积操作是指:将一个可在图像上移动的小窗口(如绿色矩形所示)与图像对应区域逐元素相乘后再求和。这个小窗口对应一组固定权重,可视为特定的滤波器(filter)或卷积核。之所以叫“卷积”,就在于它包含了元素级相乘并汇总求和的计算过程。正是这种操作构成了卷积神经网络名称的