30秒でネットワークが組める!?Neural Network Consoleを用いた機械学習

キスモインターン生の内山です!

僭越ながら、技術ブログ1発目を務めさせていただきます!

 

本ブログでは、弊社が関心を抱いている技術や日頃の業務から得られた知見などを定期的に紹介していきます。

 

本日ご紹介させていただくのは、8月中旬にSony社がオープンソースとしてリリースしたNeural Network Console(以下、NNC)です。

 

このNNC、本当に革命的です…!

コーディング一切なしで、パズルのように簡単にネットワークが組めちゃうんです。

 

弊社では、

  • モデルのコーディングの時間を減らせること
  • よって要件定義やデータ整形に時間が多く割けること
  • モデルの分析・改変が容易になること
  • 結果の可視化が容易にできること

などを加味して、社内でNNCを活用し始めました!

 

では、NNCを使うと機械学習がどれほど楽になるかをMNISTデータを用いた手書き文字認識で説明していきたいと思います。

 

まずはお馴染みのCNN(畳み込みニューラルネットワーク)のモデルを組んでいきましょう。

畳み込み層、プーリング層、誤差関数などを組み込んでできたモデルがこちら! 

f:id:kodamayu:20171006112109p:plain

CNNの基礎知識さえあれば、コーディングを一切せず、30秒でモデルが組めます。

 

そして1クリックで学習、推論が開始でき、今回のモデルでテストデータに対して、精度98.09%が出ました。

さらに学習結果、推論結果もグラフ、表で自動出力してくれます。

 

f:id:kodamayu:20171006112648p:plain

学習結果

 

f:id:kodamayu:20171006112419p:plain

推論結果


これならプログラミングを学習したことのない人でも、理論の理解さえあれば簡単にMNISTの文字認識で98%の精度を出すことができます。

 

ただ、ここまではコードを書ける人ならさほど難しくないと思います。

実際僕自身もpythonを本格的に勉強し始めて半年ほどですが、ここまでなら問題なく組むことができます。

 

NNCではここからさらにモデルを自動改良してくれる機能が付いています。

これがかなり便利なんです。

 

自動で層を増やしたり、層の形を変えたりして、より精度の高いモデルを探索してくれます。

先ほどのモデルを自動改良させると、最も精度の高いモデルはこのようになりました。

 

f:id:kodamayu:20171006112115p:plain

このモデルの自動改良により、精度は98.79%まで向上しました!

 

一般的に、モデルが複雑になるほど計算量が増えていくため、必ずしも精度が高ければ良いというわけではありません。

扱う題材によって、許容できる計算時間や要求される精度は異なりますよね。

NNCでは計算時間と精度の関係を表すグラフも自動生成されるため、どのモデルを採用するかという議論がしやすくなります。

ありがたい機能ですね。

 

今回ご紹介させてもらったのはNNCの機能の一部ですが、非常に便利なツールだということがお分かりいただけたかと思います。

このNNCの登場によって、ますますデータサイエンスの分野が発展していくと嬉しい限りです。

 

今ご覧いただいている皆さんも、ぜひ一度このツールを使ってみてくださいね!

最後まで読んでいただき、ありがとうございました!

 

株式会社キスモ

インターン生 内山敦史