SlideShare a Scribd company logo
1 of 12
Download to read offline
#19 Two-Phase Predictions
2021.5.11 Machine Learning
Design Patterns 読書会
mukai
Problem
◻ モバイル機器や小型コンピュータのようなエッジデバイスで
(比較的大きくて複雑な)モデルの推論を行いたい
◻ エッジデバイスの制約
常にインターネットに接続されているわけではない
大きなサイズのモデルは搭載できない
推論を行う頻度も多くはできない
推論に時間を掛けることもできない(低レイテンシー)
◻ 量子化にもトレードオフ
モデルのサイズとレイテンシーの削減方法の一つとして量子化があり、
TensorFlow Lite が利用可能であるが、性能とはトレードオフ
Solution
◻ 問題を2つのフェーズ(パート)に分ける
フェーズ1:シンプルな推論をエッジで行う
フェーズ2:より複雑な推論はクラウドで行う
※問題が2つのフェーズに分解できることが前提
例)Google Home
フェーズ1)音声が「
OK Google」かどう
かの二値分類のみ行う
フェーズ2)音声の
意味を理解する推論
を行う
音声が OK Google でない
場合は何もしない
<その他の例>
・工場での機械の異常検知
 1)機械からの異音の検知
 2)異音が機械の異常によるものかど
うかの判別
・絶滅危惧動物の特定と追跡
 1)カメラ画像に絶滅危惧動物が写っ
ているかどうかの検知
 2)動物の種類を判別
実施例
◻ 楽器の音の認識
楽器以外の音も含む約9000個の音のデータセット(from Kaggle)を例として
■ 41種類の音のラベル(うち18種類が楽器の音)
■ 音の入力に対して、楽器の音であれば、楽器の種類を出力する
以下の2つのフェーズに分ける
■ フェーズ1:楽器の音かどうかの二値分類(エッジ)
■ フェーズ2:楽器の種類の判別(クラウド)
音の入力を画像として処理
■ 音をスペクトログラムに変換
サックスの音のスペクトログラム画像
縦軸:
周波数
横軸:時間
フェーズ1)エッジ側モデルの構築
◻ 楽器の音かどうかの二値分類を行うモデル
要件:小さいサイズ、オフライン、高速な推論
◻ MobileNetV2 のアーキテクチャを転用(転移学習)して構築
Keras では、MobileNetV2が組み込み済みで、ダイレクトに使える。
ImageNet で学習済みのMobileNetV2の最終層(ボトルネック層)より手
前までの部分を転用(転移学習)。係数は固定。 最終層を、Global Average Pooling と全結合層で置き換えて、
楽器の音かどうかを判別する
0〜1の値を1つ出力する。
※性能を更に追求する場合には、
Progressive Fine Tuning やハイパーパラメータ探索をしてもよい。
フェーズ1)エッジ側モデルの構築
◻ 学習したモデルをTensorFlow Lite形式に変換
係数を8ビット表現に置き換えるなどの量子化が行われサイズが約
1/4になる
TensorFlow Liteに変換するコード例
TF Lite 形式のファイルにモデルを保存し、
推論の際にはこのファイルを読み込んで用いる。
<エッジにはどんなモデルが良いのか?>
・量子化などによるサイズ削減に伴う精度低下を考えると、経験則的
には、よりシンプルで、複雑でないモデルが良い。
・多クラス判別よりも二値分類の方が好ましい。決定木や線形回帰な
どの複雑でないモデルを可能であれば選択する。
・それができない場合には、
Coral Edge TPUやJetson Nanoといっ
た専用のハードウェアを検討してみてもよい。
※エッジデバイスが、インターネットに常に接続されているわけでない場合は、オフライン
時は音声データを一時的に溜め込み、オンラインになった際に、
クラウドに送信してもよい。
フェーズ2)クラウド側モデルの構築
◻ 楽器の種類を判別するモデル
特に制約は無いので、ユースケースに応じて様々な形を取りうる。
■ Google Home の場合は、音声をテキストに変換するモデル、音声の内容を理解する自然言語処理のモデル、
ユーザーの属性や過去の履歴に応じた更にレコメンデーションを行うモデルの計3モデルを使っている。
◻ VGGのアーキテクチャを転用(転移学習)して構築
Google AI Platform, AWS SageMakerなど任意のクラウドプラットフォームを利用可能
ImageNet で学習済みのVGG19を転用。
係数は固定。
最終層を、Global Average Pooling と全結合層で置き換えて、
楽器の種別を判別する18 次元の One-Hot Vector を出力する。
※性能を更に追求する場合には、
Progressive Fine Tuning やハイパーパラメータ探索をしてもよい。
Trade-Offs and Alternatives
◻ インターネット接続が全く期待できない場合
スタンドアローンの Single-Phase モデル
■ Two-Phase Predictions は適用できない。
■ オフライン版のモデル(性能は劣るがサイズを小さくしたもの)も併せて作成し、ユーザー
にオプションとして提供する。
■ 出来る限り性能を落とさないように、学習の段階から推論時の量子化をエミュレートして学
習を行う(量子化認識トレーニング )のがよい。
<スタンドアローンSingle-Phase モデルの例>
Google 翻訳:ダウンロードしてオフラインでも利用可能。
オフライン版でも性能が出せるにようになってきた。
Google Bolo: 英語学習用のリーディングアシスタ
ントアプリ(アプリ名: Read Along)
ユーザーの英語読み上げ音声を認識し、学習を
補助する。途上国などでの利用を想定して、完全
にオフライン完結のアプリ。
Trade-Offs and Alternatives
◻ インターネット接続はあるが最低限の場合
よく使われる機能はオフラインにする or クラウド側モデルの結果を後にも
再利用できるようキャッシュしておくなどの対応をする。
■ Two-Phase Predictions ではあるが、フェーズ1の機能を限定的にする。
<部分的にオフラインの例>
Google Maps のオフライン地図 Fitness アプリ
利用頻度の高い万歩計などの機能は、オフライ
ンでも利用できるようにしておき、オンライン時に
過去の履歴の参照やレコメンデーションなどの
フル機能を提供するなど。
よく使われる運転ルート表示の機能はオフラインでも
提供するが、歩行ルートや自転車ルートの表示機能は
オンライン時に提供するなど。
Trade-Offs and Alternatives
◻ 同時に沢山の推論を行う必要がある場合
全てクラウドで処理するには負荷が大きい
■ エッジ側で事前の選別を行い、クラウド側の処理負荷を抑える。
■ エッジデバイスでも複雑な推論を行いたいというよりは、
クラウド側の過度な負荷を避けるために Two-Phase Predictions を利用する例
<例>
 工場でのセンサ値の異常検知
フェーズ1)
エッジセンサー側でも
異常検知処理を行う
異常と疑わしき場合だけ
クラウドにデータ送信
(定期的にやってくるセンサ値を全
てクラウドに送信するのは
クラウド側の負荷大なので)
フェーズ2)
複数箇所からのセンサ
データを全て使って
異常の判定
Trade-Offs and Alternatives
◻ モデルの継続的な評価(Continuous Evaluation)を行う場合
データが常にクラウドに送られているわけでないので、推論のデータセットを定期的
にデバイス上に保存する。
■ 再学習の必要性を定期的に評価する。
もしくは、エッジ側モデルの複製を(クラウド上にも)作成する。
■ それを定期的に評価する。
■ Google 翻訳などエッジとクラウドで似たようなタスクを行うケースが好ましい。
まとめ
◻ Problem
大きくて複雑なモデルの推論をエッジデバイスでも行いたい
◻ Solution
問題を2つのフェーズに分ける
■ フェーズ1)シンプルな推論をエッジ側では行う
■ フェーズ2)必要に応じて、より複雑な推論をクラウド側で行う
ただし、問題がそのように切り分けられる場合
◻ Trade-Offs and Alternatives
エッジ側のインターネット接続が期待できない場合は、スタンドアロン版や
機能限定版の提供を検討する。
クラウド側の過度な負荷を避けるために本パターンを適用する(エッジ側で
事前選別する)こともできる。

More Related Content

Similar to 20210511 grass roots_ml_design_patterns_two_phase_predictions

D1-2-OS2_オンプレミスのVMワークロードをGCPへ移行する
D1-2-OS2_オンプレミスのVMワークロードをGCPへ移行するD1-2-OS2_オンプレミスのVMワークロードをGCPへ移行する
D1-2-OS2_オンプレミスのVMワークロードをGCPへ移行するHideaki Tokida
 
190418 titech robotics
190418 titech robotics190418 titech robotics
190418 titech roboticsNoriakiAndo
 
東京工業大学「ロボット技術・ロボットミドルウェア」
東京工業大学「ロボット技術・ロボットミドルウェア」東京工業大学「ロボット技術・ロボットミドルウェア」
東京工業大学「ロボット技術・ロボットミドルウェア」NoriakiAndo
 
「歩留り」で管理するストリーミング配信 2013 3-21
「歩留り」で管理するストリーミング配信 2013 3-21「歩留り」で管理するストリーミング配信 2013 3-21
「歩留り」で管理するストリーミング配信 2013 3-21Yoichiro Takehora
 
2024年度 東京工業大学「ロボット技術」 ロボットミドルウェア (2024年4月11日)
2024年度 東京工業大学「ロボット技術」 ロボットミドルウェア (2024年4月11日)2024年度 東京工業大学「ロボット技術」 ロボットミドルウェア (2024年4月11日)
2024年度 東京工業大学「ロボット技術」 ロボットミドルウェア (2024年4月11日)NoriakiAndo
 
Fabric connect-the-quiet-revolution-white-paper-japanese
Fabric connect-the-quiet-revolution-white-paper-japaneseFabric connect-the-quiet-revolution-white-paper-japanese
Fabric connect-the-quiet-revolution-white-paper-japaneseBin Han
 
言語差異によるTDDプロセスへの影響度の解析
言語差異によるTDDプロセスへの影響度の解析言語差異によるTDDプロセスへの影響度の解析
言語差異によるTDDプロセスへの影響度の解析pocketberserker
 
230420_東工大授業「ロボット技術」資料.pdf
230420_東工大授業「ロボット技術」資料.pdf230420_東工大授業「ロボット技術」資料.pdf
230420_東工大授業「ロボット技術」資料.pdfNoriakiAndo
 
B1 SORACOMを使ったIoTプロジェクトの始め方/進め方: その要件、SORACOMが提供するサービスやデバイスで満たせませんか? | SORACO...
B1 SORACOMを使ったIoTプロジェクトの始め方/進め方: その要件、SORACOMが提供するサービスやデバイスで満たせませんか? | SORACO...B1 SORACOMを使ったIoTプロジェクトの始め方/進め方: その要件、SORACOMが提供するサービスやデバイスで満たせませんか? | SORACO...
B1 SORACOMを使ったIoTプロジェクトの始め方/進め方: その要件、SORACOMが提供するサービスやデバイスで満たせませんか? | SORACO...SORACOM,INC
 
オブジェクトストレージの適用領域とCloudianの位置づけ (Cloudian Summit 2012)
オブジェクトストレージの適用領域とCloudianの位置づけ (Cloudian Summit 2012)オブジェクトストレージの適用領域とCloudianの位置づけ (Cloudian Summit 2012)
オブジェクトストレージの適用領域とCloudianの位置づけ (Cloudian Summit 2012)CLOUDIAN KK
 
世界標準のソフトウェア工学知識体系SWEBOK Guide最新第4版を通じた開発アップデート
世界標準のソフトウェア工学知識体系SWEBOK Guide最新第4版を通じた開発アップデート世界標準のソフトウェア工学知識体系SWEBOK Guide最新第4版を通じた開発アップデート
世界標準のソフトウェア工学知識体系SWEBOK Guide最新第4版を通じた開発アップデートHironori Washizaki
 
【メタサーベイ】基盤モデル / Foundation Models
【メタサーベイ】基盤モデル / Foundation Models【メタサーベイ】基盤モデル / Foundation Models
【メタサーベイ】基盤モデル / Foundation Modelscvpaper. challenge
 
VentureCafe_第2回:SIerでのキャリアパスを考える_ござ先輩発表資料 V1.0
VentureCafe_第2回:SIerでのキャリアパスを考える_ござ先輩発表資料 V1.0VentureCafe_第2回:SIerでのキャリアパスを考える_ござ先輩発表資料 V1.0
VentureCafe_第2回:SIerでのキャリアパスを考える_ござ先輩発表資料 V1.0Michitaka Yumoto
 
物体検出コンペティションOpen Imagesに挑む
物体検出コンペティションOpen Imagesに挑む物体検出コンペティションOpen Imagesに挑む
物体検出コンペティションOpen Imagesに挑むHiroto Honda
 
失敗しない!Androidアプリ開発最前線!
失敗しない!Androidアプリ開発最前線!失敗しない!Androidアプリ開発最前線!
失敗しない!Androidアプリ開発最前線!Masahiro Hidaka
 
オープンソースプロジェクト E2D3のご紹介
オープンソースプロジェクト E2D3のご紹介オープンソースプロジェクト E2D3のご紹介
オープンソースプロジェクト E2D3のご紹介Hideyuki Takeuchi
 
キンドリル_Help@Web_Help@Mobile.pdf
キンドリル_Help@Web_Help@Mobile.pdfキンドリル_Help@Web_Help@Mobile.pdf
キンドリル_Help@Web_Help@Mobile.pdfTakayuki Nakayama
 
JSAI 2020 1J5-GS-2-01 TensorShader 高次元ニューラルネットワーク深層学習フレームワーク
JSAI 2020 1J5-GS-2-01 TensorShader 高次元ニューラルネットワーク深層学習フレームワークJSAI 2020 1J5-GS-2-01 TensorShader 高次元ニューラルネットワーク深層学習フレームワーク
JSAI 2020 1J5-GS-2-01 TensorShader 高次元ニューラルネットワーク深層学習フレームワークTakuma Yoshimura
 

Similar to 20210511 grass roots_ml_design_patterns_two_phase_predictions (20)

D1-2-OS2_オンプレミスのVMワークロードをGCPへ移行する
D1-2-OS2_オンプレミスのVMワークロードをGCPへ移行するD1-2-OS2_オンプレミスのVMワークロードをGCPへ移行する
D1-2-OS2_オンプレミスのVMワークロードをGCPへ移行する
 
190418 titech robotics
190418 titech robotics190418 titech robotics
190418 titech robotics
 
東京工業大学「ロボット技術・ロボットミドルウェア」
東京工業大学「ロボット技術・ロボットミドルウェア」東京工業大学「ロボット技術・ロボットミドルウェア」
東京工業大学「ロボット技術・ロボットミドルウェア」
 
「歩留り」で管理するストリーミング配信 2013 3-21
「歩留り」で管理するストリーミング配信 2013 3-21「歩留り」で管理するストリーミング配信 2013 3-21
「歩留り」で管理するストリーミング配信 2013 3-21
 
2024年度 東京工業大学「ロボット技術」 ロボットミドルウェア (2024年4月11日)
2024年度 東京工業大学「ロボット技術」 ロボットミドルウェア (2024年4月11日)2024年度 東京工業大学「ロボット技術」 ロボットミドルウェア (2024年4月11日)
2024年度 東京工業大学「ロボット技術」 ロボットミドルウェア (2024年4月11日)
 
Fabric connect-the-quiet-revolution-white-paper-japanese
Fabric connect-the-quiet-revolution-white-paper-japaneseFabric connect-the-quiet-revolution-white-paper-japanese
Fabric connect-the-quiet-revolution-white-paper-japanese
 
言語差異によるTDDプロセスへの影響度の解析
言語差異によるTDDプロセスへの影響度の解析言語差異によるTDDプロセスへの影響度の解析
言語差異によるTDDプロセスへの影響度の解析
 
230420_東工大授業「ロボット技術」資料.pdf
230420_東工大授業「ロボット技術」資料.pdf230420_東工大授業「ロボット技術」資料.pdf
230420_東工大授業「ロボット技術」資料.pdf
 
B1 SORACOMを使ったIoTプロジェクトの始め方/進め方: その要件、SORACOMが提供するサービスやデバイスで満たせませんか? | SORACO...
B1 SORACOMを使ったIoTプロジェクトの始め方/進め方: その要件、SORACOMが提供するサービスやデバイスで満たせませんか? | SORACO...B1 SORACOMを使ったIoTプロジェクトの始め方/進め方: その要件、SORACOMが提供するサービスやデバイスで満たせませんか? | SORACO...
B1 SORACOMを使ったIoTプロジェクトの始め方/進め方: その要件、SORACOMが提供するサービスやデバイスで満たせませんか? | SORACO...
 
オブジェクトストレージの適用領域とCloudianの位置づけ (Cloudian Summit 2012)
オブジェクトストレージの適用領域とCloudianの位置づけ (Cloudian Summit 2012)オブジェクトストレージの適用領域とCloudianの位置づけ (Cloudian Summit 2012)
オブジェクトストレージの適用領域とCloudianの位置づけ (Cloudian Summit 2012)
 
世界標準のソフトウェア工学知識体系SWEBOK Guide最新第4版を通じた開発アップデート
世界標準のソフトウェア工学知識体系SWEBOK Guide最新第4版を通じた開発アップデート世界標準のソフトウェア工学知識体系SWEBOK Guide最新第4版を通じた開発アップデート
世界標準のソフトウェア工学知識体系SWEBOK Guide最新第4版を通じた開発アップデート
 
【メタサーベイ】基盤モデル / Foundation Models
【メタサーベイ】基盤モデル / Foundation Models【メタサーベイ】基盤モデル / Foundation Models
【メタサーベイ】基盤モデル / Foundation Models
 
VentureCafe_第2回:SIerでのキャリアパスを考える_ござ先輩発表資料 V1.0
VentureCafe_第2回:SIerでのキャリアパスを考える_ござ先輩発表資料 V1.0VentureCafe_第2回:SIerでのキャリアパスを考える_ござ先輩発表資料 V1.0
VentureCafe_第2回:SIerでのキャリアパスを考える_ござ先輩発表資料 V1.0
 
物体検出コンペティションOpen Imagesに挑む
物体検出コンペティションOpen Imagesに挑む物体検出コンペティションOpen Imagesに挑む
物体検出コンペティションOpen Imagesに挑む
 
Lt1
Lt1Lt1
Lt1
 
失敗しない!Androidアプリ開発最前線!
失敗しない!Androidアプリ開発最前線!失敗しない!Androidアプリ開発最前線!
失敗しない!Androidアプリ開発最前線!
 
オープンソースプロジェクト E2D3のご紹介
オープンソースプロジェクト E2D3のご紹介オープンソースプロジェクト E2D3のご紹介
オープンソースプロジェクト E2D3のご紹介
 
Hudson (JJUG CCCにて)
Hudson (JJUG CCCにて)Hudson (JJUG CCCにて)
Hudson (JJUG CCCにて)
 
キンドリル_Help@Web_Help@Mobile.pdf
キンドリル_Help@Web_Help@Mobile.pdfキンドリル_Help@Web_Help@Mobile.pdf
キンドリル_Help@Web_Help@Mobile.pdf
 
JSAI 2020 1J5-GS-2-01 TensorShader 高次元ニューラルネットワーク深層学習フレームワーク
JSAI 2020 1J5-GS-2-01 TensorShader 高次元ニューラルネットワーク深層学習フレームワークJSAI 2020 1J5-GS-2-01 TensorShader 高次元ニューラルネットワーク深層学習フレームワーク
JSAI 2020 1J5-GS-2-01 TensorShader 高次元ニューラルネットワーク深層学習フレームワーク
 

More from hitoshim

20210525 grass roots_ml_design_patterns_heuristic_benchmark
20210525 grass roots_ml_design_patterns_heuristic_benchmark20210525 grass roots_ml_design_patterns_heuristic_benchmark
20210525 grass roots_ml_design_patterns_heuristic_benchmarkhitoshim
 
20210518 grass roots_ml_design_patterns_windowed_inference
20210518 grass roots_ml_design_patterns_windowed_inference20210518 grass roots_ml_design_patterns_windowed_inference
20210518 grass roots_ml_design_patterns_windowed_inferencehitoshim
 
20210427 grass roots_ml_design_patterns_hyperparameter_tuning
20210427 grass roots_ml_design_patterns_hyperparameter_tuning20210427 grass roots_ml_design_patterns_hyperparameter_tuning
20210427 grass roots_ml_design_patterns_hyperparameter_tuninghitoshim
 
20210420 ml design_patterns_rebalancing
20210420 ml design_patterns_rebalancing20210420 ml design_patterns_rebalancing
20210420 ml design_patterns_rebalancinghitoshim
 
20210413 ml design_patterns_multimodal_inputs.pptx
20210413 ml design_patterns_multimodal_inputs.pptx20210413 ml design_patterns_multimodal_inputs.pptx
20210413 ml design_patterns_multimodal_inputs.pptxhitoshim
 
20200527 time series-anomaly_detection_at_microsoft
20200527 time series-anomaly_detection_at_microsoft20200527 time series-anomaly_detection_at_microsoft
20200527 time series-anomaly_detection_at_microsofthitoshim
 

More from hitoshim (6)

20210525 grass roots_ml_design_patterns_heuristic_benchmark
20210525 grass roots_ml_design_patterns_heuristic_benchmark20210525 grass roots_ml_design_patterns_heuristic_benchmark
20210525 grass roots_ml_design_patterns_heuristic_benchmark
 
20210518 grass roots_ml_design_patterns_windowed_inference
20210518 grass roots_ml_design_patterns_windowed_inference20210518 grass roots_ml_design_patterns_windowed_inference
20210518 grass roots_ml_design_patterns_windowed_inference
 
20210427 grass roots_ml_design_patterns_hyperparameter_tuning
20210427 grass roots_ml_design_patterns_hyperparameter_tuning20210427 grass roots_ml_design_patterns_hyperparameter_tuning
20210427 grass roots_ml_design_patterns_hyperparameter_tuning
 
20210420 ml design_patterns_rebalancing
20210420 ml design_patterns_rebalancing20210420 ml design_patterns_rebalancing
20210420 ml design_patterns_rebalancing
 
20210413 ml design_patterns_multimodal_inputs.pptx
20210413 ml design_patterns_multimodal_inputs.pptx20210413 ml design_patterns_multimodal_inputs.pptx
20210413 ml design_patterns_multimodal_inputs.pptx
 
20200527 time series-anomaly_detection_at_microsoft
20200527 time series-anomaly_detection_at_microsoft20200527 time series-anomaly_detection_at_microsoft
20200527 time series-anomaly_detection_at_microsoft
 

20210511 grass roots_ml_design_patterns_two_phase_predictions