ビッグデータ処理ソフトウエア「Spark」の用途がディープラーニング(深層学習)に広がり始めている。Sparkの特徴である分散処理を深層学習に活用し、「ニューラルネットワーク」を大規模化したり、学習に使用するデータ量を増やしたりする狙いだ。

 2016年6月7、8日に米サンフランシスコで開催されたSparkの開発者会議「Spark Summit 2016 in San Francisco」で、中国の百度(Baidu)や米Yahoo!といった大手ネット企業が、深層学習をSparkで実行するソフトの詳細を説明した。同様のソフトはスタートアップや研究機関も開発を進めている(表1)。

表1●Sparkでディープラーニングを実行するためのソフトウエア
米EMCのZhe Dong氏によるSpark Summit 2016での発表を基に作成
ソフトウエア名称開発元ソフトウエア公開
SparkNet米カリフォルニア大学バークレー校GitHubで公開
CaffeOnSpark米Yahoo!GitHubで公開
Tensorflow On Spark米ArimoGitHubで公開
DeepLearning4J on Spark米Skymind TechnologiesGitHubで公開
Paddle on Spark中国Baidu
DeepDistDirk Neumann氏サイトで公開
Sparkling Water米H2O.aiサイトで公開

 深層学習とは、脳の神経細胞の働きを模したニューラルネットワークを多段に重ね、大量のデータで学習させる機械学習の手法。人間に迫る精度を備えた画像認識や音声認識のAIを実現できるとして注目されている。

 深層学習を実現するソフト「ディープラーニングフレームワーク」としては「Caffe」や「Chainer」「Torch」「Theano」「TensorFlow」などがオープンソースソフトウエア(OSS)などが公開済みだが、TensorFlowを除いて単体のコンピュータで使用するのが一般的だった。今回、フレームワークをSparkに対応させることで、複数台のコンピュータで深層学習を分散処理しようとしている。

規模を拡大するほどAIの精度が向上

写真1●中国の百度(Baidu)の呉恩達(Andrew NG)氏
写真1●中国の百度(Baidu)の呉恩達(Andrew NG)氏
[画像のクリックで拡大表示]

 深層学習を分散処理する狙いは、ニューラルネットワークの大規模化と、学習に使用するデータ量の大規模化の二つである。Baiduがシリコンバレーに設けた「AI研究所」を率いる呉恩達(Andrew NG)氏はSpark Summit 2016の基調講演で「深層学習をロケットに例えるならば、ニューラルネットワークはロケットのエンジン、データはロケットの燃料に相当する」と指摘した(写真1)。

 呉氏はスタンフォード大学の研究者として「Google Brain」の開発に関与し、その後Baiduに転じた深層学習の第一人者。ロケットの例えで訴えたのは、「より巨大なニューラルネットワークに、より大量のデータを学習させれば、AIの精度を上げられる」ということだ。