PyTorch 教程-在PyTorch中的图像识别MNIST数据集
在这个主题中,我们将讨论一种新型的数据集,我们将在图像识别中使用。这个数据集被称为MNIST数据集。MNIST数据集可以在线找到,它基本上只是各种手写数字的数据库。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个节点,用于分析这些图像中的一个。
由于额外的输入节点和数字可以分类为0到9的类别数的增加。很明显,我们的数据集比我们以前分析的任何数据集都要复杂。为了对这个数据集进行分类,需要一个具有一些隐藏层效果的深度神经网络。
在我们的深度神经网络中,输入层有784个节点,其中一些隐藏层将输入值前馈,最后输出层有十个节点,对应于各个手写数字。值被馈送到网络,输出层中输出最高激活值的节点识别字母或数字。