AutoML Vision 事例 〜 AutoML Visionでラーメン二郎全店舗識別を試す 〜

1.4K Views

July 11, 19

スライド概要

GoogleのAutoML Visionをラーメン二郎データセットを使って試しました、学習時間に対する識別精度や推論の処理時間等を含め詳しく紹介します。
(Google Developers ML Summit Tokyo vol 3 発表資料)
https://events.withgoogle.com/mlsummit-tokyo-vol3/

profile-image

2023年10月からSpeaker Deckに移行しました。最新情報はこちらをご覧ください。 https://speakerdeck.com/lycorptech_jp

シェア

またはPlayer版

埋め込む »CMSなどでJSが使えない場合

(ダウンロード不可)

関連スライド

各ページのテキスト
1.

AutoML Vision 事例 〜 AutoML Visionでラーメン⼆郎全店舗識別を試す 〜 Google Developers ML Summit Tokyo vol 3 2019 年7⽉11⽇ ⼟井 賢治 (@knjcode) 1

2.

本⽇の発表内容は 趣味で取り組んだ 成果をまとめたものです 2

3.

⽬次 ⾃⼰紹介 AutoML Visionとは ラーメン⼆郎とは ラーメン⼆郎識別bot AutoML Visionで画像分類を試す AutoML Visionのメリット 機械学習エンジニアは不要に? まとめ 3.1

4.

⾃⼰紹介 名前:⼟井 賢治 (@knjcode) 所属:ヤフー株式会社 テクノロジーグループ サイエンス統括本部 機械学習を活⽤しヤフオク!のサービスを改善 偽物出品検知AI 出品時のタイトル推薦 etc 福岡(天神)のオフィスで働いています 3.2

5.

偽物出品検知AI 出典: https://about.yahoo.co.jp/pr/release/2018/11/30a/ 3.3

6.

ヤフオク! 出品時のタイトル推薦 写真: https://en.wikipedia.org/wiki/Google_Home アップロードした画像から商品名を⾃動で推薦 3.4

7.

⽬次 ⾃⼰紹介 AutoML Visionとは ラーメン⼆郎とは AutoML Visionで画像分類を試す AutoML Visionのメリット 機械学習エンジニアは不要に? まとめ 4.1

8.

AutoML Vision とは ユーザがラベル付きのデータセットを⽤意するだけで、 カスタム機械学習モデルの学習・デプロイ・サービングまで ⾃動で⾏ってくれるサービス 2019年7⽉10⽇現在β版で 下記3種類のサービスが利⽤可能 画像分類 オブジェクト検出 AutoML Vision Edge 今⽇は、AutoML Visionでラーメン⼆郎の画像分類を試した事例を 詳しく紹介します 4.2

9.

⽬次 ⾃⼰紹介 AutoML Visionとは ラーメン⼆郎とは AutoML Visionで画像分類を試す AutoML Visionのメリット 機械学習エンジニアは不要に? まとめ 5.1

10.

ラーメン⼆郎とは 関東圏を中⼼に暖簾分けで全国に数⼗店舗あるラーメン店 濃厚でボリュームのあるラーメンが特徴 店舗ごとに微妙に味や⾒た⽬が異なり、常連は⾒た⽬で 店舗を⾒分けることができる 5.2

11.

常連は⾒た⽬で店舗を⾒分けることができる? 5.3

12.

常連は⾒た⽬で店舗を⾒分けることができる? 神⽥神保町店 三⽥本店 環七⼀之江店 5.4

13.

でラーメン⼆郎全店舗を識別できたら⾯⽩いのでは ⇒ 前職同僚がラーメン⼆郎5店舗の識別モデルを作っているのを ⾒た事をきっかけに全店舗版を開発、twitterのbotとして公開 DeepLearning 5.5

14.

ラーメン⼆郎全店舗識別bot @jirou_deep 写真の⾒た⽬だけで⼆郎の店舗名を識別 現在の正解率は約99% @jirou_deep にラーメン⼆郎の画像付けてリプライすると店舗名を答えます 5.6

15.

jirou_deep 精度改善の歴史 年 ⽉の公開以来、コツコツと精度改善(2019年2⽉末時点) データセット: 約3万枚 〜 約9万枚 正解率: 約87.4% 〜 約99.06% 使⽤Framework: 初期はMXNet、途中からPyTorch 精度改善のための⼯夫 モデル: Inception-V3 ⇒ ResNet-152 ⇒ SE-ResNeXt-50 学習設定: Optimizerや各種ハイパーパラメータの調整 データ拡張: Mixup, RandomErasing, CutMix, etc 2017 8 データセットを拡⼤しつつ、精度改善に効きそうな⼿法を追試・再実装して試している 廃業した店舗をデータセットから外したり、新規開店した店舗を追加したりクラス数も変化 5.7

16.

⽬次 ⾃⼰紹介 AutoML Visionとは ラーメン⼆郎とは AutoML Visionで画像分類を試す AutoML Visionのメリット 機械学習エンジニアは不要に? まとめ 6.1

17.

AutoML Vision で画像分類を試す ラーメン⼆郎識別botのモデル作成に利⽤した、約9万枚の データセットでAutoML Vision(ベータ版)の性能を試してみました 必要な作業(これだけ): データセットを Google Cloud Storage にアップロード AutoMLのコンソールからTrainボタンをクリック はアップロードされたデータセットを⾃動で、学習・評価・テスト⽤に 分割してくれますが、⾃作モデルと識別精度を⽐較できるようにデータセットの 分割も同⼀にしています(データセット作成時に指定可能) ※ 本⽇の内容は AutoML Vison ベータ版の2019年2⽉末時点の検証結果です ※ AutoML 6.2

18.

実はAutoMLのα版公開後に⼀度試している 当時の状況(2018年3⽉) データセット: 約48,000枚 AutoMLの精度: 94.8% (Precision) α版には学習設定が2通りあった Baseモード (約1時間学習) Advancedモード (約24時間学習) Baseモードで 68.0% Precision Advancedモードで 94.8% Precision 出典: https://cloudplatform-jp.googleblog.com/2018/03/automl-vision-in-action-from-ramen-to-branded-goods.html 6.3

19.

版での変更点 AutoML Vision β の 版では、学習時間の指定および追加学習が可能に 学習時間 α版: Baseモード(1時間) or Advancedモード(24時間)の2択 β版: 1 compute hourを単位に、任意の時間設定可能 追加学習 α版: 提供なし β版: 2〜24時間の範囲で追加学習可能 (追加学習は何度でも可能だがモデル学習後2週間以内限定) とは、 の内部的なコンピューティング能⼒の使⽤状況であり、実際の時間とは正確に⼀致しないとのこと 1時間や24時間の設定で初期モデルを学習し、識別精度を さらに⾼めたい場合に追加学習を⾏うのが良さそう AutoML Vision β ※ compute hour AutoML 6.4

20.

1 compute hour 及び 24 compute hours の設定で学習してみた 6.5

21.

の学習結果 AutoML AutoMLが学習したモデル(および⾃作モデル)の識別精度 から24 compute hoursでかなり正解率が向上しているが、 ⾃作モデルと⽐較すると正解率に迫る精度がでている 1 compute hour ※: ⾃作モデルはこれまでの各種精度改善のノウハウを使って学習 SE-ResNeXt-50, 各種基本的なデータ拡張 + Random Erasing を採⽤ (NVIDIA Tesla V100を4枚搭載のGCEインスタンスを利⽤し約13時間かけて学習) 6.6

22.

AutoML Vision の追加学習を試してみる 6.7

23.

参考) AutoML Vision β版 の料⾦ ( 基本料⾦ 1 時間あたり 20$ 既存モデルのトレーニングを再開する場合も、 1 時間あたり 20$ 無料枠 モデルごとのトレーニング 1 時間分が、毎⽉ 10 個まで無料 出典: https://cloud.google.com/vision/automl/pricing 時間あたり20$は、おおよそGCEのn1-highmem-32インスタンスに を 枚搭載して利⽤した場合の料⾦(2019年7⽉10⽇現在) 1 V100 8 6.8

24.

参考) 追加学習時の料⾦について ( 追加学習時は精度が向上しなかった時間分は課⾦されない模様 出典: Google Cloud AutoML Visionのコンソール画⾯ 6.9

25.

とりあえず、12 compute hours の追加学習を実施 6 . 10

26.

の学習結果 (36 compute hours) AutoML 各モデルの識別精度 でさらに正解率が向上 しかし、まだ⾃作モデルのほうが精度が良い 36 compute hours 6 . 11

27.

さらに追加学習すると、⾃作モデル超えるのでは… 6 . 12

28.

すでに、720$のコストが掛かっており悩ましい しかし AutoML Visionが⾃作モデルを超えるのか気になる 6 . 13

29.

精度向上する限り、12時間単位で追加学習を実施! 6 . 14

30.

学習結果 (72 compute hours まで追加学習) での正解率98.75%が最⾼精度 ⾃作モデルがかろうじてAutoMLの精度を上回った 60 compute hours から60 compute hoursで精度向上しているが、なぜか課⾦されていない ※: 48 6 . 15

31.

学習したモデルの推論速度について 各モデルの推論時間を計測(テストデータ3200枚を利⽤) 画像1枚あたりの各モデルの推論時間 (ms) モデルを追加学習するごとに、推論時間が伸びる傾向がある のモデルをAPIから利⽤する場合には画像をBase64エンコードして送信します。 上記推論時間は(⾃作モデル含め)画像の転送時間も含んだ時間です。 ※ us-central1に起動したインスタンスからAPIを利⽤(AutoML Visonのモデルもus-central1にある) ※ 2019年2⽉28⽇に計測、⽇によって若⼲推論時間が変わるが追加学習したモデルが遅い傾向は同様 ※ AutoML 6 . 16

32.

⽬次 ⾃⼰紹介 AutoML Visionとは ラーメン⼆郎とは ラーメン⼆郎識別bot AutoML Visionで画像分類を試す AutoML Visionのメリット 機械学習エンジニアは不要に? まとめ 7.1

33.

AutoML Vision のメリット データセットを⽤意するだけで⾼精度な識別モデルを作成可能 機械学習エンジニアの知識やノウハウや ハイパーパラメータチューニング等の試⾏錯誤が不要 とりあえず分類モデルを作りたい場⾯で有効 ベースラインモデルが欲しい、 ⾊々と案件があるが⼈⼿が⾜りない、etc モデル作成だけでなく、デプロイ・サービング(API化)に対応 モデルの学習後すぐにスケーラブルにAPIとして利⽤可能 特に、画像分類モデルのPoC作成時には APIまで⾃動作成される点はありがたい 7.2

34.

AutoML Vision のデメリット? モデルの推論時間が⻑い 学習時間が伸びるほど推論時間が増加していく 2019年4⽉に公開された、学習済みモデルをEdgeデバイスで利⽤ 可能となる「AutoML Vision Edge」で上記は改善できる可能性あり 現状、機械学習エンジニアがチューニングしたモデルの⽅が⾼精度 より精度の良いモデルの利⽤や、精度向上のための各種⼿法を 随時取り⼊れてモデルを改善できる 7.3

35.

⽬次 ⾃⼰紹介 AutoML Visionとは ラーメン⼆郎とは ラーメン⼆郎識別bot AutoML Visionで画像分類を試す AutoML Visionのメリット 機械学習エンジニアは不要に? まとめ 8.1

36.

機械学習エンジニアは不要に? モデルの識別精度は⼈間のチューニングに迫る精度を実現可能 (ただし、それなりに費⽤はかかる(個⼈の趣味としては⾼い)) ↓ しかし、AutoML Visonの利⽤には学習⽤データセットが必要 ↓ 画像分類に限っても、業務要件をいかに分類タスクに落とし込むか、 また、データ収集や整理にも⼀定のスキルやノウハウが必要になる (特に、Web上から画像を収集してデータセットを作成する場合、 重複画像の除去やラベル(分類)誤りの修正が⾮常に重要) 8.2

37.

重複画像の除去やラベル(分類)誤りの修正、等々を 含む、画像分類データセット作成時のノウハウと 注意点について以下の資料で詳しく解説しています https://www.slideshare.net/techblogyahoo/yjfukuoka 8.3

38.

AutoML (Vision) でできないこと 業務をいかにデータセットや分類問題に落とし込むか データセットの準備・クリーニング 事例1で具体的な事例を紹介 最新のモデルや精度向上⼿法の導⼊ 事例2で具体的な事例を紹介 8.4

39.

事例1)データのクリーニング有無による精度の違い ( ラーメン⼆郎データセット(クリーニング済み)と クリーニング前のデータセットを⽤意し、同⼀設定で モデルを学習し精度の違いを⽐較してみる ここでのクリーニングとは、データセットに対する、重複画像の除去や ラベル誤りの修正、⽬視による学習に使えない画像の除去、等々を含む データセットの整理・整備のことを指します 8.5

40.

データセットの詳細 クリーニング有り・無しの2パターンのデータセットを⽤意 クリーニングで学習データが3万から2万枚に減った場⾯を想定 ※ ※ ※ クリーニング無しデータセットは端数を捨て、切りの良い枚数に削減 どちらのデータセットも同⼀の検証⽤およびテスト⽤データセットで評価 クリーニング無しデータセットについても、検証⽤およびテスト⽤画像に限り、 画像の重複やダブリが無いように確認&画像除去済み 8.6

41.

学習条件 モデル: ResNet50 (ImageNet学習済みモデルの転移学習) バッチサイズ: 256 オプティマイザ: Adabound (final_lr=0.5) weight decay: 5e-4 学習率(初期値): 0.001 学習エポック数: 30 (10,20エポックで学習率を0.1倍) データ拡張: 左右反転、RandomResizedCrop, RandomRotation 評価⽤データで正解率最⼤のエポックのモデルでテストデータ の正解率を評価 試⾏回数: 5回 (同⼀条件で5回学習し、正解率の平均および標準 偏差を算出) 8.7

42.

検証結果 クリーニング済みデータセットのほうが学習⽤画像の枚数が 少ないにも関わらず約3%程度、識別精度が良い ⇒ データの量だけでなく品質も重要 8.8

43.

事例2)最新のモデルや精度向上⼿法の活⽤ ( より精度の良いモデルの利⽤ EfficientNet データ拡張⼿法の改善 CutMix RICAP ICAP 上記を活⽤し、2019年2⽉時点のモデルよりも更に⾼精度に ラーメン⼆郎の店舗を識別するモデルの作成にチャレンジ 8.9

44.

EfficientNet ICML2019 で Google Research, Brain Team から発表された モデルは、既存の よりも⾼い精度と優れた 効率の両⽅を実現 計算コストと精度のバランス を考慮し、EfficientNet-B4を 利⽤することにした EfficientNet CNN 出典: https://developers-jp.googleblog.com/2019/07/efficientnet-automl-google.html 8 . 10

45.

データ拡張⼿法 (CutMix) 年 ⽉にarxivに論⽂が投稿されたデータ拡張⼿法 Mixup(2枚の画像を合成)と Cutout(画像の⼀部を⽋損)を 混ぜ合わせたような⼿法 画像の⼀部にクロップした 別の画像を埋め込む (元画像と位置を揃える) CIFAR-100でSoTA 2019 5 (top-1 error 14.23%) 出典: CutMix: Regularization Strategy to Train Strong Classifiers with Localizable Features 8 . 11

46.

データ拡張⼿法 (RICAP) 年 ⽉にarxivに論⽂が投稿されたデータ拡張⼿法 2018 11 枚の画像からランダムに クロップした画像を⼀枚に 貼り合わせる CIFAR-10でSoTA 4 (top-1 error 2.19%) 出典: Data Augmentation using Random Image Cropping and Patching for Deep CNNs 8 . 12

47.

データ拡張⼿法 (ICAP) 前述のCutMixとRICAPを組み合わせた⼿法を独⾃に実装した 4枚のクロップ画像を元画像での 位置を揃えた状態で貼り合わせる ラーメン⼆郎データセット(縮⼩版) で検証し、CutMix, RICAPを上回る 精度を確認 参考: https://twitter.com/knjcode/status/1139912956592787456 8 . 13

48.

と ICAP を使い モデルを学習してみる EfficientNet-B4 8 . 14

49.

学習条件 モデル: EfficientNet-B4 (ImageNet学習済みモデルの転移学習) バッチサイズ: 16 オプティマイザ: momentum SGD (momentum=0.9) weight decay: 1e-5 初期学習率: 0.0125 エポック数: 200 学習率スケジューラ: Cosine Annealing (200エポック⽬に学習率が1e-5に なるように設定) データ拡張: 左右反転、RandomResizedCrop, RandomRotation, PCAノイズ 各種jitter(brightness=0.25, contrast=0.4, saturation=0.2, hue=0.05), ICAP(β=2.0) 8 . 15

50.

検証結果 およびこれまでのモデルの結果(再掲含む) EfficientNet および ICAP を利⽤して、2019年2⽉時点の ⾃作モデルより更に識別精度が向上 (99.06% ⇒ 99.28%) EfficientNet-B4 8 . 16

51.

⽬次 ⾃⼰紹介 AutoML Visionとは ラーメン⼆郎とは ラーメン⼆郎識別bot AutoML Visionで画像分類を試す AutoML Visionのメリット 機械学習エンジニアは不要に? まとめ 9.1

52.

まとめ のモデルの識別精度 α版から着実に進化 学習時間次第で、⼈間がチューニングした分類モデルに迫る 精度を実現可能 AutoML Visionの推論速度 モデル精度と推論速度のトレードオフ 画像をBase64エンコードして送信するオーバーヘッドも有り 推論速度を重視する場合、AutoML Vision Edgeの利⽤も要検討 状況に応じた使い分けが必要 データセットがあり、ベースラインモデルやPoCを⼿早く作成したい という場⾯では AutoML Vision がお勧め 精度や推論速度を重視する場合には、機械学習エンジニアによる モデルのチューニングも依然として有効 AutoML Vision 9.2

53.

参考 画像分類データセット作成時のノウハウと注意点 https://www.slideshare.net/techblogyahoo/yjfukuoka Adaptive Gradient Methods with Dynamic Bound of Learning Rate https://arxiv.org/abs/1902.09843 CutMix: Regularization Strategy to Train Strong Classifiers with Localizable Features https://arxiv.org/abs/1905.04899 Data Augmentation using Random Image Cropping and Patching for Deep CNNs https://arxiv.org/abs/1811.09030 EfficientNet: AutoML Google https://developers-jp.googleblog.com/2019/07/efficientnet-automl-google.html EfficientNet: Rethinking Model Scaling for Convolutional Neural Networks https://arxiv.org/abs/1905.11946 モデルスケーリングと で最⾼精度を達成した の画像認識技術 「ラーメン⼆郎」は創業者 ⼭⽥拓美⽒の登録商標です 資料中のラーメン⼆郎写真は撮影者の許可を得て掲載 ※ ※ 10

54.

ご清聴ありがとうございました 11