基于全连接神经网络的minist数据集分类

1.构建全连接神经网络

全连接神经网络介绍:

全连接神经网络(Fully Connected Neural Network,FCNN)是一种经典的人工神经网络结构,它将每个神经元与前一层的所有神经元相连,形成一个密集的网络。FCNN广泛应用于各种机器学习任务,例如图像分类、语音识别和自然语言处理等。

结构包含:

  1. 输入层:接收输入数据,例如图像像素值、文本向量等。
  2. 隐藏层:由多个神经元组成,每个神经元都与前一层的所有神经元相连。隐藏层的数量和神经元数量可以根据具体任务进行调整。
  3. 输出层:产生模型的输出,例如分类任务的类别概率、回归任务的预测值等。

工作原理:

  1. 前向传播:将输入数据传递到网络的每一层,并进行矩阵乘法和激活函数运算,最终得到输出层的输出。
  2. 反向传播:计算损失函数对网络参数的梯度,并通过梯度下降算法更新网络参数,以最小化损失函数。

优缺点:

  1. 优点:结构简单,易于理解和实现。可以处理各种类型的输入数据。可以通过增加隐藏层数量和神经元数量来提高模型的复杂度。
  2. 缺点:需要大量的训练数据。容易过拟合。训练时间较长。

本实验全连接网络构建过程:

定义 Net 类,继承 nn.Module。

在 __init__ 方法中定义网络结构,包括:

  1. 输入层:接收28x28像素的图像数据,即784个输入单元。
  2. 第一个隐藏层:包含300个神经元,使用ReLU激活函数。
  3. 第二个隐藏层:包含100个神经元,同样使用ReLU激活函数。
  4. 输出层:包含10个神经元,对应10个数字类别,使用Softmax激活函数输出每个类别的概率。并全部使用 nn.Sequential 封装。

在隐藏层中采用了ReLU激活函数,ReLU可以有效避免梯度消失问题,有助于提高深层网络的训练效率(对于分类任务,选择了交叉熵损失函数,该损失函数适用于多分类问题,能够衡量模型预测的概率分布与真实标签之间的差异)。

3. 网络训练与优化

为了最小化损失函数,选择了带有动量的随机梯度下降(SGD)优化器。动量项可以帮助优化器更快地穿越损失函数的平坦区域,从而加速训练过程。同时,

你可能感兴趣的:(神经网络,人工智能,全连接神经网络,minist数据集)