MNIST by Keras

深層学習フレームワークKerasを使ってみました。数あるPythonのフレームワークの中でも、使いやすさに定評があるようです。
ここでは、ニューラルネットワークのテストで定番のMNISTを試してみました。

環境: Jupyter Notebook / Anaconda (Python3.6) / Mac
ソースコードは下記のものを使いますが、データの中身を後で確認しやすくするため、変換後に違う変数を追加しました。

https://github.com/keras-team/keras/blob/master/examples/mnist_mlp.py

データは自動的にダウンロードしてくれるみたいです。(便利! それゆえ中身を確認したい)



epochsは、長かったので、20から10に減らしてみました。
モデルの学習ができたので、評価(evaluate)、そしてテストデータの先頭から10個分だけ推論(predict)してみます。

predictとy_test(テストの正解)が一致しているのが確認できます。
実際にモデル学習時(テスト用も同じ)に使っているデータ形式を確認してると、ワンホットベクトル(1-hot vector)になっています。こういった部分が効率のいい学習をするためのノウハウなのでしょう。
さらにテストで使った画像データも確認してみます。

先頭から7,2,1となっており、正しいことを確認できました。
こうやって見ていくと、ソースコードはとてもシンプルです。機械学習を実行するということは、データの操作の仕方を考えることに重きをおくべき作業、ということなのかもしれません。

Neural Network Consoleを使ったときもそのように感じました。

Neural Network Console

About

Categories: 未分類 タグ: