===== H2O.aiで手書き数字MNIST分類 =====
このページは、
[[機械学習ソフトH2O.ai]]の続きであり、H2O.ai上で、手書き数字認識MNISTのサンプルを実行してみます。
===== 開発環境 =====
Windows 8.1 Pro 64-bit(Windows 7やMacでも可能だと思われます)\\
Java 1.8.0_151-b12\\
H2O.ai 3.14.0.7
===== 手順 =====
チュートリアルの写経を行います。
前回の終了時は、以下のような画面になっているので、画面右側の、view example Flowsをクリック。
{{:pasted:20171115-002924.png}}
以下のような画面になるので、DeepLearning_MNIST.flow をクリック。
{{:pasted:20171115-003555.png}}
Load Notebookをクリック。
{{:pasted:20171115-003654.png}}
{{:pasted:20171115-004011.png}}
画面左側に出てくるチュートリアル(英語)を実行してみます。
一番上の行の右側の「すべて実行」ボタンをクリックします(これだけです!)。
{{:pasted:20171115-035636.png}}
すると、以下のように学習が始まります。
{{:pasted:20171115-004553.png}}
何分か待ちます。待っている間に私は寝てしまったので、何分かかったかは不明です。
{{:pasted:20171115-004626.png}}
終了後の画面です。
{{:pasted:20171115-032409.png}}
https://s3.amazonaws.com/h2o-public-test-data/bigdata/laptop/mnist/test.csv.gz
というところから、MNISTのtestデータセットをダウンロードしたようです。
{{:pasted:20171115-032613.png}}
ダウンロードしたデータのC785を、Enumに変更したようです。元画像が28x28=784のグレースケール画像なので、最後の785にラベルがあり
それをEnumに変更したのだと予想します。Enumが何を示しているのかはなんとなくしか分かりません。おそらく、整数なのかなと予想します。
{{:pasted:20171115-032807.png}}
こちらも、
https://s3.amazonaws.com/h2o-public-test-data/bigdata/laptop/mnist/train.csv.gz
というところから、MNISTのtrainデータセットをダウンロードしたようです。
{{:pasted:20171115-033031.png}}
詳細不明ですが、testデータと同様、C785を、Enumに変更したようです。Separateの意味はよく分かりませんでした。
{{:pasted:20171115-033150.png}}
とりあえず、train.hex(trainのデータ?)のsummeryを表示したみたいです。60000行、785列となっています。28x28の0から255までのグレースケール画像の値と、そのラベルで785であり、画像とラベルのセットが60000個並んだ行列ということだと思います。
{{:pasted:20171115-033435.png}}
{{:pasted:20171115-033523.png}}
モデルの構築ということで、"Deep Learning"を選択した後、ごちゃごちゃいろいろやっているようです。おそらく、隠れ層は2層で、L1が128ノード、L2が64ノードなのだと思うのですが、間違っていたらすみません。モデルの可視化もしてくれると便利なのですが、そのような機能があるのかどうかはまだ調べて切れておりません。
{{:pasted:20171115-034356.png}}
こちらは結果の出力、保存のようです。
{{:pasted:20171115-034507.png}}
training_logloss, validation_loglossのグラフが表示されています。横軸がEpoch数、縦軸が損失関数の値となっています。
{{:pasted:20171115-034653.png}}
このグラフは、今回は、あまり意味がないような気がしますが、”Top-10 Hit Ratios for training and validation”だそうです。
{{:pasted:20171115-035036.png}}
上がtrainデータのConfusion Matrix、下がvalidationデータのConfusion Matrix。縦(行)に、正解のラベルが記載されており、今回の機械学習モデルで判定した結果が横に並んでいます。上のtrainデータでは、本当は"0"である993個の画像のうち、992個を"0"と判定し、1個を"4"と判定しているので、Errorは0.0010となっています。
とりあえず、MNISTサンプルコードの実行は以上となります。
保存しないと消えてしまうので、とりあえず、画面左上のSaveボタンを押して、保存しておきます。後で、どうやって呼び出すのかはまだ私には分かりません。
{{:pasted:20171115-035814.png}}
実際に、自分でいろいろ操作するときには、下図の、"Assist me"ボタンをクリックして、いろいろやっていくようです。
{{:pasted:20171115-035904.png}}
===== 参考文献 =====
http://antena.tokyo/h2o%E3%82%92%E4%BD%BF%E3%81%A3%E3%81%9F%E6%9C%AA%E6%9D%A5%E4%BA%88%E6%B8%AC%E3%80%80%E3%83%91%E3%83%A9%E3%83%A1%E3%83%BC%E3%82%BF%E3%83%BC%E3%81%AE%E8%AA%BF%E6%95%B4%E3%81%8C%E5%88%86%E3%81%8B\\
H2Oを使った未来予測 その準備と具体的使い方について\\
2016/02/12 2016/03/18\\
->H2o.aiに関する数少ない日本語解説サイト。
http://h2o-release.s3.amazonaws.com/h2o/rel-tukey/2/docs-website/h2o-docs/index.html
{{:pasted:20171115-040708.png}}
https://github.com/h2oai/h2o-3/blob/master/h2o-docs/src/product/tutorials/dl/dl.md
{{:pasted:20171115-040823.png}}
https://github.com/h2oai/h2o-3/blob/master/h2o-docs/src/product/flow/README.md
{{:pasted:20171115-040906.png}}
->こちらは、初めてH2O.aiを使用する人のための解説らしいです。
http://docs.h2o.ai/h2o/latest-stable/h2o-docs/booklets/DeepLearningBooklet.pdf\\
PDFファイルです。英語です。訳わからない数式がたくさん出てきます。私には理解不能です。
===== リンク =====
次:
(未定)
\\
[[sidebar|目次]]\\
前:
[[機械学習ソフトH2O.ai]]
\\