イベント
[GTC 2014]賢い人工知能はGPUで作る。NVIDIAが取り組むGPGPUの新たな活用分野「機械学習」とは何か?
直接ゲームに関係する話ではないうえ,少々難しい話題でもあるのだが,進化し続けるGPUが現在,そして将来にどういった用途に使われるかのヒントにもなると思うので,ぜひチェックしてもらえれば幸いだ。
[GTC 2014]Maxwellの次に来る次世代GPU「Pascal」。「NVLink」と3次元メモリがその“次世代性能”を切り開く
ビジュアルコンピューティングを支える「機械学習」とはなにか?
先のレポートでも述べたとおり,NVIDIAはGTC 2014の大きなテーマとして「ビジュアルコンピューティング」を掲げている。
ここでいうビジュアルコンピューティングとは,映像や図形をコンピュータに入力して,それをなんらかのアルゴリズムで処理し,人間にとって有意な結果を映像や図形で示すものといったところだろうか。「数値に対して演算を施し,演算結果をまた数値で返す」といったオーソドックスな数値演算とは異なり,人間にとって理解しやすいビジュアルが軸となっているのがポイントだ。
そして,そんなビジュアルコンピューティングのホットトピックとしてHuang氏が取り上げたのが機械学習である。当該分野における最先端の研究を紹介しつつ,こうした先端研究の現場でいかにGPUが活用されているかをアピールするという形で,このパートは進行した。
機械学習とは,膨大なデータの集合を解析して,そこに何らかの意味や法則性,判断の基準となる要素などを見つけ出し,それをもとにアルゴリズムを強化していくという概念だ。コンピュータ(=機械)がデータの中から何かを「学習」していくので,機械学習と呼ばれている。
機械学習を応用できる分野は非常に幅広い。ゲーマーに身近な例でいえば,「Kinect」を使った顔認識や動き認識なども,機械学習の応用によって実現されている。最近流行のキーワードである「ビッグデータ」も,データから有意な情報を引き出す機械学習があってこそ,初めて成り立つ話だ。
さて,その機械学習で,とくにGPGPUの応用が進んでいる分野に,「Deep Learning」や「Deep Neural Networks」(DNN)と呼ばれるものがある。DNNでは,特徴抽出器で抽出した「特徴要素」を,階層化された「知識モデル」として構築する。階層の上に行くほど知識モデルは抽象化されており,上層の知識モデルは下層の知識モデルを組み合わせて形成する,ニューラルネットワーク構造になっているというものだ。
Huang氏は,Googleが2012年に発表した論文「Building high-level features using large scale unsupervised learning」をもとに,顔認識を例にしてDNNの動作を解説した。
下のスライドは,左から右に向かって,顔認識の処理が進んでいることを示すものだ。まず人間の顔写真が入力されると,写真からさまざまな「輪郭線」が抽出される(左から2番め)。そして輪郭線パーツの集合体から顔の各部位を形成(左から3番め)。こうして作られた各部位をもとに,部位の位置や大きさの集合体として,人の顔を認識する(右端)。
スタンフォード大学とGoogleの共同研究では,CPUコアを16基搭載するマシン1000台によって,10億個のシナプス(コネクション)※を備えたニューラルネットワークを構築。このシステムに3日間YouTubeを見せ続けたうえで,部位データとなる200×200ピクセルの画像を1000万件も入力したところ,人間の顔と猫の顔が区別できるようになったそうだ。
※ Synapse Connection。ここでは知識モデル同士の結合といった意味
このシステムは,いわば「生後3日めの人工知能」といったところだが,これが人と猫の顔をどうやって区別しているのかを調べるために,「人とは何か」「猫とは何か」と問うてみたところ,下記のスライドにある画像が示されたのだそうだ。
この研究で用いられたシステムは,「Google Brain」と呼ばれるスーパーコンピュータだ。サーバー1台につき,8コアのCPUが2個搭載されており,これを1000台使っているので,システム全体では1万6000コアが稼動していたことになる。ちなみに,価格はおよそ500万ドル(約5億950万円)で,ピーク時の消費電力は600kWだったという。
「Google Brainと人間の脳を比較すると,Google Brainは10億コネクション規模で1000万の画像を処理したが,人間の脳は1000億ニューロン×1000コネクションで5億の画像を処理できる。つまり単純計算では,脳のほうが500万倍も処理能力が高いことになる。Google Brainが30EFLOPS(エクサフロップス)なので,人間の脳はさしずめ150YFLOPS(ヨタフロップス)だ。Yottaという英語の意味は分からないけどね(笑)」と,Huang氏。
ちなみに,テラ(Tera)が10の12乗で,ペタ(10の15乗),エクサ(10の18乗),ゼタ(10の21乗)と続き,ヨタ(Yotta)はその上となる10の24乗だ。脳がいかにとんでもない演算能力を持っているかが分かるだろう。
Google Brainは1万6000コアものCPUで実現されたシステムで,500万ドルもの費用がかかっている。到底簡単に構築できるものではない。そこで登場するのがGPUだ。Huang氏は「Google Brainと同等の人工知能を,GPUで実装したらどうなるだろうか」と問いかける。
ここで氏は,2013年にGoogle Brainで実行したのと同じ機械学習の実験を,NVIDIAとスタンフォード大学の研究チームが共同で行った事例を紹介した。
使われたのは,3台のGPUサーバーを用いたマシン。サーバー1台にはデュアルGPU仕様のカードが2枚差さっているので,トータルでは12基のGPUからなるシステムというわけだ。
Huang氏はこのシステムが,「トータル性能でGoogle Brainを上回っただけでなく,価格や消費電力は100分の1以下になった」と報告し,GPUのパワーが機械学習の研究でイノベーションを起こすことを訴えた。
GPGPUで広がる機械学習の可能性
続けてHuang氏は,GPUによる機械学習のデモを披露した。Huang氏が大好きなフェラーリのスーパーカーとNVIDIA製品の写真を,コンピュータは区別できるのか,というシンプルな実験だ。
機械学習では,大量のデータを与えて学習させるることが必要だ。実験でも,与えた画像データが少ない状態では正解率が低く,データを増やすと正解率が上がっていく様子が披露された。
左の写真は,学習のために与えたデータで,それぞれ2例しかない。右の写真は学習をもとに分類させた結果だが,不正解だらけで車は1つも識別できていない |
次に学習させるデータを増やしてみると(左),正解率が大幅に向上したという(右) |
大量のデータセットを用いても,完璧に見分けられるというわけではない。デモでは,緑色のフェラーリをNVIDIA製品と誤認したり,PlayStation Vita(以下,PS Vita)をNVIDIA製品と誤認するという場面では,来場者の笑いを誘っていた。
ちなみに,緑色のフェラーリをNVIDIA製品と誤認したのは,元データに緑色のフェラーリがなく,一方,NVIDIA製品には緑色が使われていることが多いため,「緑色=NVIDIA製品」だと学習してしまったからだ。また,PS VitaをNVIDIA製品として誤認したのは,写真の印象が「SHIELD」に似ていたためだ。
緑色のフェラーリ(左)やPS Vita(右)の写真を見て,「NVIDIA」と誤認した例。もちろん,こうなることを前提にしたNVIDIA流のジョークだ |
このデモで使用された機械学習マシンは,7基のGPUを搭載するシステムとのこと。120万枚のデータセットを認識して,1000クラスの知識(※この例では犬の種類)を構築する学習時間に,2週間を要したという。
デモで,Twitterに投稿された犬の写真を機械学習マシンに入力すると,瞬時に「Cairn Terrier」や「Hungarian Pointer」と犬種が判別されていた。Huang氏はおどけて,「答えが合っているかどうか,犬に詳しくない私には分からないんだが」とジョークを飛ばしていたが,実際にはすべて正解していたようだ。
余談だが,ニューヨーク大学の機械学習マシンによる犬種識別デモは,一般にも公開されている。興味がある人は試してみよう(関連リンク)。
Twitterに投稿された犬の写真を入力すると,次々と犬種を見分けてみせた。人の手が写り込んだ写真でも正確に判定していたのには,少々驚かされた |
NVIDIAはこれまで,GPGPUを,石油探査やコンピュータ支援エンジニアリング(CAE),産業シミュレーションや新薬開発といった,比較的,短期間で成果が現れやすい分野に売り込んでいた。もちろん,これらは今後もGPGPUが使われる分野ではある。
それに対してGTC 2014では,機械学習という新しい領域にGPGPUを訴求してきたわけだ。機械学習は今まさに急速な発展を見せている分野であり,強力な演算能力を持つコンピュータが求められている。Huang氏が基調講演の大きなテーマとして機械学習を取り上げたのは,この分野にGPGPUのビジネスチャンスを見出せると考えているためだろう。
GTC公式Webサイト(英語)
- 関連タイトル:
CUDA
- この記事のURL: