レポート

モバイルの枠を超えたAndroidの技術を語る DroidKaigi 2018参加レポート

この記事を読むのに必要な時間:およそ 3 分

2018年2月8日から9日の2日間にわたって,ベルサール新宿グランドにてDroidKaigi 2018が開催されました。今回でDroidKaigiの開催は4回目,参加者数は1,000名規模のカンファレンスとなりました。セッションの応募総数も300件を超え,海外からの応募・参加も多数受け付けるなど,日本国内に限らず世界からも注目を集めるイベントとなりました。

DroidKaigi 2018ではテーマを「ニッチ」とし,幅広く内容の濃い発表を募集しました。本稿ではそのなかから,⁠AI is ready for you. Are you ready for AI?」「アプリをエミュレートするアプリの登場とその危険性」の2つのセッションをピックアップして紹介します。

AI is ready for you. Are you ready for AI?

このセッションは,昨年のGoogleI/Oでも話題にあがったTensorFlowをAndroidで動かす方法から,開発者がモデルを構築しアプリに組み込むまでの一通りの流れを解説しました。

セッションの登壇者である@rejasupotaro氏が冒頭で「AIはアカデミックな領域を超えて,今や私たちが日々利用するアプリケーションでも活用されはじめ,プロダクション環境でも充分に動作できる状態になっている」と述べたように,様々なアプリケーションがユーザの次の行動を予測したり,ユーザのおかれた状況から確度の高い情報を抽出したりして次に何をすればよいかを提案する機能をリリースしはじめています。昨年のGoogleI/OではAI Firstというテーマのもと,Android 8.1 OreoからNeural Networks APIが組み込まれることと,TensorFlow Liteと呼ばれるモバイル端末で機械学習を動作させる軽量なライブラリが発表されました。また,AIや簡単な機械学習を組み込んだアプリが2017年のベストアプリに選出されていることからも,AIに対する注目度の高さがうかがえます。

Cookpad, Inc. @rejasupotaro氏

画像

@rejasupotaro氏は,TensorFlowはレゴのように要素をつなぎ合わせてComputation Graphを構築するためのツールキットであると説明します。Googleの公式なサポートのもとで開発され,モバイル端末を含む様々な環境で動作するように作られていることが,数多くある機械学習のツールキットの中でもTensorFlowを使用する大きなモチベーションであると述べています。

TensorFlowはモバイル向けに2種類のツールキットを用意しています。ひとつはTensorFlow Mobile,もうひとつはTensorFlow Liteです。TensorFlow MobileはC++で記述されたコアにアクセスするためのJavaのクラス群とAndroid向けに用意されたAPIを持っています。そしてTensorFlow Liteはモバイル端末に特化し,より軽量になっています。今後はTensorFlow MobileからTensorFlow Liteへと移行していくようです。

TensorFlowで学習済みのモデルを利用するのは非常に簡単です。他のライブラリを導入するときと同じようにTensorFlowを導入し,学習済みモデルを配置すれば,Javaのコードを記述するだけで利用できます。

モバイル端末というハードウェアリソースの限られた環境で機械学習を動かすには,モデルの最適化が必要だと@rejasupotaro氏は説明します。モバイル端末でTensorFlowを用いる場合,アプリケーションの機能として重要なものは実際のデータからの推論です。モデルの最適化は,Computation Graphに含まれるノードのうち推論では必要ない部分を減らすこと(Computation Graphの軽量化)⁠また端末のハードウェアスペックを考慮して再トレーニングを行うことの2つの事柄にフォーカスします。

モバイル向けTensorFlowでは,Graph DefinitionファイルとCheckpointファイルから最適化の過程を経て生成するモデルを利用します。最適化の過程にはFreeze・Optimize・Convertの3段階あり,これらの段階を経ることで推論で必要な部分のみをもつComputation Graphができます。@rejasupotaro氏は実際に最適化されたモデルのパフォーマンス計測についても取りあげ,ベンチマークツールによる計測結果の比較も行いました。モデルは小さいほど高速に動作し,かつアプリケーションに組み込んだときのファイルサイズも小さくなります。もし大きなモデルが必要な場合,@rejasupotaro氏はAPKファイルを分割したり,インストール後にネットワークからダウンロードできるようにする方法があると紹介しています。

著者プロフィール

横幕圭真(よこまくけいしん)

Drivemode, Inc. 所属。

2011年からAndroidアプリ開発に従事。SNSアプリの開発からフォトアルバムアプリの開発を経て,現在は米国のスタートアップで車のドライバー向けアプリの開発をしている。

Twitter:@KeithYokoma
GitHub:KeithYokoma

バックナンバー

2018年

  • モバイルの枠を超えたAndroidの技術を語る DroidKaigi 2018参加レポート

バックナンバー一覧