===== 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]] \\