Logo
Section 1 / 5

CIFAR-10 数据集

了解 CIFAR-10 数据集。

导入

CIFAR-10 数据集

了解 CIFAR-10 数据集。

本章简介

至此,我们已经熟悉了神经网络的基本结构。目前为止我们所见到的所有网络都采用相同的架构:一系列全连接层,其中“全连接”指的是每一层中的每个节点都与相邻层的所有节点相连。这种结构也被称为全连接神经网络,它存在一个明显的局限性:无论是图像分类、产品评论分析,还是交通拥堵预测,全连接网络都将数据视为完全相同的、无差别的字节序列。这种通用化的方法能力有限,在处理复杂数据集时往往表现不佳。

深度学习不仅仅是让神经网络变得更深,更重要的是让它变得更智能,并针对不同类型的数据采用不同的网络架构。深度学习研究者们在基础的全连接网络基础上提出了多种变体,而且新的架构可能正在不断被发明出来。每一种架构都值得单独开设一门课程来讲解,有些甚至已经发展成为独立的研究领域。

本章无法详尽描述或一一列举所有这些不同的网络结构,但我们至少可以简要了解其中一种。结合本课程的整体内容,我们将重点介绍一种专为处理图像而设计的架构——卷积神经网络(Convolutional Neural Network),简称 CNN。与全连接网络通过权重矩阵相乘传递信息不同,CNN 基于一种更复杂的操作——卷积,这使得它在处理具有空间结构的数据(如图像)时表现出色。

在深入研究 CNN 之前,我们需要一个合适的数据集来训练模型。

回顾一下之前介绍 MNIST 数据集的“初识真实数据”章节。当时那些手写数字看起来颇具挑战性。如今,我们的神经网络已经能够轻松应对 MNIST,准确率甚至超过了 99%,此时很难分辨出性能提升究竟是真实进步还是随机波动。

当 MNIST 对我们的神经网络来说已不再具有挑战性时,我们就需要转向更具难度的数据集——CIFAR-10。

CIFAR-10 简介

在图像识别领域,MNIST 被视为入门级数据集,而更具挑战性的基准是 CIFAR-10 数据集。其中,CIFAR 代表“加拿大高级研究院”(Canadian Institute For Advanced Research),10 表示该数据集中包含 10 个类别。下图展示了 CIFAR-10 中的一些样本图像:

...
CIFAR-10 数据集样本

与 MNIST 类似,CIFAR-10 包含 60,000 张训练图像和 10,000 张测试图像。但 CIFAR-10 的图像更难分类。尽管看起来像素感较强,但它们比 MNIST 的图像更大。CIFAR-10 图像不是二维矩阵,而是张量。具体来说,它们是形状为 (32,32,3) 的张量:即 32×32 像素,并包含红、绿、蓝三个颜色通道,总共包含 3072 个变量,几乎是 MNIST 的 784 个变量的四倍。

然而,CIFAR-10 的难点并不主要在于数据规模,而在于其内容的复杂性。图像不再是简单的数字,而是现实世界中的物体,例如马匹和船只。比如,观察标签为 2 的鸟类样本,彼此之间差异显著;相反,属于不同类别的物体却可能非常相似,例如海鸥与战斗机,或汽车与卡车。面对如此多易混淆的对象,即使是强大的神经网络也面临严峻考验。

接下来,让我们使用目前构建的最佳神经网络,看看它在这些图像上的表现如何。

全连接网络在 CIFAR 上的局限

我们可以沿用此前在“动手实践:10 轮训练挑战”中构建的最佳神经网络,仅做适当修改,使其能够在 CIFAR-10 上进行训练。关键修改位于 第 8、11 和 36 行。

如果时间有限,也可以减少 epochs 的数量:

此处,我们的 CIFAR-10 分类器训练了 5 个 epochs,但为了获得更高的 accuracy,通常需要增加 epochs 的数量。以下代码框下方展示了训练 25 个 epochs 后的结果:

No configuration found for ID: b14e872b8a6b41a5e39239c037a824d9bcb6babd2fc36aa5f0c09ea588900e7f

除了将数据集从 MNIST 更换为 CIFAR-10 外,我们唯一调整的就是训练轮数。若将其增至 25 轮,结果如下:

在 50000 个样本上训练,在 5000 个样本上验证
第 1 轮 - 损失: 1.7835 - 准确率: 0.3665 - 验证损失: 1.9901 - 验证准确率: 0.3244
…
第 25 轮 - 损失: 0.9512 - 准确率: 0.6596 - 验证损失: 1.4610 - 验证准确率: 0.5216

从数据来看,我们的神经网络在验证集上错误分类了大约一半的图像。虽然这比随机猜测的 10% 准确率要高,但显然仍不够理想。

由此可见,全连接神经网络难以胜任 CIFAR-10 这样的任务。接下来,我们尝试切换到另一种更适合处理图像的架构,看看会发生什么。

设计网络

卷积神经网络的基本构成模块