後藤弘茂のWeekly海外ニュース

ディープラーニングというGPUの新市場

純粋な科学技術分野から広がるGPUコンピューティング

 GPUは新しい鉱脈を掘り起こしつつある。NVIDIAが主催するGPUカンファレンス「GTC(GPU Technology Conference)」では、GPUが応用される今後の新分野として「マシンラーニング(機械学習:Machine Learning)」、「ビッグデータ解析(Big Data Analytics)」、「コンピュータビジョン(Computer Vision)」に焦点が当てられた。この3分野に共通するのは、“認識処理”が重要な位置を占めること、従来のGPUコンピューティングの応用と比べてよりエンドユーザーに身近な応用であること、従来はGPUが浸透していなかった大きな市場への浸透が期待されることだ。

 コンピュータビジョンは車載コンピュータやロボティックスなどにも密接に絡んでおり、車載では自動運転システムや運転アシスタントシステムに関係する。マシンラーニングは、画像認識や音声認識の精度向上を実現しつつある。認識処理の性能向上は、対話型のナチュラルユーザーインターフェイスの浸透に繋がる。また、IoT(The Internet of Things)で増えるビッグデータは、膨大なデータで学習・解析するマシンラーニングと相性が良い。ビッグデータを利用した将来のさまざまなエンドユーザー向けサービスにも関連する。

 NVIDIAのJen-Hsun Huang(ジェンセン・フアン)氏(Co-founder, President and CEO)は、GTCのオープニングキーノートスピーチの中で、GTCの論文の中で最も数が増えつつある分野が、今年(2014年)はマシンラーニング、ビッグデータ解析、コンピュータビジョンの3分野になったと説明。ライフサイエンスやゲノム科学、分子動力学、エネルギー探査といった科学系分野が増加する論文だった一昨年(2012年)から、すっかり様変わりしたことを強調した。

 一般のエンドユーザーの視点からは、GPUコンピューティングは、いつまでも浸透しない技術に見えるかも知れない。画像処理や動画処理で部分的に使われる程度で、GPUはやはりグラフィックスというのが一般のPCユーザーの感覚だろう。この点は、GPUが重要な要素になったHPC(High Performance Computing)コミュニティなどの世界とは大きな隔たりがあった。

 しかし、エンドユーザーPCを離れた新しい分野では、GPUは重要な位置を占める可能性が出ている。クルマやロボットの多くにGPUが搭載されるようになり、データセンタでもGPUサーバーが当たり前となる時代が来るかもしれない。結局のところ、GPUコンピューティングも、浸透するには既存のアプリケーションでの利用ではなく、新しいアプリケーションやデバイスが必要ということを示しているのかも知れない。

周到に新市場へと手を伸ばすNVIDIA

 GPUメーカーであるNVIDIAという枠で見ると、NVIDIAはまた新たに生き残る道を見つけつつあるように見える。例えば、NVIDIAのモバイルSoC(System on a Chip)のTegra系を見ると、タブレット市場で一時は大きなシェアを誇ったものの、現在はどう見ても劣勢にある。しかし、NVIDIAは自動車市場ではTegraをうまく浸透させつつあり、次の波を掴みつつある。


 GPUGPUNVIDIAGPUGPUGPU使

 NVIDIAGPUNVIDIAGPU()

 コンピュータ科学の視点で見ると、今回のGTCでテーマになったマシンラーニングは、ニューラルネットワーク(NN)の復権という側面で興味深い。GTCで取り上げられたマシンラーニングは、最近の用語では『ディープラーニング(Deep Learning)』と呼ばれる分野で、ニューラルネットワークのアルゴリズムを使う。

脳の神経ネットワークを模したニューラルネットワーク

 ニューラルネットワーク(NN)は、一言で表すと生物の脳の神経系の働きをシミュレートしたアルゴリズムによって、情報処理を行なおうというアイデアだ。もっと端的に言えば、人間の脳と同じ仕組みで動作するコンピュータ/ソフトウェアを作ろうとしている。物理的に神経系を模したニューロコンピュータを作ろうという動きもあるが、現在の主流は既存のコンピュータ上で走るシミュレータによるニューラルネットワーク(ニューラルネットワーク自体はハードを問わない)だ。

 脳の働きを模したNNの特徴は、(1)プログラムが不要で自己学習する、(2)並列分散処理を行なう、(3)(ネットワークの結合強度などを)自己組織化する、(4)(ニューロンの挙動が)非線形である、(5)イベントドリブンの非同期動作、といった点にある。

 ニューロン(神経細胞)は一定量の刺激を受けると興奮して電気パルスを発する。このパルスが長い軸索で伝搬され、次のニューロンへと伝えられる。受け手側のニューロンには樹状突起が多数あり、送り手側の軸索とシナプスで結合している。1個のニューロンには複数のニューロンから多数の軸索が接続している。シナプスには、受け手のニューロンを興奮させるタイプと抑制するタイプがある。

 受け手側のニューロンは、シナプス群を経由して送り手側のニューロンから送られる刺激の集積が一定量に達すると突然活動電位が跳ね上がる。これが電気パルスとなり、受け手のニューロンの軸索を通じて次のニューロンへと伝えられる。ニューロンは刺激が伝えられて興奮すると、その刺激を伝えたシナプスの結合が強くなる可塑性を持つと言われている。これがニューロンの学習メカニズムだと考えられている。

 つまり、生物の神経系は、プロセッシングユニットとメモリを一体化してネットワークにしたシステムだと見られている。シナプスの結合の強さなどはアナログ値(デジタルという説もある)であり、メモリは番地で管理するのではなくニューロン結合の連想方式で呼び出される。ぱっと考えただけでも、現在の逐次処理のフォンノイマンマシン(ジョン・フォン・ノイマン氏が論文を発表したプログラム内蔵方式コンピュータの通称。この呼び方には異論もある)とは対極にある神経システムだが、人間の脳はこの仕組みで、現在最高性能のスーパーコンピュータでも不可能な膨大な認識処理を10~20W程度の消費電力相当のエネルギーで実現している。人間の場合、NNによる認識処理などの上に、フォンノイマン的な逐次の論理思考が乗っていると考えることができる。そして、今、逐次思考側はCPUで、認識処理側はGPUでという動きがあり、そこがNVIDIAの主張したいポイントとなっている。

浮上と沈下のニューラルネットワークのサイクル


 NN19401960NN(perceptron)1970NN

 NN80(Boltzmann Machine)(:Backpropagation)NN1990NN

 3NN使(Deep Learning)NN

 NN20062GoogleBuilding High-level Features Using Large Scale Unsupervised Learning

 GoogleInternational Conference on Machine Learning(ICML) 2012Google

 GTCでのHuang氏のキーノートスピーチでは、この“Googleのネコ”がマシンラーニングの実例として取り上げられた。Google/スタンフォード大学のこの研究では、1,000のサーバーを使い、16,000のCPUコアを3日間動作させた。YouTubeやWebから集めた1,000万の画像(200×200ドット)を解析させることで学習させた。教師なし学習(unsupervised)で、モデル中のパラメータの数は11億に達したという。それだけの学習の結果、猫や人を高精度で認識できるようになったという。ちなみに、教師なし学習は、NNの学習に教師信号を使わないという意味だ。

生物の脳に近づけるためにGPUをマシンラーニングに


 HuangNNGoogle Brain1,0001,000()Google Brain4Huang6kW

 DBNGeoffrey HintonDeep Belief Nets(DBN)2006綿綿

 NNGPUGPUNNHuang

 NNGPU1ICML 2013/NVIDIADeep Learning with COTS HPC SystemsStanford AI Lab162CPU4GeForce GTX 680(GK104)3(12GPU)102316使110

 コストに換算すると、Google Brainが500万ドルに達するのに、GPUシステムは33,000ドルで、電力は4kWで済むとNVIDIAは説明する。ちなみに、図中のGPUのコア数は浮動小数点演算ユニット数なので、CPUのコア数と比較するのは意味が無い(論文では典型的なNNワークロードで1GPU当たり1TFLOPSとされている)。いずれにせよ、GPUベースのシステムの方がはるかに低コストかつ低電力に実現できることは確かだ。

日本からはデンソーの研究所がNNを発表

 ディープラーニングで膨大な計算量が必要になるのは、NNの精度を上げようとすると、NNの層がディープになり、膨大な計算量が必要になるからだ。原初のNNのパーセプトロンでは3層、つまり、ニューロンが3段階の層に連結したモデルだった。しかし、現在のディープニューラルネットワークでは、ずっと深い層を備えている。下はキーノートスピーチで示された概念図で、畳み込みNN(Convolutional NN)の例ではないかと見られる。左がインプットニューロンで、右端がアウトプットニューロン、その間に深い中間層のニューロンがある。実際にはニューロン層間の接続は線で示されたものよりもっと多数で複雑だ。


 GPUGPUGTCNN使12NNNVIDIAPS VitaNVIDIA

 もう1つは、GTC参加者に自分の飼い犬の写真をポストさせて、それをニューヨーク大学のNNシステムで認識させるというもの。こちらは膨大なトレーニングを行なった犬認識システムを使い、非常に高い認識率を示した。

 Huang氏はマシンラーニングでのCUDAが浸透しつつあることを下のスライドで紹介した。このスライドで日本にとってのポイントは、自動車電装機器メーカーのデンソーが加わっていることだ。デンソーはGTCで、歩行者認識などをディープニューラルネットワークで行なう研究結果を発表している。

 GTCでプレゼンテーションを行なった佐藤育郎氏(博士(理学)、シニアエンジニア、研究開発グループ、デンソーアイティーラボラトリ)は、「今は、ニューラルネットワークの春。今後は、長い夏になるといいと考えている。前回(80年代)は研究の段階で終わってしまった。しかし、今回のように応用がきちんとできてくれば定着すると思う。計算量の問題を解決できるという点で、GPUの役割は大きい」と語っていた。

(後藤 弘茂 (Hiroshige Goto)E-mail