5
Help us understand the problem. What are the problem?

機械学習は最新モデルがどんどん発表されるけど、どれが一番いいの? CoreML-Modelsでかんたんにくらべられるので、頂上決戦してみた

いろんな最新画像分類モデルを比べてみた

画像をドロップするだけで機械学習モデルが試せるCoreML Modelで、最新(2021年発表)の画像分類モデルを比べてみました。

スクリーンショット 2022-01-07 12 59 04

モデルがいろいろありすぎて、どれを使えばいいのかわからない

機械学習モデルをアプリに取り込みたい。
できれば、自分のアプリのサービスに一番適したモデルを選びたい。
例えば、AppleがiOS用に公式に配布しているモデルは数年前のもので、数種類だが、

https://developer.apple.com/machine-learning/models/

iOS用にカスタム変換されたモデルがGitHubにもたくさんある。

さて、どのモデルをつかえばいいのか。

機械学習分野は研究が盛んで、カンファレンスごとにたくさんの最新構造を持ったモデルが発表されます。

【Paper with code より、画像分類のランキング】

指標がいろいろある

ImageNetなどのデータセットで正解率をランキングにしていますが、
1000分類の画像の正解率で、かつトップは僅差であり、モデルのパラメーターも様々で、なかなか比べてもどれが本当に自分のアプリに適しているのか、わかりづらい気がします。

CoreML-Modelsで、画像をモデルにドロップして比較

CoreML-Modelsには、最新のモデルを含む機械学習モデルファイルが複数共有されており、ファイルをダウンロードして画像をドロップするだけで、画像分類が試せます。

【CoreML-Models】
スクリーンショット 2022-01-07 12.36.36.png

これなら、自分が使いたい画像データで色々なモデルがかんたんに比較できます。
また、モデルファイルを見れば、モデルサイズや入力サイズなどのパラメーターもわかりやすいです。

Google-Research FaceBook-Research...いろんなモデルを比べてみた

CoreML-Modelsにあるモデルを比べてみました。
今回は以下の3つを比べてみます。

ResNet50

アップル公式配布にもあるモデル。2015年発表。サイズ102.6MB。

VisionTransformer

Googleが2021年に発表したモデル。サイズ347.5 MB。
ICLR論文:https://arxiv.org/abs/2010.11929

DeiT

FaceBookが2021年に発表したモデル。サイズ350.5 MB
ICML2021論文:https://arxiv.org/abs/2012.12877

Conformer

2021年発表。94.1 MB
ICCV21論文https://arxiv.org/abs/2105.03889

CoreML-ModelsからCoreMLモデルのダウンロードページと、オリジナルプロジェクトにリンクしています。

さあ決戦開始

【データ1】

model label confidence
ResNet50 Egyptian cat 47%
VisionTransformer0 Egyptian cat 50%
DeiT Egyptian cat 67%
Conformer Egyptian cat 92%

いきなり最小サイズのConformerがダークホースとして登場。

【データ2】

model label confidence
ResNet50 strawberry 99%
VisionTransformer0 strawberry 99%
DeiT strawberry 100%
Conformer strawberry 100%

これはどのモデルも余裕だったか。

【データ3】

model label confidence
ResNet50 cicada(せみ) 20%
VisionTransformer0 tricycle 27%
DeiT mountain bike 89%
Conformer plastic bag 26%

おっと、Deitがぶっちぎり。逆に健闘していたResnetとConformerは脱落。

比較の結論

単純にImageNet全体のスコアとモデル精度は比例しない。
画像に写っているオブジェクトのサイズや属性もいろいろだし。それぞれのモデルに得意不得意がありそう。
モデルサイズが大きければいいというものでもない。

ということで、自分がサービスがモデルに与えるデータで試してみて、モデルを選ぶのが良さそうです。

一番適したモデルをかんたんにアプリに組みこもう

CoreML-Modelsやmmclassificationなどでモデルを比較して、自分のサービスにあったモデルを組み込みたいですね。

🐣


フリーランスエンジニアです。
お仕事のご相談こちらまで
rockyshikoku@gmail.com

Core MLやARKitを使ったアプリを作っています。
機械学習/AR関連の情報を発信しています。

Twitter
Medium

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Sign upLogin
5
Help us understand the problem. What are the problem?