無数の人々が「Hello World」と入力してコードの旅を始めたのと同じように、多くの研究者は「MNIST データセット」から人工知能の探索を開始しました。
MNIST データセット (混合国立標準技術研究所データベース) は、さまざまな画像処理システムのトレーニングに使用されるバイナリ画像データセットであり、機械学習のトレーニングとテストに広く使用されています。
エントリーレベルのコンピューター ビジョン データセットとして、20 年以上にわたって無数の機械学習初心者に「噛まれて」おり、最も人気のある深層学習データセットの 1 つです。
今日はその素顔を見てみましょう。
目次
1. データセットの紹介
発行者:米国国立標準技術研究所 (NIST)
発行年: 1998
バックグラウンド:
このデータセットの論文では、パターン認識の問題に関して、CNN ベースの手法が以前の手動の特徴ベースの手法に取って代わることができることを証明したいと考えているため、著者は証明するための例として手書き数字認識を使用して、手書き数字のデータセットを作成しました。この点ではパターン認識における CNN の優位性。
序章:
MNIST データ セットは、NIST の 2 つの手書き数字データ セット (特別データベース 3 と特別データベース 1) からそれぞれ取得され、一部の画像は何らかの画像処理後に取得されます。
MNIST データ セットには、トレーニング セットの 60,000 枚の画像とテスト セットの 10,000 枚の画像を含む、合計 70,000 枚の画像があります。すべての画像は 28×28 のグレースケール画像であり、各画像には手書きの数字が含まれています。
2. データセットの詳細
1. データ量
トレーニング セットには 60,000 枚の画像が含まれており、そのうち 30,000 枚は NIST の特別データベース 3 からのもの、30,000 枚は NIST の特別データベース 1 からのものです。
テスト セットには 10,000 個の画像が含まれており、そのうち 5,000 個は NIST の特別データベース 3 からのもの、5,000 個は NIST の特別データベース 1 からのものです。
2. ラベルボリューム
各画像にはラベルが付けられています。
3. 表示カテゴリー
合計 10 個のカテゴリがあり、各カテゴリは 0 から 9 までの数字を表し、各画像にはカテゴリが 1 つだけあります。
4. 視覚化
図 1: MNIST サンプル画像
NIST のオリジナルのスペシャル データベース 3 データセットとスペシャル データベース 1 データセットは両方ともバイナリ画像です。MNIST がこれら 2 つのデータセットから画像を取り出した後、各画像は画像処理方法を通じて 28×28 のグレースケール画像になり、手書きの数字は画像の中央に配置されます。 。
3. データセットタスクの定義と導入
画像分類
● 画像分類定義
画像分類は、コンピューター ビジョンの分野における意味情報に基づいてさまざまな画像を分類するパターン認識方法です。
●画像分類評価指標
a.正確さ:
n_correct/n_total、すべてのサンプルに対する正しいラベル予測を持つサンプルの割合。
b. 特定のカテゴリの精度:
TP/(TP+FP)、このカテゴリとして予測されたサンプルのうち、正しく予測されたサンプルの数。
c. 特定のカテゴリーの想起:
TP/(TP+FN)、このカテゴリのサンプルで正しく予測されたサンプルの数。
注:上記の評価指標において、TP は True Positive、FP は False Positive、FN は False Negative、n_correct は予測された全サンプル数、n_total は全サンプル数を表します。
4. データセットファイル構造の解釈
1. ディレクトリ構造
●減圧前
dataset_compressed/
├── t10k-images-idx3-ubyte.gz #测试集图像压缩包(1648877 bytes)
├── t10k-labels-idx1-ubyte.gz #测试集标签压缩包(4542 bytes)
├── train-images-idx3-ubyte.gz #训练集图像压缩包(9912422 bytes)
└── train-labels-idx1-ubyte.gz #训练集标签压缩包(28881 bytes)
●解凍後
dataset_uncompressed/
├── t10k-images-idx3-ubyte #测试集图像数据
├── t10k-labels-idx1-ubyte #测试集标签数据
├── train-images-idx3-ubyte #训练集图像数据
└── train-labels-idx1-ubyte #训练集标签数据
2. ファイル構造
データセットは、画像とラベルの両方を idx 形式と呼ばれるバイナリ ファイルの行列として保存します。このデータ セットの 4 つのバイナリ ファイルの保存形式は次のとおりです。
● トレーニング セットのラベル データ (train-labels-idx1-ubyte):
オフセット(バイト) |
値の型 |
価値 |
意味 |
0 |
32ビット整数 |
0x00000801 (2049) |
マジックナンバー |
4 |
32ビット整数 |
60000 |
有効な値の数 (つまり、タグの数) |
8 |
8ビット符号なし整数 |
不定 ( 0~9の間) |
ラベル |
... |
... |
... |
... |
xxxx |
8ビット符号なし整数 |
不定 ( 0~9の間) |
ラベル |
● トレーニング セットの画像データ (train-images-idx3-ubyte):
オフセット(バイト) |
値の型 |
価値 |
意味 |
0 |
32ビット整数 |
0x00000803 (2051) |
マジックナンバー |
4 |
32ビット整数 |
60000 |
有効な値の数 (つまり、画像の数) |
8 |
32ビット整数 |
28 |
画像の高さ (行) |
12 |
32ビット整数 |
28 |
画像の幅 (列) |
16 |
8ビット符号なし整数 |
不定 ( 0 ~ 255の間) |
画像コンテンツ |
... |
... |
... |
... |
xxxx |
8ビット符号なし整数 |
不定 ( 0 ~ 255の間) |
画像コンテンツ |
● テスト セットのラベル データ (t10k-labels-idx1-ubyte):
オフセット(バイト) |
値の型 |
価値 |
意味 |
0 |
32ビット整数 |
0x00000801 (2049) |
マジックナンバー |
4 |
32ビット整数 |
10000 |
有効な値の数 (つまり、タグの数) |
8 |
8ビット符号なし整数 |
不定 ( 0~9の間) |
ラベル |
... |
... |
... |
... |
xxxx |
8ビット符号なし整数 |
不定 ( 0~9の間) |
ラベル |
● テスト セットのイメージ データ (t10k-images-idx3-ubyte):
オフセット(バイト) |
値の型 |
価値 |
意味 |
0 |
32ビット整数 |
0x00000803 (2051) |
マジックナンバー |
4 |
32ビット整数 |
10000 |
有効な値の数 (つまり、画像の数) |
8 |
32ビット整数 |
28 |
画像の高さ (行) |
12 |
32ビット整数 |
28 |
画像の幅 (列) |
16 |
8ビット符号なし整数 |
不定 ( 0 ~ 255の間) |
画像コンテンツ |
... |
... |
... |
... |
xxxx |
8ビット符号なし整数 |
不定 ( 0 ~ 255の間) |
画像コンテンツ |
idx 形式のバイナリ ファイルの基本形式は次のとおりです。
magic number
size in dimension 0
size in dimension 1
size in dimension 2
.....
size in dimension N
data
各 idx ファイルはマジック ナンバーで始まります。マジック ナンバーは、idx ファイルのデータ フィールドに格納されるデータ タイプを記述するために使用される 4 バイト、32 ビットの整数です。
このうち、最初の 2 バイトは常に 0 であり、3 バイト目の異なる値は、idx ファイル内のデータ部分の異なる数値型を表しており、対応関係は次のとおりです。
価値 |
意味 |
0x08 |
8ビット符号なし整数(符号なし文字、1 バイト) |
0x09 |
8ビット符号付き整数(char、1 バイト) |
0x0B |
短整数(短整数、2 バイト) |
0x0C |
整数(int、4 バイト) |
0x0D |
浮点型 (float, 4 bytes) |
0x0E |
双精度浮点型 (double, 8 bytes) |
在MNIST数据集的4个二进制文件中,data部分的数值类型都是“8位无符号整型”,所以magic number的第3个字节总是0x08。
magic number的第4个字节代表其存储的向量或矩阵的维度。比如存储的是一维向量,那么magic number的第4个字节是0x01,如果存储的是二维矩阵,那么magic number的第4个字节就是0x02。
所以在MNIST数据集的4个二进制文件中,标签文件的magic number第4个字节都是0x01,而在图像文件中,因为一张图像的维度是2,而多张图像拼成的矩阵维度是3,所以图像文件magic number第4个字节都是0x03。
该数据集的官网说明了4个二进制文件中的整型数据是以大端方式 (MSB first) 存储的,所以在读取这4个二进制文件的前面几个32位整型数据时,需要注意声明数据存储格式是大端还是小端。
五、数据集下载链接
数据集下载
OpenDataLab平台为大家提供了完整的数据集信息、直观的数据分布统计、流畅的下载速度、便捷的可视化脚本,欢迎体验。点击原文链接查看。
参考资料
[1]Y LeCun,L Bottou,Y Bengio,etal.Gradient-based learning applied to document recognition[J].Proceedings of the IEEE,1998,86(11):2278-2324.