要解决的问题
要让机器学会看图分类,先得有大量已经标好答案的图像:模型需要先看到足够多的「这张图是猫、那张图是船」,才能建立起从像素到类别名的对应关系。CIFAR-10 和 CIFAR-100 就是为此准备的数据集。两者都是从 8000 万张小图像数据集(80 million tiny images)中抽出的带标签子集,由 Alex Krizhevsky、Vinod Nair 和 Geoffrey Hinton 制作 [1]。数据集的构成记录在 Krizhevsky 2009 年的技术报告《Learning Multiple Layers of Features from Tiny Images》(从小图像中学习多层特征)中 [1]。
数据集怎么构成
CIFAR-10 一共包含 60000 张 32×32 的彩色图像,分为 10 个类别,每类 6000 张 [1]。其中 50000 张是训练图像,10000 张是测试图像,被分成 5 个训练批(batch)和 1 个测试批,每批各 10000 张 [1]。测试批里每个类别正好有 1000 张随机挑选的图像,5 个训练批合起来,每个类别正好有 5000 张 [1]。
10 个类别是飞机(airplane)、汽车(automobile)、鸟(bird)、猫(cat)、鹿(deer)、狗(dog)、青蛙(frog)、马(horse)、船(ship)、卡车(truck),彼此完全互斥 [1]。互斥这一点很关键:一张图的答案必须是唯一的,它要么算汽车、要么算卡车,不会被同时记成两类,所以每张图的正确答案都没有歧义。每类数量相同则是另一个考虑:每类正好 6000 张,分类器就没法靠偏向出现次数多的类别来刷出好看的分数。
32×32 的尺寸是第三个设计选择。单张图像很小,存下 60000 张、在它们上面反复做训练实验的成本都不高,这才使它适合被当作可以一遍遍重来的参照,而不只是一次性的测验。
基线结果
报告记录了一个卷积神经网络(convolutional neural network,指用一组小的可学习滤波器在图像上滑动、而不是把每个像素都当作独立输入的神经网络)在 CIFAR-10 上的表现:不做数据增强(data augmentation)时测试误差为 18%,做数据增强时为 11% [1]。数据增强是指在训练时对已有图像做变换、生成更多副本,让网络看到同一批样本的更多变体。两个数字之间的差距本身就说明问题:它表明相当一部分难度来自训练图像数量有限,而不是类别本身难以区分。
为什么重要
把这些性质放在一起,CIFAR-10 就成了一个可用的标尺。训练图像和测试图像是事先固定好的,所以那个 10000 张的测试批对每个使用者都意味着同一件事;每类在测试批里正好贡献 1000 张,因此总体准确率不会被某个特别容易的类别主导;类别之间互斥,则保证每张图只有一个正确答案。于是「11% 测试误差」这样的数字有明确含义,可以和另一种方法在同一个划分上报出的数字直接对照。
在其中的位置
这份技术报告同时做了两件事:说清数据如何组织,并给出用卷积网络得到的基线错误率 [1]。因此读到这个数据集的人,看到的不只是图像和标签,还能看到一个参考性的性能水平,并能在同一批训练批、同一个测试批和同样的每类张数上衡量新结果 [1]。CIFAR-100 属于同一个家族,是同样三个人从 8000 万张小图像数据集中抽出的另一个带标签子集 [1]。
注释与来源
- CIFAR-10 and CIFAR-100 datasetshttps://www.cs.toronto.edu/~kriz/cifar.html
引用本页: 《从小图像中学习多层特征》(CIFAR-10/100). TellWorld, https://www.tellworld.net/zh/papers/cifar-10-cifar-100. 更新于 2026-11-08