後藤弘茂のWeekly海外ニュース
ディープラーニングというGPUの新市場
(2014/4/17 06:00)
純粋な科学技術分野から広がる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をうまく浸透させつつあり、次の波を掴みつつある。
サーバー向けGPUについては、従来は科学技術演算や探査業務など一部の市場に限られていた。しかし、マシンラーニングとビッグデータ解析では、より一般的なサーバールームにGPUを浸透させるチャンスを産む。マシンラーニングの応用が進み、ビッグデータ解析が興隆すれば、NVIDIAはサーバーGPUの市場に大きな足がかりをつかむことになる。また、GPUベースのマシンラーニングでは、学習した結果でのソフトウェアシステムを、同じGPUを使うユーザーシステムに移すことも容易となる。
こうした展開が分かっているからこそ、NVIDIAもこれらの分野を重視する。面白いのは、マシンラーニングやコンピュータビジョン、ビッグデータ解析への動きが、GPUメーカー側からの強引なマーケティングではなく、研究現場からのニーズとして持ち上がって来ていることだ。現在のNVIDIAの強味は、GPUコンピューティングでアカデミア(学究)のコミュニティをある程度味方につけていることで、それが、じわじわと効果を出しつつある。
コンピュータ科学の視点で見ると、今回のGTCでテーマになったマシンラーニングは、ニューラルネットワーク(NN)の復権という側面で興味深い。GTCで取り上げられたマシンラーニングは、最近の用語では『ディープラーニング(Deep Learning)』と呼ばれる分野で、ニューラルネットワークのアルゴリズムを使う。
脳の神経ネットワークを模したニューラルネットワーク
ニューラルネットワーク(NN)は、一言で表すと生物の脳の神経系の働きをシミュレートしたアルゴリズムによって、情報処理を行なおうというアイデアだ。もっと端的に言えば、人間の脳と同じ仕組みで動作するコンピュータ/ソフトウェアを作ろうとしている。物理的に神経系を模したニューロコンピュータを作ろうという動きもあるが、現在の主流は既存のコンピュータ上で走るシミュレータによるニューラルネットワーク(ニューラルネットワーク自体はハードを問わない)だ。
脳の働きを模したNNの特徴は、(1)プログラムが不要で自己学習する、(2)並列分散処理を行なう、(3)(ネットワークの結合強度などを)自己組織化する、(4)(ニューロンの挙動が)非線形である、(5)イベントドリブンの非同期動作、といった点にある。
ニューロン(神経細胞)は一定量の刺激を受けると興奮して電気パルスを発する。このパルスが長い軸索で伝搬され、次のニューロンへと伝えられる。受け手側のニューロンには樹状突起が多数あり、送り手側の軸索とシナプスで結合している。1個のニューロンには複数のニューロンから多数の軸索が接続している。シナプスには、受け手のニューロンを興奮させるタイプと抑制するタイプがある。
受け手側のニューロンは、シナプス群を経由して送り手側のニューロンから送られる刺激の集積が一定量に達すると突然活動電位が跳ね上がる。これが電気パルスとなり、受け手のニューロンの軸索を通じて次のニューロンへと伝えられる。ニューロンは刺激が伝えられて興奮すると、その刺激を伝えたシナプスの結合が強くなる可塑性を持つと言われている。これがニューロンの学習メカニズムだと考えられている。
つまり、生物の神経系は、プロセッシングユニットとメモリを一体化してネットワークにしたシステムだと見られている。シナプスの結合の強さなどはアナログ値(デジタルという説もある)であり、メモリは番地で管理するのではなくニューロン結合の連想方式で呼び出される。ぱっと考えただけでも、現在の逐次処理のフォンノイマンマシン(ジョン・フォン・ノイマン氏が論文を発表したプログラム内蔵方式コンピュータの通称。この呼び方には異論もある)とは対極にある神経システムだが、人間の脳はこの仕組みで、現在最高性能のスーパーコンピュータでも不可能な膨大な認識処理を10~20W程度の消費電力相当のエネルギーで実現している。人間の場合、NNによる認識処理などの上に、フォンノイマン的な逐次の論理思考が乗っていると考えることができる。そして、今、逐次思考側はCPUで、認識処理側はGPUでという動きがあり、そこがNVIDIAの主張したいポイントとなっている。
浮上と沈下のニューラルネットワークのサイクル
NNの歴史は浮上と沈下のサイクルだ。1940年代にニューロンの動作の論理モデルが作られ、1960年代に原初的なNNモデル『パーセプトロン(perceptron)』がブームとなった。パーセプトロンは小脳の動作モデルとしても実証された。しかし、パーセプトロンは著名な人工知能学者のマービン・ミンスキー氏らに限界を指摘されて研究が下火となり、1970年代はNNの冬の時代となる。
NNが息を吹き返すのは80年代になって『ボルツマンマシン(Boltzmann Machine)』や『バックプロパゲーション(誤差逆伝搬法:Backpropagation)』などの新しい手法が登場してからだ。NNのニューロン階層を深くしたりより上位へフィードバックさせることで精度を上げるアイデアが一定の効果を上げた。それでも一時の春の時代に過ぎず、1990年代が進むにつれて再びNN研究は下火となって行った。研究者の数も、ブームと鎮静の波に合わせて変動した。
現在は3度目のブームで、しかも、その盛り上がりは、かつてない規模になりつつあると言われている。深い階層型NNを使うマシンラーニングである『ディープラーニング(Deep Learning)』の研究結果が次々と発表され、話題となっている。NNの唐突な盛り上がりは、コンピュータ科学の世界の大きな話題となっている。
実際にはNNの復活は2006年頃から始まっていたが、現在のような大騒ぎとなったのはここ2年のことだ。火付け役となったのは、Googleとスタンフォード大学による画像認識の研究「Building High-level Features Using Large Scale Unsupervised Learning」だ。
人間は簡単に猫や犬や人を見分けることができる。しかし、これまでのコンピュータにとっては、猫などの動物の特徴を見分けることが難しかった。Googleとスタンフォード大学の研究は、これを可能にするものだ。マシンラーニングの学会「International Conference on Machine Learning(ICML) 2012」で発表されたにも関わらず、一般誌に至るまで広く報道され「Googleの猫認識」として話題となった。
GTCでのHuang氏のキーノートスピーチでは、この“Googleのネコ”がマシンラーニングの実例として取り上げられた。Google/スタンフォード大学のこの研究では、1,000のサーバーを使い、16,000のCPUコアを3日間動作させた。YouTubeやWebから集めた1,000万の画像(200×200ドット)を解析させることで学習させた。教師なし学習(unsupervised)で、モデル中のパラメータの数は11億に達したという。それだけの学習の結果、猫や人を高精度で認識できるようになったという。ちなみに、教師なし学習は、NNの学習に教師信号を使わないという意味だ。
生物の脳に近づけるためにGPUをマシンラーニングに
しかし、Huang氏は、話題となったこの強力なNN「Google Brain」でも、人間の脳には遠く及ばないと指摘する。人間の脳には1,000億のニューロンがあり、それぞれのニューロンが平均で1,000のコネクション(シナプス)を備えているからだ。Google Brainで同等の処理をしようとすると4万年かかる計算になるとHuang氏は指摘する。しかも、電力は6kWも消費する。
上のモデルサイズのスライドは生物の脳と現在のコンピュータの比較で、生物の脳に近づいたとはいえ、まだ人間の脳には遠いことがよく分かる。図中でDBNとなっているのは、ディープラーニングの先駆けとなったGeoffrey Hinton氏の「Deep Belief Nets(DBN)」で2006年の研究の時のモデルだ。ちなみに、左端にスポンジボブが描かれているのは、海綿動物はニューロンを持たないからだ。全ての動物の中で、海綿動物と平板動物だけがニューロンを持たない。だから図の左端のゼロのところにスポンジボブが置かれている。
この膨大なギャップをどうやって埋める、あるいは少しでも改善できるのか。もちろん、脳と物理的に同じ構造のコンピュータを開発すれば根本解決になるはずだが、その道はまだ遠い。しかし、NNの特徴である並列分散処理の部分は、並列化に特化したGPUとよく馴染む。GPUなら、同じ規模のNNを、より少ない消費電力で、低いコストで実現できるとHuang氏は主張する。究極の解にはならないが、よりよい解になるというスタンスだ。
実際に、NNアルゴリズムをGPUに載せようという動きが活発化している。キーノートスピーチの下のスライドは、グーグルのネコの1年後のICML 2013にスタンフォード大学/NVIDIAで出した「Deep Learning with COTS HPC Systems」のものだ。Stanford AI Labのクラスタは16サーバーで、各サーバーが2個のクアッドコアCPUと4個のGeForce GTX 680(GK104)を搭載している。このうちの3サーバー(12GPU)だけで、10億パラメータのトレーニングを2~3日で行なうことができるという。16サーバー全てを使うと110億パラメータまでスケールアップできるという。
コストに換算すると、Google Brainが500万ドルに達するのに、GPUシステムは33,000ドルで、電力は4kWで済むとNVIDIAは説明する。ちなみに、図中のGPUのコア数は浮動小数点演算ユニット数なので、CPUのコア数と比較するのは意味が無い(論文では典型的なNNワークロードで1GPU当たり1TFLOPSとされている)。いずれにせよ、GPUベースのシステムの方がはるかに低コストかつ低電力に実現できることは確かだ。
日本からはデンソーの研究所がNNを発表
ディープラーニングで膨大な計算量が必要になるのは、NNの精度を上げようとすると、NNの層がディープになり、膨大な計算量が必要になるからだ。原初のNNのパーセプトロンでは3層、つまり、ニューロンが3段階の層に連結したモデルだった。しかし、現在のディープニューラルネットワークでは、ずっと深い層を備えている。下はキーノートスピーチで示された概念図で、畳み込みNN(Convolutional NN)の例ではないかと見られる。左がインプットニューロンで、右端がアウトプットニューロン、その間に深い中間層のニューロンがある。実際にはニューロン層間の接続は線で示されたものよりもっと多数で複雑だ。
計算量が課題で、処理がシンプルで、並列化・分散化が容易なら、GPUには馴染みやすい。GPUがディープラーニングへと向かうのは自然な流れと言える。GTCのキーノートスピーチでは、NNを使ったデモも行なわれた。1つは、非常に単純な概念を説明するだけの2層のニューロンのNNで、赤のフェラーリと緑のNVIDIAを識別させるもの。このデモではPS VitaをNVIDIAと解答したのが笑いのポイントだった。
もう1つは、GTC参加者に自分の飼い犬の写真をポストさせて、それをニューヨーク大学のNNシステムで認識させるというもの。こちらは膨大なトレーニングを行なった犬認識システムを使い、非常に高い認識率を示した。
Huang氏はマシンラーニングでのCUDAが浸透しつつあることを下のスライドで紹介した。このスライドで日本にとってのポイントは、自動車電装機器メーカーのデンソーが加わっていることだ。デンソーはGTCで、歩行者認識などをディープニューラルネットワークで行なう研究結果を発表している。
GTCでプレゼンテーションを行なった佐藤育郎氏(博士(理学)、シニアエンジニア、研究開発グループ、デンソーアイティーラボラトリ)は、「今は、ニューラルネットワークの春。今後は、長い夏になるといいと考えている。前回(80年代)は研究の段階で終わってしまった。しかし、今回のように応用がきちんとできてくれば定着すると思う。計算量の問題を解決できるという点で、GPUの役割は大きい」と語っていた。