あの「Intel Movidius Myriad VPU」を採用!!
まだ知らないの!? UP square + AI Coreでディープラーニング推論を学べ!
2018年10月01日 11時00分更新
“知能”を持つIoT機器への挑戦
ディープラーニング(深層学習)という言葉が注目され出してから10年ほどが経過した。当初はバズワード扱いする向きもあったものの、深層学習の技術は知らず知らずのうちに浸透し、今や画像検索や製品の良否判定、医療など画像分析に利用されている。さらには、トレードといった金融分野にも応用されるなど、日夜分野を超えた活用が広がっている状態だ。
そして現在、深層学習の応用分野のひとつとして期待されているジャンルがIoTだ。ユーザーに近い末端の機器に知的な機能を持たせることで、従来ありえなかった製品を開発できる可能性がある。さらにドローンやロボット、介護機器といった製品に高度な判断機能を搭載させるといった展開が期待できる。さらにASCII.jp読者にとってうれしいのは、そのプロトタイプレベルであれば、SOHOや個人でも作成できるハードウェアが登場していることだ。
そんな知的なIoT機器を開発するために何が必要なのだろうか。今回は深層学習の概要とIoTに深層学習を組み込むための機材を紹介してみたい。
古くて新しい「深層学習」
現在の深層学習は、1960年代には研究が始まっていたニューラルネットワークから発展した技術だ。ソフトウェアやハードウェアで実装した人工ニューロンを使って人間あるいは生物の脳を模したネットワークを作り、知的な処理を実現しようとするのがニューラルネットワークである。
ニューラルネットワークは60年近く研究されてきたが、有意な結果を得るのが難しいという問題があった。だが2000年代に入り、複雑なニューラルネットワークを構築して有用な結果を得ることを可能にするブレークスルーがあり、2010年ごろから急速に研究が進展。実用にも供されるようになってきた。
開発のための環境が整う
深層学習を実際の製品に利用する場合、その利用目的に適したニューラルネットワークを設計する必要がある。個々の人工ニューロンの性質を決定し、さらに人工ニューロン同士をどのように接続するかといった、長時間のトライ&エラー作業が必要になることが大きなハードルになる。
こうした作業の負荷を軽減するために、現在では深層学習フレームワーク(ディープラーニングフレームワーク)が広く利用されている。深層学習フレームワークを利用すると、ニューラルネットワークをモデルとして簡単に定義することが可能だ。
深層学習フレームワーク
深層学習の広がりとともに、深層学習フレームワークにもさまざまなものが登場している。現在、もっとも広く利用されているのはGoogleが公開している「TensorFlow」だ。活用事例が多いために深層学習の開発が他に比べて容易と評価されている。
その他に深層学習フレームワークの先鞭をつけたカリフォルニア大学バークレイ校の「Caffe」、日本のPreferred Networks開発の「Chainer」、Microsoftが開発している「Microsoft Cognitive Toolkit」といったフレームワークが各方面で活用されている。
主な深層学習フレームワーク | |
---|---|
名称 | 開発者 |
Apache MXNet | ワシントン大学、カーネギーホール大学、Amazon Web Services |
Caffe | Yangqing Jia氏(カリフォルニア大学バークレイ校) |
Caffe2 | Yangqing Jia氏(Facebook) |
Chainer | Preferred Networks |
Keras | François Chollet氏(Google) |
Microsoft Cognitive Toolkit (CNTK) | Microsoft |
PyTorch | |
scikit-learn | David Cournapeau氏 |
TensorFlow |
ニューラルネットワークの設計
また、ニューラルネットワークの設計に関しては、すでに実績を持つニューラルネットワークのモデルを流用したり、自分自身の製品に合わせた若干のチューニングを行なって利用するといったことも盛んだ。
有名どころでは、画像認識コンテストで優勝した「AlexNet」や、画像分類のコンテストで優勝したGoogLeNetといったニューラルネットワークのモデルがある。前出の深層学習フレームワークにこれらモデルを実装することで、比較的短期間で有用な結果を得ることが可能になる。
- 「AlexNet」(Alex Krizhevsky氏などによる論文「ImageNet Classification with Deep Convolutional Neural Networks」)
- 「GoogLeNet」(Google)