Deep Learning をWEB上で体感できるConvNetJS
Deep Leaning — ConvNetJS
ビッグデータの分析
今注目が集まっているビッグデータに関するキーポイントは、今後どのようにその巨大なデータが使われていくのかだと思います。テキストであればシステムで分析し可視化することもできますが、画像・動画・音声データの場合はシステムで解析するのも困難です。
そこで、ビッグデータの分析に優れた技術として今注目されている「ディープラーニング (Deep Learning)」とは、どのような技術で、ビッグデータに対してどんなことができるものなのでしょうか。
上図の通り、Googleトレンドでも本当にここ最近注目されていることがわかります。
Deep Learning とは
機械学習と呼ばれる分野で10年程前に注目されたベイズ理論は、現実の世界で集められたパターンに基づいて確率を推測する (未来を推測するには過去を振り返らなければならない)というものでしたが、Deep Learningは、特徴の抽出、識別も自動的にしてしまう技術です。これは何年も前から研究されている技術ですが、ここ数年 (2012年頃からでしょうか)、研究発表で話題になったり、Googleが音声や画像の検索で使ったりと一般での認知度が急上昇してきています。
ConvNetJS
ConvNetJSは、Deep Learning (主にニューラルネットワーク)をWEBブラウザ上で体感できるJavascript ライブラリです。以下にいくつかデモの内容を記載します。
MNIST demo
畳み込みニューラルネットワークでMNISTの手書き数字画像データを分類するデモです。
手書き数字画像の右側に3種類の数字が出力されていて、グリーンの数字に分類されたことを表しています。人の目でも認識が難しいもの(例えば6行2列目の「7」)をきちんと分類し、99%程度の精度が期待できるようです。このデータセットの場合は画像が白黒のため特に認識のしやすさがあるかもしれません。
CIFAR-10 demo
CIFAR-10のデータセットに対して畳み込みニューラルネットワークの訓練を行います。このデータセットを対象にした技術は約90%の精度で、また、人間のパフォーマンスは94%くらいのようです。
たしかに、人の目で認識できこのデモでは分類できていないものがいくつかあり、先程の数字の分類に比べると少し精度が低いように感じますが、逆に人が見てなんだろう?と思うものが認識されていたりします。巨大なデータセットであれば、特徴の抽出も多くなりより精度が高くなるのかもしれません。
toy 2d classification with 2-layer neural network
赤と緑のデータポイントから空間の分類をするデモです。
ブラウザ上でポイントを増やす(赤:click、緑:Shift+click)と背景の色分けが変わっていきます。
どう使うか、、、
画像や動画の自動分類ができればネットやアプリの使い方がまた大きく変わっていくような気がします。企業のマーケティング活動にも大きな影響を与えそうです。