PyTorch中的MNIST图像识别数据集(带实例)

在本主题中, 我们将讨论一种在图像识别中使用的新型数据集。该数据集称为MNIST数据集。 MNIST数据集可以在网上找到, 并且本质上只是各种手写数字的数据库。 MNIST数据集包含大量数据, 通常用于证明深度神经网络的真正功能。
假设我们有下图:

PyTorch中的MNIST图像识别数据集(带实例)

文章图片
当我们看图像时, 我们的大脑和眼睛一起工作以识别出该图像为第八位。我们的大脑是一个非常强大的工具, 并且能够非常快速地将该图像归类为八个。数字的形状如此之多, 我们的大脑可以轻松识别这些形状并确定数字是多少, 但是对于计算机而言, 完成这项任务并非那么简单。只有一种方法可以做到这一点, 那就是使用深度神经网络, 它允许我们训练计算机以有效地对手写数字进行分类。
到目前为止, 我们只处理了笛卡尔坐标系上包含简单数据点的数据。从开始到现在, 我们一直在处理二进制类数据集。现在, 我们将使用多类数据集, 当使用多类数据集时, 将在输出层中使用Softmax激活函数, 而不是Sigmoid函数。 sigmoid激活函数对于分类二进制数据集非常有用, 并且在将概率值排列在0和1之间时非常有效。sigmoid函数对于多类数据集无效, 为此, 我们使用Softmax激活函数, 即有能力应对。
MNIST数据集是一个多类数据集, 由10个类别组成, 我们可以将0到9的数字分类。先前使用的数据集与MNIST数据集之间的主要区别在于, 将MNIST数据输入到神经网络。
在感知器模型和线性回归模型中, 每个数据点均由简单的X和Y坐标定义。这意味着输入层需要两个节点来输入单个数据点。
在MNIST数据集中, 单个数据点以图像的形式出现。包含在MNIST数据集中的这些图像通常为28 * 28像素, 因此, 横轴为28个像素, 纵轴为28个像素。这意味着来自MNIST数据库的单个图像共有784个像素, 必须对其进行分析。我们的神经网络的输入层中有784个节点来分析这些图像之一。
PyTorch中的MNIST图像识别数据集(带实例)

文章图片
由于增加了输入节点, 并且没有增加任何类, 因此可以将数字分类为0到9。很明显, 我们的数据集比我们之前分析的任何数据集都要复杂。为了对该数据集进行分类, 需要具有某些隐藏层有效性的深度神经网络。
【PyTorch中的MNIST图像识别数据集(带实例)】在我们的深度神经网络中, 输入层中有784个节点, 一些隐藏层将前馈输入值, 最后输出层中有十个节点, 分别对应每个手写数字。这些值通过网络馈送, 并且在输出层中输出最高激活值的节点标识字母或数字。

    推荐阅读