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

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

MNISTとは

こんにちは。

AI coordinatorの清水秀樹です。

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とかいう数字で学習するのが一般的ですね。

 

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

それではまた。

About The Author

Hideki
東京大学発AIスタートアップ企業でロボット開発室室長、画像解析室室長、動画解析室室長を務め、AIエンジニアとしても画像認識関連の特許を在籍中に3つ取得。その後、KDDIグループ内でプロダクトリーダーとして自然言語処理パッケージの自社開発を経て、現在はAGRISTのテックリードとして農業の人手不足の解決に向けた収穫ロボットの開発にチャレンジしている。ロボットは技術の総合格闘技との考え方から、AIだけでなく、ハードやエレキ、通信からクラウド、IOTまで幅広く手掛けることができる。最近では人とロボットの共存を目指すべく、性能だけを追い求める開発から「感動やワクワク体験」をデザインできるロボットの研究を進めており、人とロボットがうまく共存できる世界を作り出したいと日々行動している。

LEAVE A REPLY

*
*
* (公開されません)