ビジネスに活用するためのAIを学ぶ 6

FacebookとApple、NVIDIAのAIプラットフォーム

梅田 弘之(うめだ ひろゆき)

2017年12月22日 12:44

はじめに

これまでGoogle、Microsoft、IBM、AmazonのAIプラットフォームが提供しているサービスがどのようなものであるかを説明してきました。今回はSNSやスマホに強みを持つFacebookとApple、そしてGPUを武器に適用領域を拡大し続けているNVIDIAのサービスを紹介します。

Facebook

Facebookの強みは、世界最大のユーザー数を持つFacebookで膨大なデータを持っていることです。立ち上がりこそ遅れましたがAI関連企業を買収して一気に時間的な差を埋め、Facebook AI Research(FAIR)に優秀な技術者を集めてガンガン攻めてきています。

クラウドベンダーではないのでクラウドの有償サービスというモデルではなく、FacebookやMessenger、Instagramの利用ユーザーを増やすことを目的に展開しています。そのため限定公開や非公開の技術も多いですが、逆にオープンソースで公開している技術も多いのが特徴です。研究成果の発表や論文を見る限り、AIを人間の未来社会に役立てるために研究開発を続けているような印象があります。最近でもFacebookの自殺予防AIが話題になりました。表1にFacebookとAppleのAI技術・サービスを当てはめてみました。以下、主な機能について解説します。

表1:FacebookとAppleのAI

FacebookApple
画像/動画分析・Lumos(画像認識)
・Deep Face(顔認識)
・Automatic alternative text(音声説明)
・DeepMask(オブジェクト検出)
・SharpMask(オブジェクト輪郭)
・MultiPathNet(画像認識)
機械翻訳Translator(翻訳)
自然言語処理・wit.ai(自然言語処理)
・DeepText(テキスト解析)
・Ozlo(AIアシスタント)
・Text Classify(テキスト分類)
ナレッジApple Machine Learning Journal
エージェント・Bot・bots for Messenger Platform
・M(パーソナルアシスタント)
Sirikit
ライブラリ(フレームワーク)・Torch/PyTorch
・Caffe/Caffe2
Apple Core Machine Learning
・Turi Create

(1)画像認識(Image Recognition)

FacebookやInstaramは膨大な写真データを持っているため画像認識系のAIに強いです。Lumos(ルーモス)という画像認識AIにより、画像に含まれているオブジェクトを認識して、何が写っているか、どんな場面かなどを分析します。不適切な写真を排除したり、写真を自動でカテゴライズしたり、画像を検索したりとさまざまなことができます。

Lumosは、もともとは視覚障害者にFacebookにアップされた写真を知らせる目的で開発されたもので、画像を音声で説明するAutomatic alternative text(AAT)機能にも使われています。AATは現時点では英語のみ対応ですが、多言語対応されてゆく予定です。

(2)顔認識(Face Recognition)

最近はiPhone Xの顔認証が話題になっていますが、もともと顔認証といえばFacebookのDeep Faceが衆目を集めていました。有名人だけでなく一般の人たちも顔認識できるのは、Twitterなど匿名性が高いSNSとは違い基本的にユーザー名や顔写真を公開しているからです。DeepFaceは、画像の中から顔を検出し、大きさや向きを微調整して合わせた上で他の写真と特徴ベクトルを比較して一致判断をします。

<<メモ>>オープンソースの画像認識

Facebookは、DeepMask、SharpMask、MultiPathNetという3つの画像認識技術をオープンソースで公開しています。DeepMaskにより画像内のオブジェクトを検出し、SharpMaskでオブジェクトの輪郭を描き、MultiPathNetがオブジェクトの解析を行うという一連の作業を行えます。

例えば、ソファの上で犬と猫が遊んでいる写真であれば、DeepMaskがソファ、犬、猫という3つのオブジェクトを検出し、SharpMaskがそれらの縁取りをして、MultiPathNetで犬、猫、ソファと認識してタグ付けしてくれます。よくあるオブジェクト検出が四角形でオブジェクトを囲む方式なのに対し、SharpMaskで輪郭をなぞってくれているのが「さすが」という感じです。

(3)機械翻訳(Translator)

Facebookは、2017年7月に投稿を自動翻訳するための翻訳システムをニューラルネットワークに切り替えたことを発表しました。自然言語処理には、RNNの一種で全体の文章を解析できるアルゴリズムのLSTM(long short-term memory)を採用しています。例えばFacebookに「複数の言語で投稿」機能を使うと、日本語で書いた投稿を英語や中国語でも翻訳コピー(修正も可能)して投稿してくれます。相手にはデフォルト言語の文章だけが表示されるようになっており、海外の人との繋がりを増やしたいときに使えそうですね。

<<メモ>>人間の言語を介在しないAIのコミュニケーション

2017年6月に米メディアでちょっと話題となった”事件”があります。それはFacebookがボブとアリスという2体のAIで会話させているうちに独自の言語を生み出して話し始めたというニュースでした。”会話は英語ですべき”という制約を付けていなかったために、2体でよりスムーズに交流できる言語を作って会話し始めたと推定されています。「ターミネーター」のようなSF人気の高い米国だから関心が高まったのでしょうね。

(4)自然言語処理(Natural Language Processing)

Facebookの自然言語処理にはWit.aiが使われています。Wit.aiは2015年にFacebookに買収・公開されているオープンソースのbotエンジンで、パーソナルアシスタント「M」やbots for Messenger Platformにも使われています。音声認識や自然言語理解するAIを無料で使えるということで、Botのほかにモバイルアプリ、ホームオートメーション(HA)、ウェアラブルデバイス、ロボットなど幅広い用途で使われています。日本語はまだβ版ですが、なんといってもオープンソースなので、日本語がGAとなれば日本でも利用が広まりそうです。

<<メモ>>Jarvis(ジャービス)

FacebookはMというパーソナルアシスタントを育成していますが、CEOマーク・ザッカーバーグ氏の個人プロジェクトでJavisという執事AIを開発中です。単なる会話によるコンシェルジェだけでなく、IoTと結びついて照明の調整や来客のチェックなど自宅での日常作業をサポートするAIを目指しており、スマートスピーカーの発展系と競合するような位置付けです。

(5)テキスト解析(Text Analytics)

DeepTextは、テキストの内容を理解するディープラーニングエンジンで、FacebookやMessengerなどのユーザーの投稿内容を分析するのに使われています。Facebookの”人気のコメント”の判断、スパムやヘイトスピーチの除外にも利用されています。

Messengerのbot呼び出しにも応用できます。ホームページの動画では、ユーザーのメッセージの中で「タクシーを呼びたい」という意図のコメントにだけ反応するデモが紹介されています。

(6)テキスト分類(Text Classify)

FastTextは、高速に自然言語処理の学習を行えるライブラリで、オープンソースで公開されています。機械学習の弱点は、学習に膨大なデータが必要となることです。データの整理・準備に手間がかかるのはもちろん、Facebookのようにデータ量が膨大な場合は処理速度も非常に重要となります。

FastTextは「単語のベクトル表現(Word2Vec)を作る」「テキストを分解する」という2つの処理機能から構成されており、膨大なデータを使う学習を高速に処理できます。ネット上の書き込みからユーザーの嗜好を理解してレコメンドなどに応用する事例などがいくつか発表されています。

(7)ボット作成ツール(Chat Bot)

Facebookは、メッセンジャー向けのアプリ開発者にMessenger Platformという開発環境を公開しています。bots for Messenger Platformは、Messenger Platform上にChat botを作成する機能で無償提供されています。2017年にWit.aiの自然言語処理(NLM)を組み込んで、より自然な会話ができるようになりました。メッセンジャーでブランドや企業を検索したりしてbotと会話している最中に、botの提示した商品を「Buy」ボタンをクリックするだけで簡単に購入できるような仕組みが広がっており、既に数万のbotが稼働中です。

(8)パーソナルアシスタント

Facebookのパーソナルアシスタントは、Mという007に登場する女性のような名前です。まだ米国だけですが、Facebook Messengerのインスタントメッセージングサービス内で動作します。このMで採用されている「Wit.ai bot Engine」も自社Messengerのbot開発向けにリリースされています。

Apple

Appleはディープラーニングに関して出遅れ感があります。Facebookと同じく、クラウドベンダーでないのでiPhoneなどの自社製品で利用するAIというスタンスで取り組んでいます。これまでどちらかと言うとクローズなスタンスだったのですが、ここにきて技術をオープン化するなどして巻き返しを図ろうという意欲を感じます。また、AIチップや自動運転車などハードウェアにも触手を伸ばしているのがAppleっぽくもあります。

(1)パーソナルアシスタント

iOS10からサードパーティのアプリでSiriが利用できるようになりました。利用できるアプリはVoIP Calling(音声通話の開始)、Messaging(メッセージの送付)、Book Ride(配車アプリ)、Restaurant Reservation(レストラン予約)などいくつかのドメイン(分野)に限られていますが、ドメインはどんどん増えています。まだ限定的な公開ですが、”虎の子”のSiriを解放するというのはかなり思い切った決断だと感じました。

(2)ライブラリ(フレームワーク)

Apple Core Machine Learningは、2017年6月に紹介された機械学習フレームワークで、iOS11から開発者向けに提供されています。汎用のフレームワークと違い”iOSアプリで使うためのAI”となっており、学習データの作成と実行という要素のうち、マシンパワーの必要な学習データの作成は外部でやる仕組みにしています。

画像処理と自然言語処理をサポートしており、MobileNetsやPlaces205-GoogleNetなどいろいろな学習済みモデルに対応しています。それ以外の学習データはCaffeやKerasなどのニューラルネットワークのライブラリを使って学習し、結果をCore ML Toolsを使ってCore MLで利用するモデルに変換します。

Appleは2016年にAIフレームワークを提供していたTuri社を買収して、自社の機械学習の取り組みを強化していました。2017年12月にこのTuri CreateをGitHubで公開し、オープンソースとして提供することにしています。Turi Createの特徴は、他のライブラリに比べるとアプリケーション指向でとっつきやすい点です。レコメンデーション、チャーン分析(解約予測)、マッチング、リードスコアリング(見込み客がどのくらい買いそうか)など、ビジネスよりのアプリケーションを構築する方向に向いています。

(3)研究論文共有

2017年7月、機械学習に関する研究論文共有のための専用ブログApple Machine Learning Journalが開設されました。まだ投稿されている論文が少なく、このまま企画倒れになるかもしれないと心配しているのですが、最初の論文で「大量の学習データを用意する代わりに、画像合成で学習データを作成するモデル」は新しいトレーニングモデルとして注目されています。

NVIDIA(エヌビディア)

GPUで圧倒的なシェアを持つNVIDIAは、2017年5月にクラウドベースのAIプラットフォームNVDIA GPU Cloud(NGC)を発表しました。GPUベースのコンピューティングリソースを基盤として、その上にディープラーニングのフレームワークやライブラリ、OS、ドライバなどのソフトウェアコンポーネントも用意したNVIDIAらしいプラットフォームです。

クラウドで言えばSaaSではなくPaaSという位置付けでしょうか。「ディープラーニングを実行するための高速かつ汎用的でオープンな環境を用意したので、みなさんどうぞこのプラットフォームを使ってAIに励んでください」、というようなスタンスのビジネスモデルです。

サポートするライブラリ(NGCソフトウェアスタック)としてCaffe、Caffe2、CNTK、MXNet、TensorFlow、Theano、Torchなどが用意されており、NVIDIA DIGITS GPUトレーニングシステム、NVIDIA Deep Learning SDK、NVIDIA DOCKER、NVIDIA CUDAなどにも対応しています。

AIの研究者・開発者はこうしたメジャーなライブラリやツールキットを使って、高速なGPU環境で簡単にAIを使ったモデル作成ができることを謳っています。

(1)NVIDIA CUDA(クーダ)

CUDAとはCompute Unified Device Artitectureの略で、GPU向けの汎用並列コンピューティングアーキテクチャです。C言語を使ってGPUをグラフィック以外の用途に使えるようにするためNVIDIAが開発したプログラマブル技術です。

(2)TensorRT

NVIDIAは、AI推論プラットフォームTensorRTという技術も発表しています。通常、CaffeやTorchなどのフレームワークは「学習」+「推論」の一連の機能を持っていますが、TensorRTはこのうち「推論」部分のみを高速で実行するエンジンです。例えばCaffeで学習したモデルをTensorRTで実行することにより、高速にAIを活用できます。

一般に「推論」は「学習」よりもコストがかからないのですが、例えば自動運転車のようにリアルタイム性が重要な処理や大量の画像や動画などを分析・分類したりするには「推論」も高速化する必要があります。実際、テスラGPUやSAPでもTensorRTが利用されています。

2017年9月のNVIDIAの発表によれば、百度や阿里巴巴、テンセントなどの中国勢が高速推論のためにNVIDIA TensorRT 3を採用したとしており、NVIDIAの中国進出が着々と進んでいることが感じられます。

(3)NVIDIA DRIVE PX

NVIDIAは自動運転車にも強みを持っており、NVIDIA DRIVE PXというAI車載コンピューティングプラットフォームはさまざまな自動車メーカーで使われています。

今回は、FacebookはSNS、Appleはスマートフォン、NVIDIAはハードウェアとそれぞれに強みを活かしたAIへの取り組みについて紹介しました。次回はビッグカンパニーのAIプラットフォームの締めくくりとして、エンタープライズ向けのAIサービスを提供し始めているSalesforceとOracle、そして成長著しい中国の百度、阿里巴巴、テンセントのAIサービスを紹介します。

この記事をシェアしてください

人気記事トップ10

人気記事ランキングをもっと見る

企画広告も役立つ情報バッチリ! Sponsored