ニューラルネットワークによる数字認識 – MNISTデータセットの学習 –

機械学習のデータセットとして有名なものに MNIST というものがあります。
これは手書きの数字画像とその正解データを集めたもので、機械学習の画像認識能力のテストとしてよく利用されます。

今回はこのMNISTを用い、多層パーセプトロンで画像認識を行いました。

 

 

 

MNIST

MNISTは0~9の手書き数字を表す画像のデータベースです。

MNISTは次のようあ画像が含まれています。

tensorboarのimage

MNISTの画像数は70000枚であります。そのうち60000枚は学習用のセットであり、10000枚はテスト用のセットです。

縦28×横28=784要素の配列として登録されています。

 

TensorFlowからMNISTデータセットにアクセスするには次のような方法があります。

 

使用モデル

使用した多層パーセプトロンのモデルを示します。

  • 階層は4とし、各階層のユニット数は入力から、784, 64, 32, 16, 10
  • 活性化関数はRelu6関数を使用
  • 出力層にはソフトマックスを使用
  • 誤差関数には交差エントロピー誤差関数を使用

 

コード

使用したコードを下記に示します。コードはPython3.6、TensorFlow1.8を用いました。

 

 

結果

実行結果を示します。実行結果として、多層パーセプトロンの誤差関数の値(loss)と多層パーセプトロンの分類結果の正答率(accuracy)を載せています。実行結果はTensorBoardによってデータを取得しました。

実行の結果、多層パーセプトロンはMNISTデータセットを学習し、最終的に正答率としては95%になりました。ハイパラメータの調整を行わず学習した割には良い結果が出たと思います。

手書き認識の結果

 

まとめ

  • TensorFlowから利用できる画像データセットとしてMNISTがある。
  • MNISTは手書き数字の画像データセットである。
  • MNISTを用い多層パーセプトロンで学習を行い、95%の精度で認識した。

 

 

関連記事

ニューラルネットワーク・ディープラーニングのまとめ

 

 

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

CAPTCHA