Logo
Section 1 / 11

MNIST 数据集

了解手写数字的MNIST数据集。

导入

MNIST 数据集

了解手写数字的MNIST数据集。

手写数字的 MNIST 数据集

识别手写体是测试人工智能的理想挑战,因为这个问题足够复杂且模糊。它不像大量数字相乘那样清晰明确。

让计算机正确判断图像内容(有时称为图像识别问题)这一任务历经数十年研究仍难以攻克。直到最近才取得显著进展,而神经网络等方法在这些突破中起到了关键作用。

为了理解图像识别的难度,我们可以注意到:人类自身有时也会对一幅图像的内容产生分歧。例如,对于某个手写字符究竟是什么,我们可能意见不一,特别是当这个字符书写匆忙或潦草时。请看下面这个手写数字,它是 44 还是 99?

...
手写数字有时难以区分

人工智能研究人员常用一个包含手写数字图像的数据集合来测试他们的最新想法和算法。由于该数据集广为人知且使用广泛,因此很容易将自己的新方法与其他方法进行性能对比。也就是说,不同的思路和算法可以在同一数据集上进行公平测试。

这个数据集被称为手写数字的 MNIST 数据库,可从著名神经网络研究者 Yann LeCun 的网站获取。该网页还列出了各种新旧方法在学习和正确分类这些手写字符上的表现。我们将在后续多次参考这份排行榜,以评估我们自己的方法与专业水平之间的差距!

MNIST 数据集的格式

MNIST 数据库的原始格式并不便于使用,因此有人贴心地将其转换为更简单的格式,例如 CSV(逗号分隔值)文件。CSV 文件以纯文本形式存储数据,各数值之间用逗号分隔。这类文件可以用任意文本编辑器打开,也兼容大多数电子表格或数据分析软件,几乎是通用标准。该网站提供了两个 CSV 文件:

  • 训练集
  • 测试集

顾名思义,训练集包含 60,000 个带标签的样本,用于训练神经网络。“带标签”意味着每个输入数据都附有对应的正确输出结果,也就是期望的答案。

较小的测试集包含 10,000 个样本,用于评估我们的方法或算法的实际效果。测试集同样包含正确标签,因此我们可以检查神经网络的预测是否准确。

将训练数据与测试数据分开的理念,是为了确保我们在未见过的数据上检验模型性能。否则,模型可能通过死记硬背训练数据获得看似完美的分数,实则毫无泛化能力。这种训练集与测试集分离的做法在机器学习中非常普遍。

使用Python实现神经网络

MNIST 数据文件