第1回 SHIBUYA SYNAPSE が開催されました

はじめに

AIシステム部の西野剛平です。AIシステム部ではAI研究開発グループに所属しており、Computer Visionの技術を中心に研究開発を行っています。

8/30にAI技術に関するイベントSHIBUYA SYNAPSEの第1回目を弊社内にあるSakuraCafeにて開催し、そこで現在私が関わっている「スマートショップ実現に向けた取り組み」に関してご紹介させて頂きました。 今回は、エンジニアブログという事もあり、イベントで発表した内容のうち、特に技術的な内容について紹介したいと思います。

IMG1.JPG

IMG2.JPG

SHIBUYA SYNAPSEとは

昨今のAI技術は深層学習を中心に目まぐるしく進化しており、それとともにビジネスへの適用も着実に行われてきております。SHIBUYA SYNAPSEは、このような環境において、企業×大学や、プランナー×エンジニアといった異なるバックグラウンドを持つ参加者の有機的なつながりにより、価値あるサービスの共創の場を提供することを目的に設立されました。より詳細な情報に関してはSHIBUYA SYNAPSEのホームページをご覧いただければと思います。

今回は、SHIBUYA SYNAPSEの記念すべき第1回目で、東京大学の山崎俊彦准教授をメインスピーカーにお招きし、山崎先生からは「魅力」の予測や解析に関してのご紹介をして頂きました。また、イベントの最後には懇親会もあり、AIに対して様々な携わり方をしている方同士での意見交換が広く行われるなど、大盛況のうちにイベントを終わる事ができたのではないかと思います。

IMG3.JPG

IMG4.JPG

スマートショップの実現に向けた研究

インターネット上でのサービスにおいては、お客様に合った最適なコンテンツの配信、ログ情報からお客様の行動を解析して迷わない導線に改善するなど、日々サービスを快適にご利用頂く工夫が行われております。しかし、リアルな店舗においてはそのような最適化はあまり行われていないため、快適なサービスを提供するという点では、まだまだ改善の余地があるのではないかと考えております。 私たちは、AI技術を活用することで、リアルの店舗においても一人一人のお客様の状況に合わせた接客やリアルタイムの商品推奨など、今までにないショップ体験の提供ができないかを考え、将来のスマートショップの実現を見据えた研究開発を行っています。

IMG5.png

姿勢推定技術を活用した同一人物の再認識

スマートショップの実現のためには、店内でのお客様の状況を把握する技術の確立が不可欠です。その第一ステップとして、定点カメラからの映像を元に、深層学習ベースの姿勢推定技術を活用した、同一人物の再認識技術の開発を行いました。

本手法は、人物の検出と検出された人物の同定を繰り返し行っていくというのが大枠の流れとなっており、この人物の検出タスク部分に姿勢推定技術を利用したのは、高精度であるというのが一番の理由ですが、その他にも将来性を考慮したいという意図があります。姿勢推定では一般的な検出器で検出される人の矩形情報を得られるだけでなく、各体のパーツを表す器官点情報までも同時に検出することができます。これらの情報は非常に有用で、今後別のタスクを解く必要が発生した場合でも、有益な情報として利用できる可能性は高いと考えています。今回紹介する人物同定の技術においても、この器官点情報を利用する事により、高精度でリアルタイムに同一人物の再認識を実現しています。

一般的なトラッキングにおける問題点

例えば、粒子フィルタをベースとしたような一般的な物体追跡においては、フレーム間の画像変化を基に追跡を行うため、フレーム間隔が長い場合(フレームレートが小さい場合)はフレーム間の画像変化量が大きくなってしまい、追跡は極めて困難になってしまいます。

IMG6.png

また、正確な検出器を前提とした場合は、ある時刻tで検出された人と次のフレーム時刻t+1で検出された人の対応付けを行う事により同一人物判定をする事ができます。 例えば、簡易にトラキングを実現する方法として、Intersection over Union(IoU)の結果を利用する方法が考えられ、それぞれのフレームで検出された人の矩形(BoundingBox)同士、各々の組みでIoUを求め、その値が大きいもの同士を同一の人物とします。

IMG7.png

IMG8.png

ただし、この場合もフレーム間での人の移動量が大きい場合には、IoUの値が0となってしまい追跡が破綻してしまいます。

実サービスを見据えた場合、コスト対効果を意識しなければいけないため、限られた計算リソースで実行する事を想定する必要があります。その上で、リアルタイムに処理するとなると、フレームレートが低くなってしまうというのは、ある程度は前提事項として許容しなければいけない事でないかと考えています。(実際、紹介しているリアルタイムデモ映像のフレームレートは1.7fps程度となっています。)したがって、前述したようなフレームレートが低い場合に発生してしまう問題に対応できるような人物追跡手法を設計する必要があります。

今回紹介する手法は、こういった低いフレームレートやオクルージョンが発生するケースを特に意識しており、姿勢推定によって得られた器官点情報を上手く利用することで、そのような状況下においてもロバストに同一人物の再認識を行えるなるような手法を考案しました。

デモ映像

弊社SakuraCafe内で行ったリアルタイムデモ映像になります。

姿勢推定技術によって検出した人物を矩形で囲っています。その上に表示されている番号はその人物を識別するためのIDで、同じ番号の場合は同一人物と認識されています。また、今回技術の詳細は紹介しませんが入店と退店のタイミングや、年齢および性別の推定もリアルタイムに行っております。赤色の線が入店、青色の線が退店を表し、顔が正面を向いた際に表示される矩形に年齢と性別の推定値を表示しています。

全体の構成

本手法は下記の要素で構成されています。

  1. フレーム画像から人物の器官点の検出
  2. 1つ前のフレームで検出された人物と今回検出された人物の同じ器官点同士で色の照合
  3. 1つ前のフレームで検出された人物と今回検出された人物の位置の照合
  4. 2と3の結果から総合的に判断し、人物の同定

1から4の手順を動画の各フレームに対して逐次行っていくことで、連続的に同一人物の再認識を実現しています。

姿勢推定技術に関して

まずは、姿勢推定技術を使って、フレーム画像中から人物、および器官点の検出を行います。器官点は複数人数の器官点を同時に検出し、検出されたそれぞれの器官点はどの人物のどの体の部分に対応しているかを認識します。下の写真は検出された、鼻、首、左肩、左手、右肩、右手、左腰、左足、右腰、右足の10個の器官点になります。

IMG9.png

色差の計測

各器官点の色を取得します。各器官点を中心とした局所領域からピクセルのRGB値を取得し、それをL*a*b*色空間に変換した後、CIE2000で色差を計測します。色差は1つ前のフレームで検出された人物と今回検出された人物の同じ器官点同士での計測になります。

IMG10.png

色差を類似度に変換

色差を色の類似度として扱いたいので、色差dを1.0 〜 0 の定義域に射影する下記の関数を導入し、それを類似度S(d)とします。

IMG11.png

この関数自体はただのシグモイド関数で、係数αやバイアスΒのパラメータ値は、おおよそ下記の要件に合うように調整しています。

IMG12.png

色の類似度の計算

色差の計算方法、およびそれを類似度に変換する式を説明しましたが、もう少し具体的な例で説明したいと思います。時刻tのフレームでPersonAという人を検出、時刻t+1でPersonBという人を検出したと仮定し、これらに対し「色の類似度」を求める手順を示します。

IMG13.png

各器官点毎にL*a*b*色空間に変換した後、CIE2000色差を計算し、類似度を求めます。各器官点毎の類似度が全て求まったら、それらの平均を取り、最終的にその値をPersonAとPersonBの「色の類似度」とします。上記はその計算過程をイメージした表になります。見切れや隠れなどにより検出されなかった器官点がどちらか一方にでもある場合は、類似度50%となるようにしています。(これは、その器官点を使用しない場合に比べ、器官点1つあたりの類似度への寄与率が高くなり過ぎないようにするための措置です。)

位置の尤度

追跡中の人物は最初の検出フレームからその移動の軌跡をすべて保持しています。したがって、これまでの移動情報を基にその人物が次のフレームにいる位置をガウス分布でモデル化する事ができます。これを尤度関数とし、実際に次のフレームで人が検出されたら、その位置情報をそれぞれの尤度関数にあてはめることにより、尤もらしさを求める事ができます。ちなみに、実際のデモ映像では人に対して相対的にブレが少ない首の器官点位置を利用しています。

IMG14.png

上記は、追跡中の3人の軌跡情報を基にガウス分布でモデル化したイメージ図になります。次のフレームでの各人の予測位置は赤色で書かれている部分で、これまでの移動量が大きいほど次フレームでの予測位置は遠くに、分散は大きくなります。

総合尤度の算出

色の類似度、および位置の尤度から総合尤度を計算し、その値から同一人物の判定を行っていきます。例えば、前のフレームでPersonAとPersonBの2人を追跡しており、現在のフレームでPersonCとPersonDとPersonEの3人を検出した場合について考えてみます。

IMG15.png

前のフレームと現在のフレームで検出された全ての人の組み合わせに対し、色の類似度および位置の尤度を計算し、その積を総合尤度とします。この例では下記のようになります。

IMG16.png

これを総合尤度の高い順で並べ替え、ある閾値以下(ここでは0.02を利用)のものを除外すると下記のようになります。

IMG17.png

これを上から順に人物同定していきます。「前フレーム」欄か「現在のフレーム」欄のどちらかに既出の人物が含まれる場合、その行は無視します。これを最後の行まで行い最終的な結論を出します。この例においては下記のような結果となります。

PersonA と PersonDは同一人物である

PersonB と PersonEは同一人物である

PersonCは新たに検出された人である

これを動画の各フレームに対して連続的に行っていく事で、高精度な同一人物の再認識を実現しています。

最後に

SHIBUYA SYNAPSEの開催当日は、このブログに書かせて頂いた内容をご紹介しつつ、会場内でリアルタイムにそれを体験できるデジタルサイネージのブースも用意しました。

IMG18.JPG

発表している内容をその場で実際に体験できるという事で、参加された方々にも興味を持っていただき、非常に良い試みだったと思っています。 SHIBUYA SYNAPSEは今後も2回3回と続いていく予定なので、このブログを読んで興味を持って頂ければ幸いです。是非、次回のご参加を検討して頂ければと思います!

続きを読む
ツイート
シェア
あとで読む
ブックマーク
送る
メールで送る

CVPR2017に参加してきました

はじめに

みなさんこんにちは、AIシステム部AI研究開発グループの李天琦 (@TianqiLi)です。普段は主にComputer Visionの研究開発を行っています。

DeNAのAIシステム部では、カメラの映像解析をはじめとする多くのプロジェクトでDeep Learningの技術を活用しています。Deep Learningの世界は変化が激しく、毎日追い続けても追いきれないほど日々新しい技術論文が発表されています。そこで、最新の技術トレンドをキャッチアップするため、今年(2017年)7月にハワイで開催されたConputer Visionに関するトップカンファレンスの一つである「(CVPR2017」)に参加してきました。その内容について紹介したいと思います。

cvpr2017_1.jpg

CVPRとは

CVPRの正式名称は「Computer Vision and Pattern Recognition」です。Compuer Visionというのはロボット(コンピュータ)の視覚を指し、広義では画像処理、映像処理の技術分野全般を意味しています。そのComputer Visionの分野において世界で最も権威ある学会の一つがこのCVPRです。そして近年ではDeep Learningを始めとするAI技術の飛躍的な進歩により、あらゆるComputer Vision分野でDeep Learningを使う事が当たり前になってきているので、CVPRはDeep Learningに関するトップカンファレンスの一つだとも言われるようになりました。

cvpr2017_2.png

今年の開催期間は7/21〜7/26の6日間です。初日と最終日は特定のテーマに絞って集中的に行うTutorial & Workshopが開かれました。他の4日間が、幅広い分野のセッションが行われるMain Confernceです。また、Main Conferenceの4日間では、Expoと呼ばれるスポンサー企業の展示会も並行して行われ、世界トップのIT企業たちが最新の研究成果や製品などを展示しました。

開催場所

今年の開催地はハワイのオアフ島です。海と自然に囲まれた最高のリゾート地でした。

cvpr2017_3.jpg

[ 会場のHawaii Convention Center ]

近年のDeep Learning人気の影響を受けて、CVPRの参加者は年々増加し、今年は採択論文数も参加者も過去最高でした。統計によれば、今年の投稿論文は2680本で、採択は783本でした。そして今回のCVPRの参加人数は6000人以上にものぼっています。

cvpr2017_4.jpg

[ オープニングセレモニーの様子 ]

cvpr2017_5.jpg

[ 採択論文の統計 ]

セッションの様子

CVPRに採択された論文のうち、評価の高かったものはOralやSpotlightと呼ばれるプレゼンテーション形式のセッションで発表されます。その場で大掛かりなデモを行うものもあります。それ以外は、Posterと呼ばれるセッションで展示され、質問すると論文の作者が直々に解説してくれます。

cvpr2017_6.jpg

[ Oral セッションの様子 ]

cvpr2017_7.jpg

[ Poster セッションの様子 ]

Expoの様子

Main Conferenceと並行して行われるExpoでは、各企業が独自の技術Demoを展示しています。今年最も多かったのはやはり自動運転で、TOYOTA、Tesla等の大手車メーカー以外にも、多数の自動運転ベンチャーが展示していました。

cvpr2017_8.jpg

[ Googleのリアルタイムポーズ推定のデモ ]

cvpr2017_9.jpg

[ 完全無人運転のDemo ]

cvpr2017_10.jpg

[ 無人運転の映像解析Demo ]

展示企業によっては最新の製品の販売も行っていて、今回の目玉商品はIntelが新たに販売する予定の「Movidius Neural Compute Stick」でした。これは簡単に言えばDeep Learning専用の外付け小型計算機です。これまで、Deep Learningは非常に計算コストが高いため、GPUを積んだ大型マシンが必要というのが常識でしたが、それを小型のエッジデバイス上で実現させたのがこのIntelのStickです。日本での発売予定日はまだ三ヶ月以上先ですが、今回の学会で一部の研究者向けに先行販売を行うとの事でしたので、DeNAでも研究開発用にと一部確保してきました。CVPRでも数百個しか販売されていなく半日で売り切れたので、かなり貴重です。

cvpr2017_11.jpg

[ Movidius Neural Compute Stick ]

懇親会への参加

カンファレンス期間中、毎晩のようにビーチやナイトクラブで懇親会が行われていました。そのほとんどがクローズドなもので、特定の企業のメンバーもしくは招待状を受けとった人しか参加できないようになっています。ACCV(アジア地域で開催されるComputer Visionの国際学会)のメンバーの懇親会では、AIの世界的な権威者であるTakeo Kanade先生やFei-Fei Li先生のスピーチに会場が沸きました。

cvpr2017_12.jpg

[ ACCV懇親会でのTakeo Kanade先生のスピーチ ]

注目の論文

今回CVPRで発表された論文の中で、特筆すべきものをいくつか紹介します。

- DenseNet

まず、今年のBest Paperに選ばれた2本の論文のうち、1つがこちらのDensely Connected Convolutional Networks (Gao Huang et al.)です。

cvpr2017_13.png

[ Dense blockの構成 ]

この論文が最初に発表されたのは2016年の8月頃で、当時Image-Classificationタスク(画像に映った物体の種類を分類する問題)におけるState-Of-The-ArtだったResNetのSkip Connection構造を取り入れた密な結合構造「Dense Block」を提案しています。各層の入力に、それより以前の全ての層の出力を結合した結果を使うというシンプルなネットワークアーキテクチャです。汎化性能が高く、パラメータ数の少なさと精度においてResNetを上回る性能を示しています。

- SimGAN

2本のBest Paperのうち、もう1本がこちらのLearning from Simulated and Unsupervised Images through Adversarial Training(Ashish Shrivastava et al.)です。

cvpr2017_14.jpg

[ SimGANの展示ポスター ]

こちらは、GAN(Generative Adversarial Nets)の手法を用いて、シミュレータから生成されたCGデータを現実画像に見えるように変換して、現実の画像と見分けづらくさせる手法です。そもそもなぜこれが重要かと言うと、Deep Learningの世界では訓練データの多さがそのまま計算結果の精度に直結するため、データが多くあればあるほど有利です。しかしリアルのデータを集めて、それにラベルを付けていく事は非常に大変なので、これをシミュレータから無限に生成できないかというアプローチです。シミュレータから生成された画像は通常、リアルの画像と比べてどうしても不自然さが生じますが、その不自然さをなくす事に成功したのがこちらの論文です。

Loss Functionの設計が特徴的で、シミュレータのデータにリアリズムを付与するAdversarial Lossと、元々のアノテーション情報を失わないようにするためのSelf-regularization Lossという2つのLossを定義しています。この仕組によって、一部のUnsupervisedなリアルデータさえあれば、シミュレータから無限に教師データを生成できる画期的な手法です。

- YOLO9000

今回のCVPRではBest Paperとは別に、Best Honorable mention awardという特別賞のPaperも2本ありました。そのうちの1本がこちらのYOLO9000: Better, Faster, Stronger(Joseph Redmon et al.)です。

cvpr2017_15.png

[ YOLO9000のポスターセッション ]

YOLO9000は、画像内から特定の物体の位置と種類を含めて検出する「一般物体検出」の手法に関する論文です。従来の手法よりも遥かに高速、高精度かつ多種の物体を検出できるようにしたフレームワークを提案しています。 YOLO9000自体の技術Demoも凄いですが、それ以上に今回展示されたポスターが独特すぎると話題を呼びました。通常であれば学会に出すポスターは論文の解説ポスターと相場が決まっているところを、原則を完全無視して広告的な意味でのデザインポスターを展示してくるあたり、さすがすぎるとツイッター等のSNSで一時期話題となりました。 ちなみにこちらのYOLO900の論文は、自分のほうで部分的に再現実装したYOLOv2 Chainerバージョンというリポジトリをオープンソースで公開しています。皆さん興味あればぜひ使ってみてください。

- Polygon RNN

2本の特別賞のPaperのうち、もう一本がこちらのAnnotating Object Instances with a Polygon-RNN(Lluis Castrejon et al.)です。

cvpr2017_16.png

[ Polygon-RNNのツール画面 ]

こちらの論文では、Semantic Segmentationの教師データを作る際のアノテーションコスト削減の仕組みを提案しています。通常であれば、セグメンテーション用の教師データを作るのに、物体のピクセル領域全域を細かく塗りつぶす必要があったところを、こちらの論文では複数の頂点によって構成された多角形の頂点推測問題に置き換えています。アノテーターは物体の外接矩形であるBounding Boxを与えてあげれば、RNNの仕組みで内部のオブジェクトに対して自動的に頂点候補を生成してくれます。生成された頂点がズレている場合は、アノテーターは最低限の頂点修正作業のみ行えば済みます。これによって従来の4〜7倍もの作業効率を実現できるという画期的なフレームワークです。 ちなみにアノテーション効率化に関するPaperは、このPolygon-RNN以外にもTraining object class detectors with click supervision(Dim P. Papadopoulos et al.)というのがありました。こちらは、Bounding Boxのアノテーション作業をワンクリックで行えるようにしたという画期的な手法を提案しています。

全体の感想

今年のCVPRはやはりというべきか、CNNをベースとした論文がほとんどでした。また、その多くが、計算のパイプラインを複雑化する事で高い精度を達成できたという、手法的な新規性に関するものでした。私たちの研究チームでもこれから学会に技術論文を発表していく予定なので、良い参考にはなったと思います。 今回のCVPRで発表されたOralやSpotlightのプレゼンは基本的に、こちらのYouTubeですべて動画で見られますが、実際に行ってみると論文の気になる点を作者に直に聞けたり、あとネットワーキングもできる等のメリットがあります。自分は今回がCVPR初参加でしたが、技術的な収穫はもちろん、ネットワークも広がって凄く良い刺激になりました。

cvpr2017_17.jpg

[ おまけ:Fei-Fei Liとの写真 ]

続きを読む
ツイート
シェア
あとで読む
ブックマーク
送る
メールで送る

Google機械学習系API勉強会レポート

AIシステム部の奥村(@pacocat)です。AIシステム部では、AI研究開発グループに所属しており、主に強化学習を用いたゲームAIの研究開発を行っています。 DeNAでは、様々な事業ドメインのデータを実際に使いながら機械学習を使ったサービス開発を推進しており、中でもゲームは豊富なデータ・シミュレーターがあるため、最先端のアルゴリズムを動かすための環境を自前で持っているのが特徴です。

全社的にも機械学習サービスのニーズが高まっている背景の中、7/5にGoogle様による機械学習系API勉強会が当社セミナールームにて開催されました。今回は、勉強会の内容をブログでレポートしたいと思います。

Googleといえば、先日開催されたGoogle I/O 2017でも"AI first"というメッセージが改めて強調されていましたが、実際にGoogle LensやGoogle Homeなど機械学習を活用したサービス・プロダクトが次々と登場し、注目が集まっています。

[最近話題になっていた"Democratizing AI(AIの民主化)"についてなど、AI関連の取り組みについてはこちらのGoogle Cloud Next'17の動画をご覧ください]

このセミナーでは、Google Cloud, ソリューションアーキテクトの中井悦司さんにお越しいただき、

  • Googleでどのようにディープラーニングを活用しているのか
  • Google Cloud Platform(GCP)が提供する機械学習サービス
  • 機械学習のビジネス適用における考え方

といったテーマについてお話いただきました。

昨今「人工知能」を利用したビジネス期待が急激に高まっていますが、中井さんはそうした期待値と実際の機械学習ソリューション開発のギャップを適切に埋めるため、機械学習の啓蒙やGCPを使った技術支援全般を行っています。

google_ai_api2.png

セミナーの様子(100名程度の社内エンジニアが参加していました)

※以下、主にディープラーニングに関連した学習技術を含め「機械学習」という用語を使いますが、「機械学習」と「ディープラーニング」の区別が必要な場合は明示的に「ディープラーニング」と記載します。

Googleでなぜ機械学習を活用するか

そもそも、Googleではどのように機械学習が取り入れられているのでしょうか。 「1クリックで世界の情報へアクセス可能にする」という企業ミッションを耳にすることもありましたが、モバイル市場の拡大に伴い、情報へのアクセス手段もクリックに限らなくなってきました(※参考:Searching without a query)。

そうした背景のもと、音声や画像入力に対応するため、サービスを支える機械学習技術が強くなっていったのは必然的な変化だったのでしょう。実際、Googleでは様々な機械学習(特にディープラーニングを使った)技術が開発されています。セミナーでは、そうした技術の中でもホットなものを紹介していただきました。

Wavenet(DeepMind社による音声合成技術)

Wavenetは、ニューラルネットワークを使って音声のデジタルデータを直接出力するモデルです。従来の、音素に分解してつなぎ合わせるパラメトリックな手法に比べて音声生成精度が飛躍的に向上しました。いずれは、人間の発話と区別がつかなくなってくるようになるかもしれません。 また、人間の音声に限らず、楽器の音を集めてトレーニングすることで、自動作曲が出来ることも話題になりました。

google_ai_api3.png

DeepMind Technologies Limited, "Wavenet",
https://deepmind.com/blog/wavenet-generative-model-raw-audio/
(accessed: 2017-07-13)

Gmail Smart Reply

自然言語処理の分野でも新しいサービスが提供されています。現在は英語モードのGmailのみが対象となっていますが、スマホでGmailを開くとメールの文脈を理解して、返答文の候補を生成してくれるサービスです。ここにも文脈理解のためのディープラーニング技術が活用されています。
※現在はモバイルGmailアプリからの返信の20%程度で、この機能が利用されているそうです。

google_ai_api4.png

Google, "Save time with Smart Reply in Gmail",
https://www.blog.google/products/gmail/save-time-with-smart-reply-in-gmail/
(accessed: 2017-07-13)

データセンターの冷却効率改善(DeepMind社によるソリューション)

Google社内向けのソリューションも開発されています。DeepMind社は昨年、ディープラーニングと強化学習を組み合わせた技術でデータセンターの電力消費効率を最大40%削減することに成功しました。(※参考:DeepMind AI reduces energy used for cooling Google data centers by 40%
※この事例における技術の詳細は公開されていませんが、こちらに中井さんによる機械学習を使ったエネルギー効率予測についての解説があります。

他にも、Google Photosの一般物体画像認識技術など、様々な機械学習サービスが生み出されており、Google社内では機械学習のバックグラウンドを持っていないサービスエンジニアも社内トレーニングコースなどを活用して、機械学習モデルを使いこなしているそうです。

GCPが提供する機械学習サービス

さて、Googleでは一般ユーザーがこうした機械学習技術を活用できるためのサービスを提供しており、目的別に以下の二つの方向性に大別されます。

  • 学習済みモデルのAPIサービスを使う
    ⇒ ディープラーニング技術を今すぐに活用してみたい人向け
  • TensorFlowやCloud Machine Learning Engineのような環境を使って開発を行う
    ⇒ 独自モデルを作りたい人向け

google_ai_api5.png

Google社講演資料より

①学習済みモデルのAPIサービスを使う

Cloud Vision API

google_ai_api6.png

Google, "CLOUD VIDEO API",
https://cloud.google.com/vision/?hl=ja
(accessed: 2017-07-13)

Cloud Vison APIは、画像を渡すことで様々なラベル情報を取得することが出来ます。 上の例では、顔の検出だけでなく、顔が向いている方向・感情分析の結果が返ってくるAPIとなっています。

Cloud Natural Language API

Cloud Natural Language APIは、自然言語を分析するサービスです。文章の感情分析を行うことも可能で、お問い合わせメールの自動分類でカスタマーサポート業務を効率化するなど、導入事例が増えてきているそうです。

Cloud Video Intelligence API(β版)

google_ai_api7.png

Google, "CLOUD VIDEO INTELLIGENCE API",
https://cloud.google.com/video-intelligence/?hl=ja
(accessed: 2017-07-13)

現在はβ版が提供されていますが、Cloud Video Intelligence APIは、動画解析・検索が出来るサービスです。 動画のフレームを解析し、場面の切れ目を検知したり、場面ごとに何が映っているかを検出することが可能です。
※上の例では、"Elephant", "Elephants", "Animal", "African elephant"とったラベルが検出されています。

他にも様々なAPIが公開され、導入事例も増えてきているそうなので、気になる方はこちらをご覧ください。

②独自にモデルを1から作成する

上述のAPIは、既に学習が済んでいるモデルをそのまま使うパターンになりますが、自社のデータを使って独自にモデルを開発したい場合もあります。その場合は、TensorFlowのような機械学習フレームワークとCloud Machine Learning Engineのような(TensorFlowのGPU・分散学習機能に対応している)計算リソースを利用する方法があります。

③学習済みの公開モデルを利用して独自モデルを作成する

①と②を折衷したパターンです。独自モデルを作る場合、既存で提供されているAPIレベルのものを1から作るのは大変です。そこで、公開されているフレームワークや学習済みデータを活用することで独自モデルを作成する方法もあります。これは転移学習と呼ばれている手法で、既に学習されたネットワークを独自にチューニング・カスタマイズすることで、1から学習をするよりも効率的に開発が行えるメリットがあります。 セミナーでは、TensorFlow Object Detection APIを使った簡単なアプリのデモが行われていました。(※デモアプリの作成方法は、こちらの記事で公開されています。)

google_ai_api8.png

https://github.com/tensorflow/models/tree/master/object_detection
(accessed: 2017-07-13)

機械学習のビジネス適用における考え方

セミナーの後半では、機械学習を実ビジネスに適用する際、どのような点に気をつけないといけないか、リアルなプロジェクト視点で講演を行っていただきました。

まず、ディープラーニングは非構造化データ(画像・動画・音声・自然言語)に高い性能を発揮する特性がある一方で、適応領域はまだ限定的です。データが不十分だったり、まだ実証されていない事を実現する場合のハードルは高いと考えたほうがいいという話がありました。 ディープラーニングはあくまでツールの一つでしかなく、それだけで凄いサービスが作れるかというとそうではありません。あくまでビジネスの中でディープラーニングが上手くハマるところを見つけていく、という関わり方が大事という話が印象的でした。

続いて、(ディープラーニング以外の)従来の機械学習をサービスに導入する際には、データアナリストによるデータとビジネスに対する知見が必要、というポイントが紹介されました。従来の一般的な機械学習では、構造化データによる予測処理がサービス適用の中心となります。そうした予測は、一般的な統計分析(いわゆるBI)が出発点になるため、あらかじめデータを整備しサービス分析が出来ていることが前提になる、というニュアンスです。

ここで、データ分析に対する考え方を整理しましょう。データ分析のプロセスについて、次のような理解をされることがあるそうです(下図の矢印のサイクル)

  • 手元にデータが存在しており、データアナリストはそこからインサイトを得るために様々な集計や機械学習モデルの実験を繰り返す
  • そうして作られた機械学習モデルによって、未知のデータに対する予測が出来るようになる
  • データ予測がビジネスに使えないか検討する

google_ai_api9.png

Google社講演資料より

しかし、本来のゴールである「ビジネス判断」を考えると、このループを逆にたどる必要があります。

  • まず、ビジネスゴールを明確にする(一番大事な出発点)
  • ビジネスゴールを実現するために、何を予測すべきかを決める
  • 予測に必要な機械学習モデルやデータを洗い出す
  • そうしたデータを集め、分析するためにはどのような活動をしないといけないのか

当たり前じゃないかと思われる方がほとんどだと思いますが、改めて大事な視点だと感じました。

話はさらに機械学習エンジニアとビジネスのコミュニケーションにも踏み込んでいきました。 機械学習はやってみないとどれくらいの精度が出るか分からない、という不確実な要素が強い領域です。ただ、だからといって素直に「やってみないと分からない」とコミュニケーションするだけでは何も進められないのも現実です。

機械学習は実験的な要素を含んでいるんだとエンジニアとビジネスサイドで共通認識を持った上で、影響範囲を適切に見極めながら実際にサービスに機械学習を組み込んでみて、リアルに実験をしていくのが重要だというのが中井さんの主張です。そうして知見が溜まることで、機械学習をビジネスで使う勘所をサービスメンバー全体で持てるようになるのではないでしょうか。

google_ai_api10.png

Google社講演資料より

まとめ

最新の機械学習系APIの紹介から、ビジネス適用まで、様々な観点から機械学習サービスについてのエッセンスをまとめていただきました。特に後半の機械学習サービス開発の注意点については、なかなかこうした形でまとめて聞く機会も少ないので、改めて機械学習を使ったサービスについて考えるきっかけになったのではないでしょうか。AIシステム部では、様々なAI案件でビジネスメンバーと一緒にサービスをデザインして組み立てていくことが多く、機械学習に対する共通認識や社内文化の作り方など、参考になる観点が多かったように思います。

今回カバーしきれなかった内容を扱った第二回も検討されているそうなので、楽しみです!

続きを読む
ツイート
シェア
あとで読む
ブックマーク
送る
メールで送る