04.04 CNN画像分類(初級)-1(MNIST)

では、実際にNNCを用いてやってみましょう。


① プロジェクトを開く
今度は二番目にある「02_binary_cnn.sdcproj」をクリックしてみてください。

NNC_Fig00-06.jpg


EDIT画面に以前にはなく複数の階層をしたプロジェクトが表示されました。
要するに唯一違うのが、このEDIT画面の構造なのです。

NNC_Fig00-27.jpg


② データセットの確認
実はこの画像は前回のを使いまわしているので全く同じです。前回の章でMNISTは初回のみダウンロードだというお話をした通り一度ダウンロードすると二度目は行わいためDATASET画面は同じとなり使いまわしています。(但し「Overview」は新しいものになっておりますが、HP容量削減のための措置ですのでご勘弁ください)

NNC_Fig00-10.jpg


③ ネットワーク構造の確認

NNC_Fig00-28.jpg
入力層
-+
  |(一番目)
  |畳み込みと
  |プーリング層
-+
  |(二番目)
  |畳み込みと
  |プーリング層
-+
-+
  |全結合層
-+
-+
  |出力層
  |
-+



④ 学習の条件
前回同様にOverviewは画像を使いまわしているので異なりますが、設定データ等の変更はありません。


NNC_Fig00-21.jpg


⑤ 学習の実行
では実際に学習させてみましょう。
Training」タブの下にある””をクリックし実行してください。

NNC_Fig00-27.jpg

終了時の結果は、こうなります。

NNC_Fig00-29.jpg



⑥ 評価の実行
今度は「Evaluation」の下にある”▷”をクリックしてみましょう。

NNC_Fig00-27.jpg


結果画像が同じように見えますが、ここからは実際の画像となっています。
内容が同じようなので見比べてみていきましょう。

No.499と500をみると、前回499が44.39%で”9”と認識しているのに対し、今回はなんと99.38%となっています。

【CNN画像分類】
NNC_Fig00-30.jpg

【前回の画像分類】
NNC_Fig00-22.jpg


次に「Confusion Matrix」全ての項目で正解率が98%以上になっています。


【CNN画像分類】
NNC_Fig00-31.jpg

【前回の画像分類】
NNC_Fig00-23.jpg


実はこれでNNCの初級編は終わりなのですけど、自分ですべてPythonで作ってみるとわかりますが、こんなにもデータ量が少なくて、高速且つ正確に判別できるというのは驚異的です。何度も言いますが、自作の場合PCが一台燃えるほど長いことやっても結果が出ませんでしたからねぇ!!

次から中級編です。

リックテレコム 足立悠著 「ソニー開発のNeural Network Console入門」では、次の中級では1から自分で作成してみるということを行います。



【参考文献】
リックテレコム 足立悠著
ソニー開発のNeural Network Console入門

オライリー・ジャパン 斎藤 康毅著
ゼロから作るDeep Learning ――Pythonで学ぶディープラーニングの理論と実装