MNISTって何?数字を識別できる学習モデルの作成方法

MNISTとは

MNISTとは手書き数字画像60000枚とテスト画像10000枚を集めた画像データセットになります。

ニューラルネットワークを学ぶ上で、便利な画像データセットとして有名です。

どんな手書き数字画像かというと、こんな感じの画像になります。

MNISTは簡単な実験から研究まで幅広く使われるデータセットになっています。

今回はそんなMNISTを使って、手書き数字を識別できる学習モデルの作成に挑戦したいと思います。

 

参考にした書籍

これからDeep Learningの勉強をするなら、こちらで紹介する書籍が参考になります。

 

環境

macOS Sierra

Anaconda3-4.2.0-MacOSX-x86_64

keras 1.2.2

tensorflow 0.12.1

 

実際の画像データの中身を確認してみよう

学習モデルを作成する上で、色々なサンプルソースコードがありますが、それをだた動かしただけではいまいち理解できないと思います。

実際にどんなデータがMNISTに入っているのか確認してみましょう。

以下のソースコードを動かしてみるとイメージがつきやすいかと思います。

このPGMは学習用データ1件目とテストデータ1件目を表示するPGMになります。

簡単に補足すると、

X_train = 学習用画像データ、y_train = 学習用ラベル、X_test = テスト画像データ、y_test = テストラベル

となっているので、それぞれの中身を確認すると以下のような実行結果になります。

なんとなく数字の5と7に見えるかと思います。

以下が出力される学習用画像データとテスト用画像データです。

ちっちゃいですね。

 

MNISTは学習用データとテスト用データを持っていて、それぞれ画像データとラベル(正解の数字)を持っている画像の塊データだということがこれで分かるかと思います。

では実際にMNISTを使って学習モデルを作成してみましょう。

 

MNISTを使った学習モデルの作成

学習モデルは2つできます。

jsonファイルとhdf5ファイルです。

 

それでは早速、学習モデルの作成をしてみましょう。

以下のソースコードを実行してみてください。

実行結果は以下の通り。

97%の正答率をもつモデルを作成することができました。

時間短縮のため、epoch=2という少ない数字での学習ですが、中々の精度を出すことができます。

データが分かりやすいからでしょう。

実際は500とか1000とかいう数字で学習するのが一般的ですね。

 

次はこの作成した学習モデルを使って、数字画像の識別に挑戦していきたいと思います。

 


その他の物体検出記事はこちらから

 

それではまた。

あなたにオススメの記事

コメント

  1. この記事へのコメントはありません。

  1. この記事へのトラックバックはありません。

PAGE TOP