原文地址:THE MNIST DATABASE of handwritten digits
- Yann LeCun, Courant研究所, 纽约大学
- Corinna Cortes, Google实验室, 纽约
- Christopher J.C. Burges, Microsoft研究室, 雷蒙德
翻译:习立风(Patten Kuo) 翻译时间:2018/08/01
可从该页面获得的MNIST手写数字数据库具有60,000个示例的训练集和10,000个示例的测试集。 它是NIST提供的更大集合的子集。这些数字已进行了规格标准化,并在固定尺寸的图片里居中展现。
对于那些希望在真实数据上尝试学习技术和模式识别方法,同时在预处理和格式化方面花费最少的人来说,它是一个很好的数据库。
本网站提供四个文件:
- train-images-idx3-ubyte.gz:训练集图像(9912422字节)
- train-labels-idx1-ubyte.gz:训练集标签(28881字节)
- t10k-images-idx3-ubyte.gz:测试集图像(1648877字节)
- t10k-labels-idx1-ubyte.gz:测试集标签(4542字节)
请注意,您的浏览器可能会在不通知您的情况下解压这些文件。如果您下载的文件大小超过上述文件大小,则浏览器已经对其进行了解压操作。只需重命名它们删除.gz扩展名后缀即可。有些人问我“我的应用程序无法打开您的图像文件”。这些文件不是任何标准图像格式。你必须编写自己的(非常简单的)程序来阅读它们。此文件格式在本页底部描述。
来自NIST的原始黑白(双层)图像在保持它们的纵横比的情况下被尺寸标准化,以适应20x20像素的盒子。由于归一化算法使用的抗锯齿技术,所以得到的图像包含灰度级。通过计算像素的质心并平移图像以将该质点定位在28×28区域的中心,使其在28×28图像的中心。
使用一些分类方法(特别是基于模板的方法,例如SVM和K-近邻算法),当数字以边界框而不是质心为中心时,错误率会提高。如果您进行此类预处理,则应在你的刊文中进行声明。
MNIST数据库由NIST的特殊数据库3和特殊数据库1构成,其中包含手写数字的二进制图像。 NIST最初将SD-3指定为训练集,将SD-1指定为测试集。但是,与SD-1相比,SD-3更清晰、更容易识别。造成这种情况的实际原因为SD-3是从人口普查局员工处收集的,而SD-1是从高中学生那里收集的。从学习实验中得出合理的结论要求结果与整套样本中选择训练集还是测试集无关。因此,有必要通过混合NIST的数据集来构建新的数据库。
MNIST训练集由SD-3的30,000个图案和SD-1的30,000个图案组成。我们的测试装置由SD-3的5,000个图案和SD-1的5,000个图案组成。60,000个图案训练集包含大约250个手写者的图案。我们确保训练集和测试集的手写者是不相交的。
SD-1包含由500个不同手写者写的58,527位数字图像。与SD-3相反,其中来自每个手写者的数据块按顺序出现,SD-1中的数据是被打乱的。SD-1的手写者身份可用,我们使用此信息来整合手写者。 然后我们将SD-1分成两部分:前250名手写者写的字符进入我们的新训练集;其余250位手写者被放入我们的测试集中。因此,我们有两组数据集,每组有近30,000个例子。新的训练集已经完成了SD-3的足够示例,从图案#0开始,制作了一整套60,000种训练图案。类似地,新的测试集完成了SD-3示例,从图案#35,000开始,使用60,000个测试图案进行全套测试。此站点上只有10,000个测试图像的子集(来自SD-1的5,000个和来自SD-3的5,000个)。提供了完整的60,000个样本培训套件。
已经使用该训练集和测试集验证了许多方法。这里有一些例子:有关这些方法的详细信息将在下一篇论文中给出。其中一些实验使用了数据库的一个版本,其中输入图像被去偏斜(通过计算最接近垂直的形状的主轴,并移动线以使其垂直)。在一些其他实验中,训练集增加了原始训练样本的人工扭曲版本。失真是移位,缩放,倾斜和压缩的随机组合。
CLASSIFIER | PREPROCESSING | TEST ERROR RATE (%) | Reference |
Linear Classifiers | |||
linear classifier (1-layer NN) | none | 12.0 | LeCun et al. 1998 |
linear classifier (1-layer NN) | deskewing | 8.4 | LeCun et al. 1998 |
pairwise linear classifier | deskewing | 7.6 | LeCun et al. 1998 |
K-Nearest Neighbors | |||
K-nearest-neighbors, Euclidean (L2) | none | 5.0 | LeCun et al. 1998 |
K-nearest-neighbors, Euclidean (L2) | none | 3.09 | Kenneth Wilder, U. Chicago |
K-nearest-neighbors, L3 | none | 2.83 | Kenneth Wilder, U. Chicago |
K-nearest-neighbors, Euclidean (L2) | deskewing | 2.4 | LeCun et al. 1998 |
K-nearest-neighbors, Euclidean (L2) | deskewing, noise removal, blurring | 1.80 | Kenneth Wilder, U. Chicago |
K-nearest-neighbors, L3 | deskewing, noise removal, blurring | 1.73 | Kenneth Wilder, U. Chicago |
K-nearest-neighbors, L3 | deskewing, noise removal, blurring, 1 pixel shift | 1.33 | Kenneth Wilder, U. Chicago |
K-nearest-neighbors, L3 | deskewing, noise removal, blurring, 2 pixel shift | 1.22 | Kenneth Wilder, U. Chicago |
K-NN with non-linear deformation (IDM) | shiftable edges | 0.54 | Keysers et al. IEEE PAMI 2007 |
K-NN with non-linear deformation (P2DHMDM) | shiftable edges | 0.52 | Keysers et al. IEEE PAMI 2007 |
K-NN, Tangent Distance | subsampling to 16x16 pixels | 1.1 | LeCun et al. 1998 |
K-NN, shape context matching | shape context feature extraction | 0.63 | Belongie et al. IEEE PAMI 2002 |
Boosted Stumps | |||
boosted stumps | none | 7.7 | Kegl et al., ICML 2009 |
products of boosted stumps (3 terms) | none | 1.26 | Kegl et al., ICML 2009 |
boosted trees (17 leaves) | none | 1.53 | Kegl et al., ICML 2009 |
stumps on Haar features | Haar features | 1.02 | Kegl et al., ICML 2009 |
product of stumps on Haar f. | Haar features | 0.87 | Kegl et al., ICML 2009 |
Non-Linear Classifiers | |||
40 PCA + quadratic classifier | none | 3.3 | LeCun et al. 1998 |
1000 RBF + linear classifier | none | 3.6 | LeCun et al. 1998 |
SVMs | |||
SVM, Gaussian Kernel | none | 1.4 | |
SVM deg 4 polynomial | deskewing | 1.1 | LeCun et al. 1998 |
Reduced Set SVM deg 5 polynomial | deskewing | 1.0 | LeCun et al. 1998 |
Virtual SVM deg-9 poly [distortions] | none | 0.8 | LeCun et al. 1998 |
Virtual SVM, deg-9 poly, 1-pixel jittered | none | 0.68 | DeCoste and Scholkopf, MLJ 2002 |
Virtual SVM, deg-9 poly, 1-pixel jittered | deskewing | 0.68 | DeCoste and Scholkopf, MLJ 2002 |
Virtual SVM, deg-9 poly, 2-pixel jittered | deskewing | 0.56 | DeCoste and Scholkopf, MLJ 2002 |
Neural Nets | |||
2-layer NN, 300 hidden units, mean square error | none | 4.7 | LeCun et al. 1998 |
2-layer NN, 300 HU, MSE, [distortions] | none | 3.6 | LeCun et al. 1998 |
2-layer NN, 300 HU | deskewing | 1.6 | LeCun et al. 1998 |
2-layer NN, 1000 hidden units | none | 4.5 | LeCun et al. 1998 |
2-layer NN, 1000 HU, [distortions] | none | 3.8 | LeCun et al. 1998 |
3-layer NN, 300+100 hidden units | none | 3.05 | LeCun et al. 1998 |
3-layer NN, 300+100 HU [distortions] | none | 2.5 | LeCun et al. 1998 |
3-layer NN, 500+150 hidden units | none | 2.95 | LeCun et al. 1998 |
3-layer NN, 500+150 HU [distortions] | none | 2.45 | LeCun et al. 1998 |
3-layer NN, 500+300 HU, softmax, cross entropy, weight decay | none | 1.53 | Hinton, unpublished, 2005 |
2-layer NN, 800 HU, Cross-Entropy Loss | none | 1.6 | Simard et al., ICDAR 2003 |
2-layer NN, 800 HU, cross-entropy [affine distortions] | none | 1.1 | Simard et al., ICDAR 2003 |
2-layer NN, 800 HU, MSE [elastic distortions] | none | 0.9 | Simard et al., ICDAR 2003 |
2-layer NN, 800 HU, cross-entropy [elastic distortions] | none | 0.7 | Simard et al., ICDAR 2003 |
NN, 784-500-500-2000-30 + nearest neighbor, RBM + NCA training [no distortions] | none | 1.0 | Salakhutdinov and Hinton, AI-Stats 2007 |
6-layer NN 784-2500-2000-1500-1000-500-10 (on GPU) [elastic distortions] | none | 0.35 | Ciresan et al. Neural Computation 10, 2010 and arXiv 1003.0358, 2010 |
committee of 25 NN 784-800-10 [elastic distortions] | width normalization, deslanting | 0.39 | Meier et al. ICDAR 2011 |
deep convex net, unsup pre-training [no distortions] | none | 0.83 | Deng et al. Interspeech 2010 |
Convolutional nets | |||
Convolutional net LeNet-1 | subsampling to 16x16 pixels | 1.7 | LeCun et al. 1998 |
Convolutional net LeNet-4 | none | 1.1 | LeCun et al. 1998 |
Convolutional net LeNet-4 with K-NN instead of last layer | none | 1.1 | LeCun et al. 1998 |
Convolutional net LeNet-4 with local learning instead of last layer | none | 1.1 | LeCun et al. 1998 |
Convolutional net LeNet-5, [no distortions] | none | 0.95 | LeCun et al. 1998 |
Convolutional net LeNet-5, [huge distortions] | none | 0.85 | LeCun et al. 1998 |
Convolutional net LeNet-5, [distortions] | none | 0.8 | LeCun et al. 1998 |
Convolutional net Boosted LeNet-4, [distortions] | none | 0.7 | LeCun et al. 1998 |
Trainable feature extractor + SVMs [no distortions] | none | 0.83 | Lauer et al., Pattern Recognition 40-6, 2007 |
Trainable feature extractor + SVMs [elastic distortions] | none | 0.56 | Lauer et al., Pattern Recognition 40-6, 2007 |
Trainable feature extractor + SVMs [affine distortions] | none | 0.54 | Lauer et al., Pattern Recognition 40-6, 2007 |
unsupervised sparse features + SVM, [no distortions] | none | 0.59 | Labusch et al., IEEE TNN 2008 |
Convolutional net, cross-entropy [affine distortions] | none | 0.6 | Simard et al., ICDAR 2003 |
Convolutional net, cross-entropy [elastic distortions] | none | 0.4 | Simard et al., ICDAR 2003 |
large conv. net, random features [no distortions] | none | 0.89 | Ranzato et al., CVPR 2007 |
large conv. net, unsup features [no distortions] | none | 0.62 | Ranzato et al., CVPR 2007 |
large conv. net, unsup pretraining [no distortions] | none | 0.60 | Ranzato et al., NIPS 2006 |
large conv. net, unsup pretraining [elastic distortions] | none | 0.39 | Ranzato et al., NIPS 2006 |
large conv. net, unsup pretraining [no distortions] | none | 0.53 | Jarrett et al., ICCV 2009 |
large/deep conv. net, 1-20-40-60-80-100-120-120-10 [elastic distortions] | none | 0.35 | Ciresan et al. IJCAI 2011 |
committee of 7 conv. net, 1-20-P-40-P-150-10 [elastic distortions] | width normalization | 0.27 +-0.02 | Ciresan et al. ICDAR 2011 |
committee of 35 conv. net, 1-20-P-40-P-150-10 [elastic distortions] | width normalization | 0.23 | Ciresan et al. CVPR 2012 |
参考文献:
[LeCun et al., 1998a]
Y. LeCun, L. Bottou, Y. Bengio, and P. Haffner. “Gradient-based learning applied to document recognition.” Proceedings of the IEEE, 86(11):2278-2324, November 1998. on-line version
MNIST数据库的文件格式
数据以非常简单的用于存储矢量和多维矩阵的文件格式存储。有关此格式的一般信息,请参见本页末尾,但您无需阅读该信息即可使用数据文件。
文件中的所有整数都以大多数非英特尔处理器使用的MSB优先(高端)格式存储。 英特尔处理器和其他低端机器的用户必须翻转标头的字节。
以下有四个文件:
- train-images-idx3-ubyte:训练集图像
- train-labels-idx1-ubyte:训练集标签
- t10k-images-idx3-ubyte:测试集图像
- t10k-labels-idx1-ubyte:测试集标签
训练集包含60000个示例,测试集包含10000个示例。
测试集的前5000个示例取自原始NIST训练集。最后的5000个来自原始的NIST测试集。前一个5000比后一个5000更干净,更容易处理。
训练集标签文件(train-labels-idx1-ubyte):
[offset] | [type] | [value] | [description] |
---|---|---|---|
0000 | 32 bit integer | 0x00000801(2049) | magic number (MSB first) |
0004 | 32 bit integer | 60000 | number of items |
0008 | unsigned byte | ?? | label |
0009 | unsigned byte | ?? | label |
… | |||
xxxx | unsigned byte | ?? | label |
标签值为0到9。
训练集图像文件(train-images-idx3-ubyte):
[offset] | [type] | [value] | [description] |
---|---|---|---|
0000 | 32 bit integer | 0x00000803(2051) | magic number |
0004 | 32 bit integer | 60000 | number of images |
0008 | 32 bit integer | 28 | number of rows |
0012 | 32 bit integer | 28 | number of columns |
0016 | unsigned byte | ?? | pixel |
0017 | unsigned byte | ?? | pixel |
… | |||
xxxx | unsigned byte | ?? | pixel |
像素按行排列。 像素值为0到255。 0表示背景(白色),255表示前景(黑色)。
测试集标签文件(t10k-labels-idx1-ubyte):
[offset] | [type] | [value] | [description] |
---|---|---|---|
0000 | 32 bit integer | 0x00000801(2049) | magic number (MSB first) |
0004 | 32 bit integer | 10000 | number of items |
0008 | unsigned byte | ?? | label |
0009 | unsigned byte | ?? | label |
… | |||
xxxx | unsigned byte | ?? | label |
标签值为0到9。
测试集图像文件(t10k-images-idx3-ubyte):
[offset] | [type] | [value] | [description] |
---|---|---|---|
0000 | 32 bit integer | 0x00000803(2051) | magic number |
0004 | 32 bit integer | 10000 | number of images |
0008 | 32 bit integer | 28 | number of rows |
0012 | 32 bit integer | 28 | number of columns |
0016 | unsigned byte | ?? | pixel |
0017 | unsigned byte | ?? | pixel |
… | |||
xxxx | unsigned byte | ?? | pixel |
像素按行排列。 像素值为0到255。 0表示背景(白色),255表示前景(黑色)。
IDX文件格式
IDX文件格式是包含各种数值类型的向量和多维矩阵的简单格式。
基本的格式为:
magic number
size in dimension 0
size in dimension 1
size in dimension 2
…
size in dimension N
data
幻数是一个整数(MSB优先)。 前2个字节始终为0。
第三个字节编码数据的类型:
0x08: unsigned byte
0x09: signed byte
0x0B: short (2 bytes)
0x0C: int (4 bytes)
0x0D: float (4 bytes)
0x0E: double (8 bytes)
第4个字节编码向量/矩阵的维数:1表示向量,2表示矩阵…
每个维度的大小为4字节整数(MSB优先,高端,与大多数非英特尔处理器一样)。
数据存储在C数组中,即最后一维中的索引变化最快。
快乐的黑客。
MNIST集中的数字图像最初由Chris Burges和Corinna Cortes选择并使用边界框归一化和居中进行实验。 本页提供的Yann LeCun的版本使用了一个更大的窗口内的质心。
Yann LeCun,教授
Courant数学科学研究所
纽约大学
[email protected]
Corinna Cortes,研究科学家
Google实验室,纽约
google dot com