Googleが人工知能開発ソフトを無償公開、AI事業成功のカギはデータにある!

GoogleはDeep Learningソフトウェア「TensorFlow」をオープンソースとして公開した。これを利用すると、人工知能システムの開発が劇的に楽になる。Googleは、これに先立ち、社内でDeep Learningソフトウェア「DistBelief」を使い、多くの製品に人工知能機能を組み込んできた。Googleは人工知能でいかに事業を構築するのか、AIビジネスのポイントを探る。

g434_google_ai_tensorflow_01

GoogleのAI開発を振り返る

GoogleのDeep Learning (深層学習) 研究は2011年に始まった。Googleの人工知能研究グループ「Google Brain」が、Deep Learningソフトウェア「DistBelief」を開発。これは大規模なNeural Network (人間の脳を模したネットワーク) で、人工知能研究のプラットフォームとして使われた。DistBeliefが第一世代のDeep Learningソフトウェアで、TensorFlowはそれを改良した第二世代となる。(上の写真はGoogle Brainグループのロゴ。)

DistBeliefは5階層のネットワークで、4つのマシンに分割して割り当てられる構造となっている。CPUコアの数は1万個超まで拡張でき、その当時、世界最大規模のネットワークを構成した。DistBeliefにYouTubeビデオを入力し、マシンが猫というコンセプトを把握したことで、Googleの人工知能研究が世界から注目される切っ掛けとなった。イメージコンテスト「Large Scale Visual Recognition Challenge」では、2014年、DistBeliefを使ったシステムでGoogleが圧勝した。このコンテストは、120万の写真に何が写っているかを、1000のクラスに区分けする競技で、Googleの技術力の高さが証明された。

g434_google_ai_tensorflow_02

キャプションを生成

2014年には、このネットワークを使って、写真の意味を理解できるようになった。このシステムは「Automated Image Captioning」と呼ばれ、写真に写っているオブジェクトを認識し、それを説明するキャプションを生成する。上の写真がその事例で、システムは「Two pizzas sitting on top of a stove top oven (オーブンの上に二種類のピザがある)」と説明文を生成する。ネットワークの一形式であるConvolutional Neural Network (CNN) が写真に写っているオブジェクトを把握し、その結果をRecurrent Neural Network (RNN) というネットワークに入力し、RNNがキャプションを生成する。RNNは音声認識など、自然言語解析に利用される。

g434_google_ai_tensorflow_03

イメージをどう理解しているか

2015年6月、GoogleはDistBeliefを使って、CNNの各階層が、イメージをどう理解しているかを解析した。これは「Inceptionism」と呼ばれ、ネットワークに対する理解を深めることを目標とした。CNNはイメージを読み込み、そこから特徴量を抽出する。最初は低次元の特徴量を抽出し、ネットワークで処理を重ねるにつれ、高次元の特徴量を把握する。このプロジェクトではこの流れを逆にし、低次元の特徴量を入力すると、CNNはどう反応するかが検証された。

CNNはこの入力に対し、ネットワークが把握するイメージを出力する。上の写真がその事例で、ランダムノイズをCNNに入力する (左側)。ネットワークのパラメータを調整していくと、CNNはバナナのイメージを出力する (右側)。これがCNNが理解するバナナのかたちとなる。しかし、バナナと分かるものの、両端が消えて中央部だけ表示されているものもあり、我々が理解しているバナナとは異なる。つまり、このケースはシステムの教育が不完全であることを示している。これらを検証することで、システムがイメージをどの精度で把握しているかを理解できる。

g434_google_ai_tensorflow_04

写真から連想するイメージを描く

更に、これをもう一段階進めると、CNNは写真から“連想”するイメージを描くことができる。CNNに写真を入力し、ネットワークのパラメータを特別なオブジェクトに強く反応するように調整する。その結果、CNNが連想するイメージを出力する。上の写真がその事例で、樹木の写真入力すると、CNNは建物のイメージを出力する (中央)。山脈など平行線が多い写真からは、CNNは塔などをイメージする。CNNが入力された写真に”触発”され、絵を描くことができるとして話題になった。

メール返信文を自動生成

2015年11月、TensorFlowを使った新サービスが登場した。Google Searchの音声検索に適用され、認識率が向上した。また、写真アルバム「Google Photos」への適用では、イメージ検索の精度が向上した。更に、メールクライアント「Inbox」で、アプリが自動で返信文を生成する。この機能は「Smart Reply」と呼ばれ、受信メールに対して、アプリがその場で返信メールを作成する。アプリは、受信メールを読み、テキストの内容を理解する。テキストの内容から、返信が必要かどうかを判断する。返信が必要な場合は、三つの文例を文末に生成する。

g434_google_ai_tensorflow_05

上の写真がその事例で、メールを受信すると、一番下に返信テキストが自動で生成される。三つの中から最適な文言を選び、送信ボタンを押すと返信が完了する。左側は「明日の打ち合わせに誰か出席するようアレンジして」との依頼に対し、アプリは三つの返信文例、「そうします」、「アレンジします」、「できません」を生成。右側は人気映画「Frozen」のあらすじをメールで受信したところで、アプリは「Thank you for sharing!」、「Very cool」、「Love it!」と返信例を生成。一方、製品紹介や転送メールなど、返信を必要としないメールについては、文例は生成されない。返信するときは、最適な文例にタッチするだけで、操作が完了する。キーインする必要は無く、屋外で移動中に返信する際などに大変便利。

返信文作成の仕組み

Smart ReplyはTensorFlowのRNN機能を使って開発された。RNNはメール内容を把握する「Encoder」と返信メールを作成する「Decoder」から成る。Encoderはテキストを一文字ごと処理し、「Thought Vector」を生成する。Thought Vectorとは文章の意味を把握する手法で、類似の意味を持った文章群を生成する。DecoderはThought Vectorを読み込み、返信テキストを一文字づつ生成する。Smart Replyは11月9日から、AndroidとiOS向けのInboxの機能としてリリースされた。

g434_google_ai_tensorflow_06

TensorFlowとは

Googleが社内で使っているTensorFlowが、2015年11月、一般にリリースされた。TensorFlowはインテリジェントなシステムを開発するためソフトウェアで、機械学習アルゴリズムを表現し実行するインターフェイスとして機能する。TensorFlowの最大の特徴は、アルゴリズムをグラフ (Data Flow Graph) で表示すること。TensorFlowはグラフ形式の演算のためのライブラリーであるともいえる。

具体的に、グラフとはNodeとEdgeで構成されるフローチャートで、データアレイ (これをTensorと呼ぶ) を処理する (上の写真)。Nodeは計算を実行する演算子などで、EdgeはNodeを結ぶリンクを示し、ここをTensorが流れる。TensorFlowの名前の由来はここにある。上の写真で、MatMul (マトリックス演算)、Add (加算演算)、ReLU (活性化関数) などがNodeで、それを結ぶ矢印がEdgeとなる。

g434_google_ai_tensorflow_07

TensorFlowでコーディング

上述のモデルをTensorFlowでプログラミングすると上の写真の通りとなる。TensorFlowを読み込んだ後、モデルのBiasとWeightを定義し (上の写真1)、入力変数コンテナー (Placeholder) を設定する (上の写真2)。活性化関数としてReLU (rectified linear unit、平地から直線の上り坂になる形状の関数) を定義 (上の写真3) するとグラフ (一つ上の写真) が完成する。最後に、このモデルを初期化・実行するコードを追加すると、生成したモデルが実行される。(この事例はスタンフォード大学のチュートリアルから引用したもので、既に大学の講義に取り入れられている。)

g434_google_ai_tensorflow_08

汎用的なプラットフォーム

TensorFlowは柔軟なシステム構造となっている。Deep Learningなど主要機能はライブラリーとして提供され、TensorFlowコアで実行される。Neural Networkを使う際は、固有なオペレーションはライブラリーで提供される。例えば、TensorFlowで画像認識システムを生成する際は、「Convolution」というライブラリーを使い、イメージデータを処理する。この他に、ハイレベルなライブラリとしては「Pooling」や「Softmax」などが用意されている。

TensorFlowは汎用的なプラットフォームとしてデザインされている。TensorFlowは、それを実行するデバイスやハードウェアとの依存性は無く、切り離された構成となっている。具体的には、TensorFlowはデスクトップのCPUやGPU、サーバー、モバイルデバイス (AndroidとiOS) で稼働する (上の写真)。ラップトップでTensorFlowを使ってモデルを作り、それをパソコンのGPUを使って高速に処理することができる。更に、モデルを大規模に展開する際は、Dockerを使いクラウド上に展開する。TensorFlowが提供するAPIを使うだけで、容易にシステム構成を変更できる。開発言語はC++とPyhthonをサポートしており、今後、対象言語を広げていく。

TensorFlowを公開する理由

TensorFlowはリリースされたばかりであるが、開発コミュニティーから「機械学習の開発時間がドラスティックに短くなった」など、高い評価を受けている。GoogleはTensorFlowをオープンソースとして公開する理由について、「機械学習で革新的製品を生み出すことを手助けするため」としている。今まで、Deep Learningは標準プラットフォームがなく、企業や研究機関はソフトウェアを組み合わせて利用してきた。TensorFlowが標準プラットフォームとなれば、開発者はアイディアやコードを交換でき、研究開発が加速されると期待される。

同時に、この背後にはビッグデータ開発の反省が込められてるようにも思える。GoogleはMapReduceやBigTableなど、先進的なツールを開発し、検索エンジンやGoogle Mapsなどで利用してきた。これらのツールは公開されることなく、社内に留まった。市場はこのアイディアに刺激され、Hadoopなどを生み出し、これが業界の標準プラットフォームになった。人工知能開発では、この経験を教訓に、TensorFlowを公開し、Deep Learningエコシステム拡大を目指しているとも解釈できる。

g434_google_ai_tensorflow_09

データがカギを握る

先進的なプラットフォームを公開することは、競合企業を利することになり、リスクを伴う判断でもある。しかし、TensorFlowを公開したという事実は、Deep Learningの戦いはアルゴリズムではなくデータがカギを握る、ということを示唆している。Deep Learningのアルゴリズムはコモディティーになりつつあるともいえる。Deep Learningで勝敗を分けるのはデータで、アルゴリズムに入力するデータを持っていることが、圧倒的なアドバンテージとなる。

この点でGoogleは世界で一番優位なポジションにいる。Googleは検索エンジンで世界の情報を整理し、大量のテキストデータを保有している。今では、スマートフォンでの音声検索で、膨大な音声データを持つ。Google Photosに大量のイメージデータが集まりつつあり、YouTubeは世界最大のビデオライブラリーとなっている。事実上のGoogle子会社「23andMe」は、個人向け遺伝子解析事業を進めている。(上の写真は23andMeの新社屋。) 全世界の遺伝子情報を整理するというミッションの元、大量のデータが蓄積されている。Googleとしては最新の人工知能開発プラットフォームを公開しても、事業展開で先行できるという自信が窺える。同時に、Googleは収益の上がらない23andMeに、何故ここまで肩入れするのか、その理由も見えてくる。人工知能ビジネスでは、企業の価値は収益だけでなく、そこから生成されるデータが重要であることを示している。

Leave a Reply

You must be logged in to post a comment.