ニュース
Google、各種プロダクトを下支えするマシンラーニング技術を解説、同技術を一般開放するオープンソースプロジェクトも
(2015/11/12 06:00)
グーグル株式会社(Google)は10日、同社がある六本木ヒルズ(東京都港区)にアジア各都市から報道関係者を集めて開催した「Google APACプレスイベント」においてGoogleにおけるマシンラーニングに関する動向を紹介した。
マシンラーニング技術は、Googleの各プロダクトを支える柱になってきており、最近ではスマートフォンアプリ「Inbox」による自動返信機能、写真ストレージサービス「Googleフォト」の自動分類機能、「Gmail」のスパムフィルターの精度向上など、コンシューマー/ビジネスプロダクトともに機能追加や機能改善に用いられている。
ディープラーニングは、ニューロン同士の“支えあい”で飛躍する
イベントでは、米Googleシニアリサーチサイエンティストであり、同社ディープラーニングチームの共同創設者であるグレッグ・コラード氏が、マシンラーニングの概念について説明した。Googleで最近多く採用されているマシンラーニングは、ニューロンを模した人工ニューラルネットワークを採用したディープラーニング(深層学習)と呼ばれるもの。特徴として、シンプルかつトレーニング可能な関数で構成され、他のマシンラーニングと協調して学習できる点にあるという。
ニューロン自体はそれほどパワフルではないものの、協調動作することで飛躍的にタスクを処理できるようになるという。ニューロンは、他のニューロンの動きを観察し、お互いの関数を学ぶことができる。これにより、ニューロンは自分が計算した結果が、隣のニューロンの計算にどう役立つかを学ぶことで、協調した動作が可能となる。ディープラーニングモデルによる性能向上は明白で、古いマシンラーニングのモデルと比較して、音声認識の精度が20%向上したほか、写真に写っている被写体の特定やロケーションの判別も可能になったという。
コラード氏は、マシンラーニングの簡単な例として、勉強時間からテストの成績結果を予測するモデルについて解説した。モデルでは、学習時間に応じて成績は上がると仮説を立てて大方の推測を行う。実際には勉強する分野によって難易度が異なるため、予測と実測でばらつきが生じてしまう。学習時には、パラメータをどの程度変更するか、どの程度変更したらエラーが減ったかを理解する「ラーナー」と呼ばれるソフトウェアを介入させる。ラーナーにより、予測に使用する方程式に当てはめるパラメータを、エラーの幅が小さくなるよう修正を幾度となく繰り返すことで、少しずつ精度が向上していくという。このラーナーは、学習が終われば不要となるので、最終的にはモデルとパラメータのみのコンパクトな構成で済むという。
Googleでは、さまざまな用途のマシンラーニングはあれど、ベースはほぼ上記のような非常に小さな変化を繰り返して学習するとしており、Googleのアプリレベルだと、繰り返しの数は数億にも達する。また、マシンラーニングが実用的になった側面として、コンピューターの処理速度が向上したことと、シンプルなシステムで数多くの例を取り込んだ方が、非常に複雑なシステムを使うよりも結果が優れており、汎用的に使えるためだとしている。実際、複雑な機械翻訳システムにマシンラーニングを採用する動きもあり、1言語の例文を与えて翻訳させ、正しい翻訳と照合させることを繰り返すことで、両方の言語が分かるようになるという。
ただし、「マシンラーニングは魔法じゃなくてツールの1つ」とコラード氏は述べており、むやみにプロダクトに組み込んでも結果は出ないと忠告している。マシンラーニングには思想やケア、創造性など、新しいソフトウェアを作るのと一緒で、どのようにシステムを構築するか、データを提供するか考える必要があるとした。
なお、Googleのマシンラーニングへの取り組みは、7~8年前にスピーチチームが精度向上のためにマシンラーニングを導入したのがきっかけだった。マシンラーニングに転機が訪れたのが今から2~3年前で、写真内のキリンを「キリン」と特定できるといった、写真のラベル付けが突然可能になったという。そのタイミングからマシンラーニングにより注力したとしている。
Googleが持つ最新マシンラーニング技術を、ソフトウェアライブラリ「TensorFlow」として公開
Googleでは、同社が培ってきたマシンラーニング技術を、オープンソース化されたマシンラーニング用のソフトウェアライブラリ「TensorFlow」として9日より提供開始している。TensorFlowは、ディープラーニングに特化したものではなく、もう少し一般的なものとしているが、Googleが内部で使っているライブラリと同じもの。検索結果の「RankBrain」や、Inboxの「SmartReply」で実際に採用されているものと同様だとしている。
CPUやGPUで実行可能で、モバイルデバイス上でも利用可能だという。TensorFlowは、Apache 2.0のオープンソースライセンスで使用可能で、学術用途やリサーチ用途のほか、他社が自身の製品に組み込むこともできる。TensorFlowを提供した理由として、マシンラーニングには共通したスタンダードなものがなく、関連したリサーチが出ても、コードの共有が難しかったとしている。また、TensorFlowを提供することで業界全体の進捗を促し、大学や研究所からナレッジや発見が出てくることで、Googleにとってもメリットになるという。
Googleフォトの写真識別は、車種や「フレンチブルドッグ」といった品種の特定も可能
Googleフォトでは、22のレイヤーで構成されるニューラルネットワークを採用したマシンラーニングモデル「Inception」(同名の映画から命名)を使用している。Inceptionは、ジオタグが付けられていない写真でも、被写体内のランドマーク(例えばエッフェル塔など)など特徴的なオブジェクトを識別して、写真をグルーピングすることができる。また、形が変わらない建物などの構造物と異なり、柔軟に変化する猫などの動物も識別することができる。
レイヤーはそれぞれで役割が異なり、色、ライン、形状などレイヤーごとに判定し、最終的にその被写体が何であるかを判断するニューロンに材料を渡す。Inceptionも猫という物体を「猫」としては認識せず、猫という言葉にマッピングする学習が必要となる。これは、猫として投稿されたブログに貼られた画像であったり、猫で画像検索し、ユーザーがクリックした画像から猫と認識する。このような学習を通すことで「フレンチブルドッグ」といった品種なども判別できる。デモでは、そのほか「トヨタ・タコマ」といった車種や、飛行機の「ビーチクラフト・ボナンザ」なども識別した。
また、マシン側では、「4人の人物」「キャンドル」「覗き込んでいる」といった識別しかできない写真でも、人間が見ると「誕生日」の写真として認識する。マシンは誕生日にはどういった構成要素があるのかを観察し、そのイベントがどのようなものなのかを合成していく。季節なども識別要因になっている(10月末であればハロウィンなど)ほか、撮影された時間帯から日の出と日没が判別できるなど学習していくものだという。