Skip to content Skip to footer

构建神经网络的分步指南……

image-20240115205250857

神经网络

介绍

人工神经网络 (ANN) 是机器学习和人工智能的基石,其灵感来自构成动物大脑的生物神经网络。在这篇博文中,我们将介绍构建神经网络的过程,以对 Fashion MNIST 数据集中的图像进行分类。

第 1 步:导入必要的库

首先,我们需要导入必要的库。我们将使用 TensorFlow 和 Keras 来构建我们的神经网络。

image-20240115205211259

步骤 2:加载数据集

Fashion MNIST 数据集可直接从 TensorFlow 数据集获得。

现在,我们已经成功加载了 Fashion MNIST 数据集。该数据集包含 10 个时尚类别的 60,000 张 28x28 灰度图像,以及 10,000 张图像的测试集。

第 3 步:预处理数据

在训练之前,我们将通过将数据缩放到 0 到 1 的范围来预处理数据。

image-20240115205153110

现在,我们已经成功地将图像的像素值归一化为介于 0 和 1 之间。这是机器学习中常见的预处理步骤,可以帮助模型更有效地学习。现在,它已准备好构建和编译神经网络模型。

步骤 4:构建模型

现在,让我们构建神经网络模型。我们将使用一个包含输入层、隐藏层和输出层的简单模型。

image-20240115205135734

现在,我们刚刚定义了神经网络模型的架构。以下是每行的作用:

keras.layers.Flatten(input_shape=(28, 28)):

该层将图像格式从二维数组(28 x 28 像素)转换为一维数组(28 * 28 = 784 像素)。该层没有要学习的参数;它只重新格式化数据。

keras.layers.Dense(128, activation='relu'):

这是一个密集连接或完全连接的神经层。它有 128 个节点(或神经元)。relu 激活函数用于此层。

keras.layers.Dense(10):

这是最后一层,它返回一个长度为 10 的 logits 数组。每个节点都包含一个分数,指示当前图像属于 10 个类之一。

下一步是编译模型。

步骤 5:编译模型

接下来,我们将编译模型,指定要跟踪的优化器、损失函数和指标。

image-20240115205118091

已成功编译模型。以下是每个参数的作用:

optimizer='adam':

这是用于调整网络权重以最大程度地减少损失的优化算法。Adam 因其效率和低内存要求而成为热门选择。

loss=tf.keras.loss.SparseCategoricalCrossentropy(from_logits=True):

这是用于衡量模型性能的损失函数。由于我们正在处理多类分类问题,因此我们使用稀疏分类交叉熵。from_logits=True 表示函数应将模型的原始输出值解释为 logits。

metrics=['准确性']:

这是在训练和测试期间要监视的指标。在这里,我们对分类的准确性感兴趣。

现在,我们准备使用 model.fit() 函数训练模型。

步骤 6:训练模型

现在,我们已准备好使用训练数据来训练模型。

模型的训练过程。这是正在发生的事情:

model.fit(train_images, train_labels, epochs=10):

这条线开始将神经网络模型训练(或“拟合”)到训练数据。epochs=10 参数表示整个数据集将通过模型 10 次。在每个时期,模型学习数据中的模式并调整其内部参数以减少损失。
训练后,我们可以使用 model.evaluate() 函数评估模型在测试数据集上的性能。这将使我们获得模型在以前从未见过的数据上的准确性。

请记住,机器学习是一个迭代过程。您可能需要根据从此初始训练中获得的结果来调整模型体系结构或超参数。

第 7 步:评估准确性

最后,我们将评估模型在测试数据集上的准确性。

image-20240115205054890

现在,我们已经在测试数据集上成功评估了该模型。model.evaluate() 函数将在测试模式下返回模型的损失值和指标值。