ディープラーニングのトレーニングと推論の違いとは

投稿者: Michael Copeland

本稿は、長年のテクノロジ・ジャーナリストであるマイケル・コープランド(Michael Copeland)氏がディープラーニング基本を説明する一連の記事の第二弾です。
 
「学校の教育課程」――ディープ・ニューラル・ネットワークが通過する「トレーニング」の段階は、このように考えることができます。ニューラル・ネットワークも、ほとんどの人と同じ目的、つまり仕事ができるようになるために教育を受けます。

具体的に言うと、トレーニングされたニューラル・ネットワークは、デジタル世界でその学習内容を活かし、合理化されたアプリケーションの形で利用されます。たとえば、画像、音声、血液疾患を認識したり、次回購入する可能性の高い靴を消費者に提案したりといった、あらゆる用途が考えられます。このように高速化され、効率化されたニューラル・ネットワークは、そのトレーニングに基づき、提示された新たなデータについて推測を行うようになります。AI分野では、それを「推論」と呼んでいます。

推論には、もちろんトレーニングが不可欠です。通常、我々自身もそうやって知識を得て、利用しています。また、我々がシェイクスピアのソネット集を読むために、教師陣や、ぎっしりと詰まった書棚、赤レンガの校舎をすべて担いで回るわけではないように、推論でも、仕事をうまくこなすために、そのトレーニング法の基盤がすべて必要になるわけではありません。

ではここで、トレーニングから推論に至るまでの進化の過程をいくつかに分け、AIの文脈において両者がどのように機能するか分析してみましょう。

ディープ・ニューラル・ネットワークのトレーニング

草原にある赤レンガの建物の写真
我々がシェイクスピアのソネット集を読むために、教師陣や、ぎっしりと詰まった書棚、赤レンガの校舎をすべて担いで回るわけではないように、推論でも、仕事をうまくこなすために、そのトレーニング法の基盤がすべて必要になるわけではありません。

目標は同じ「知識」でありながらも、ニューラル・ネットワークの教育課程、すなわち「トレーニング」は、(幸いなことに)我々の場合とあまり似ていません。ニューラル・ネットワークは、大まかに人間の脳の生物学的しくみ(ニューロン間のあらゆる相互接続)をモデルにしたものです。ただし、すべてのニューロンが特定の物理的範囲内にある他のどのニューロンにも接続できる人間の脳とは異なり、人工ニューラル・ネットワークでは、データの伝達において、層、接続、方向が個別に定義されます

ニューラル・ネットワークのトレーニングでは、トレーニング用データがニューラル・ネットワークの最初の層に入力されます。そして、各ニューロンが、実行されるタスクに基づき、それぞれの入力に対して重み(正誤の確率)を割り当てます。

たとえば、画像認識ネットワークでは、最初の層がオブジェクトのエッジを特定し、次の層がそれらのエッジから長方形や円などの形状を検出し、3番目の層が光る目や小さな鼻といった個々の特徴を認識する役割を果たすことが考えられます。各層は、最後の層に向かって画像を順番に渡していき、それらすべての重みによって割り出された最終的な出力が生成されるまで、同様の処理が繰り返されます。

しかし、このトレーニングには人の場合と異なる部分があります。仮に、そのタスクが猫の画像を認識することだったとしましょう。ニューラル・ネットワークはそのトレーニング用画像をすべて取り込み、重み付けを行い、「猫か否か」の結論を導き出しますが、トレーニング・アルゴリズムからの回答で得られるのは、「正しい」か「間違っている」かだけです。

トレーニングにはきわめて高い計算処理性能が必要に

また、アルゴリズムがニューラル・ネットワークに間違っていたことを伝えても、正しい答えは何なのかという情報は得られません。そのエラーは、ネットワークの各層を伝って送り返されるので、ネットワークは別の可能性を推測しなければなりません。試行ごとに他の属性(この例では「猫の特徴」を示す属性)を検討し、各層で割り出された属性の重み(正誤の確率)を割り当てる必要があります。その後、正確な重みを算出し、「それが猫である」という正しい答えをほぼ毎回出せるようになるまで、推測を何度も繰り返します。

眠る猫の写真
トレーニングによって、ディープラーニング・ネットワークは幅広い世界で結論を導き出す前に、正しい画像を認識することが可能になります。

これにより、データ構造が得られ、トレーニング用データを取り込むことで、ネットワークが学習した内容に基づいて、そのデータ構造内のすべての重みのバランスが取れます。それは、徹底して最適化された美しさです。しかし問題は、計算処理上の要求が非常に高いことです。Googleやスタンフォード大学でAI分野における才能に磨きをかけ、現在Baiduのシリコンバレー研究所で主任研究員を務めるアンドリュー・ウン(Andrew Ng)氏は、「Baiduの中国語音声認識モデルの1つでは、トレーニング・サイクル全体で、4テラバイトのトレーニング用データだけでなく、20エクサフロップスの計算能力(200億の10億倍回の演算処理)も必要になる」と言います。それをスマートフォンで実行したらどうなるでしょうか。

そこで、推論の登場です。

ついにニューラル・ネットワークのトレーニングが完了し、推論の準備が整った

こうして適切に重み付けされたニューラル・ネットワークは、どうしても扱いにくい大規模なデータベースとなります。かつてその学習に必要だったもの(教育でいえば、鉛筆、教科書、教師の厳しい視線など)が、いまや特定のタスクの達成に必要なものをはるかに超えるまでになってしまいました。卒業のポイントは、それらすべてを排除できるようになることではないでしょうか。

誰かが現実の世界でそのすべてのトレーニングを活かしたいと考え、それがもっとも重要なことであれば、必要になるのは、学習を維持し、それを未知のデータにすばやく適用できる高速なアプリケーションでしょう。それが「推論」です。推論では、実環境データのより細分化されたバッチを取り込み、いつでも同じ正解(実際には、それが正しいという予測)をすばやく導き出します。

これは、コンピューター・サイエンスのまったく新しい領域ですが、そうした巨大なニューラル・ネットワークを取り入れ、調整して、他のネットワークで実行されるアプリケーションのスピードやレイテンシの向上につなげるには、主に2つのアプローチが考えられます。

推論のしくみ

スマートフォンを操作するユーザーの写真
推論はどのように活用されているのでしょうか。スマートフォンを起動させてみてください。推論はディープラーニングを音声認識から、スナップショットカテゴリ化にまで活用されています。

1つ目のアプローチは、トレーニング後に有効活用されないニューラル・ネットワークの部分に注目するというものです。そのような部分は不要なだけなので、「取り除く」ことができます。2つ目のアプローチは、ニューラル・ネットワークの複数の層を1つの計算ステップへと融合するための方法を探るというものです。
それは、デジタル画像に対して行われる圧縮に似ています。たとえば、デザイナーは、縦横のサイズが数百万ピクセルに及ぶ、巨大な、美しい画像を制作しても、それをオンラインで公開する際には、jpegに変換する場合があります。その画像は人間の目にはほぼ同じに映り、見分けがつきませんが、解像度は低くなります。同様に、推論では、予測とほぼ同等の精度が得られるにもかかわらず、単純化、圧縮、最適化が行われるため、ランタイムのパフォーマンスが高まります。

つまり、我々は皆、常に推論を利用しているというわけです。AppleのSiriは、Googleの音声認識、画像検索、スパム対策フィルターといったアプリケーションと同様の推論を利用しています。また、Baiduも、音声認識や、マルウェア検出、スパム検出フィルターに推論を利用しています。ほかにも、Facebookの画像認識、AmazonやNetflixのレコメンデーション・エンジンもすべて推論に依存しています。
並列計算機能(一度に多くの処理を実行できる能力)を備えたGPUは、トレーニングと推論の両方に優れた能力を発揮します。

GPUを利用してトレーニングされたシステムでは、コンピューターが人間と同等(または、一部のケースでは人間以上の)精度でパターンやオブジェクトを識別できます(「GPUによるAIの高速化――新たなコンピューティング・モデルの誕生」を参照)。

トレーニングが完了すると、ネットワークは「推論」(データを分類して結果を「推測」すること)の領域へと展開されます。ここでも、GPUとその並列計算機能がさまざまなメリットをもたらします。トレーニングされたネットワークに基づいて、GPUが数十億回もの計算を実行し、既知のパターンやオブジェクトを識別します。

このように、モデルやアプリケーションがよりスマートになり、高速化されて、精度が高まるしくみを、皆様にもご理解いただけるでしょう。今後、トレーニングの煩雑さがますます軽減され、推論が我々の生活のあらゆる面に新たなアプリケーションをもたらすはずです。おそらく、「ムダなあがきはやめて、学校に通いなさい」という人間の成長期とまったく同じ忠告が、AIにも当てはまるでしょう。その過程を経てこそ推論が可能になるのです。