🎉

画像モデルのバックボーンとして最初に何を選ぶべきか?

に公開

はじめに

画像分類や物体検出などの画像認識タスクでは、バックボーンと呼ばれる画像特徴抽出を担うモデルの部分が最終的な精度に大きく影響します。

世界中の研究者たちが高性能なモデルを次々と発表する中で、「どのバックボーンを選べばよいのか」という課題が生まれています。

バックボーン選択が難しい理由

まず、ResNet、EfficientNet、Vision Transformer など、選択肢となるアーキテクチャが非常に多いことが挙げられます。さらに、パラメータ数や推論速度といった実用上の制約に適合するモデルを見つけるのも一苦労です。

また、最新の研究で高い性能を示したモデルが、実際の業務で使いやすいか(転移学習に適しているか)は、元の研究論文を詳しく読まないと判断が難しいという問題もあります。

本記事の目的

そこで本記事では、Battle of the backbones: a large-scale comparison of pretrained models across computer vision tasks (Micah Goldblum, NeurIPS 2023) の研究成果を参考にします。

この研究では、1500を超える実験を通じて複数の下流タスクでの性能を比較し、実用的なバックボーン選択の指針を示しています。

https://arxiv.org/abs/2310.19909

忙しい人向けのまとめ

  • 実験の結果、教師あり学習の ConvNeXt-Base、ImageNet-21k で学習した教師あり SwinV2-Base、CLIP ViT-Base などが、さまざまなタスクで高い性能を示した。
  • ViT や自己教師あり学習 (SSL) が注目を集めている一方で、教師あり学習で事前学習された CNN が多数のタスクで優位である。
  • また、学習データ量を揃えて比較すると SSL による事前学習モデルが強力であることに加え、ViT にはスケーリング則もあるため、より大規模なデータセットで検証した場合には結果が異なる可能性が示唆された。

対象の読者

本記事では、以下の読者を対象としています。

  • そもそもバックボーンを知らない人
  • MLタスクに取り組むエンジニアで、バックボーンのモデル選定に困っている人
  • 画像コンペのベースラインモデルを探している Kaggler

特に、Battle of the backbones: a large-scale comparison of pretrained models across computer vision tasks(以下、BoB 論文)は実務家[1]向けで、対象モデル規模は ConvNeXt-Base 相当までに限定されています[2]。また、2024 年以降のモデルには言及していません。

簡単なバックボーンの説明

誤解を恐れずに言えば、画像認識におけるバックボーンとは、画像を入力として画像特徴を抽出し、画像のピクセル情報が圧縮された n 次元の特徴ベクトルとして表現するモデルを指します。画像分類などの下流タスク向けにヘッドと呼ばれる線形層を付加することで、入力画像から対応する出力を得られます。

バックボーンの図示したイラスト
CNN のバックボーンについて
CNNバックボーン(backbone)の代表的アーキテクチャの歴史より引用

このバックボーンは、ヘッドと合わせてランダム初期化からスクラッチで学習する方法や、教師あり学習(Supervised Learning)や自己教師あり学習(Self-Supervised Learning, SSL)で事前学習したバックボーンの重みを固定し、ヘッドの線形層のみを学習する線形プロービング、いくつかの層も含めて学習する転移学習など、さまざまな方法で学習できます。

https://cvml-expertguide.net/terms/dl/cnn/cnn-backbone/

複数の画像バックボーンの検証

実験の設定

BoB 論文では、以下の事前学習のアルゴリズム・スタイル(教師あり/自己教師あり学習など)・データセット・アーキテクチャについて検証されています。

BoB論文における評価対象のバックボーンアーキテクチャの概要
BoB論文における評価対象のバックボーンアーキテクチャの概要

対象として、画像分類・物体検出・セグメンテーション・分布外 (Out-of-Distribution, OOD) データへの汎化性能・画像検索のタスクを扱います。

実験に使われたコードは以下のリポジトリで確認できます。

https://github.com/hsouri/Battle-of-the-Backbones

実験の結果

上記の設定で、複数のバックボーンに対して画像分類をはじめとする複数の下流タスクの精度を検証し、その性能をタスク間のスコアの相関で示したのが以下の図です。下図では、タスク間のスコアのスケール差を補正(正規化)するために Z-Score(各スコアの平均からの差を標準偏差で割った値)を用いています。この図を見ると、多くのモデルにおいて画像分類の精度と他のタスクの精度との間に正の相関が見られます。

図1: 複数のモデルにおける各タスクの精度の Z-Score の相関
図1. 各タスクの精度の Z-Score の相関を可視化した図。左図は分類タスクと物体検出タスクの比較。右図は分類タスクと分布外 (OOD) データへの汎化タスクの比較。

実験から得られた洞察

結局どのバックボーンを選ぶべきか

図1 で算出した Z-Score によって、各タスクで複数モデルの平均スコアに対し当該モデルがどの程度優位かが分かります。複数のタスクの Z-Score を集約することで、以下の表2のようなランキングを作成できます。

複数のバックボーンの精度の順位表
表2. 各タスクにおける性能の高いモデルの順位表。赤色は分布外データへの汎化性能を、緑色は総合的な比較の結果を示している。

特定のタスクに絞らない総合的な評価において、ImageNet-21k で学習した教師ありの ConvNeXt-Base が最も良い性能を示し、次点で ImageNet-21k で学習し ImageNet-1k でファインチューニングした教師あり SwinV2-Base、LAION-2B で学習した CLIP ViT-B が高い性能を示しました。全体的には、教師あり学習したモデルや Vision-Language タスクで学習されたモデルが他の手法より優位に立っています。

また、予算や計算スピードに制限のある実務家向けに、小型のモデルによる検証も行われています。この結果、EfficientNet-B0、RegNetX-400MF、ResNet-18 が高い性能を示しています。

複数の軽量バックボーンの精度の順位表
表3. 各タスクにおける性能の高い小型/軽量モデルの順位表。赤色は分布外データへの汎化性能を、緑色は総合的な比較の結果を示している。

CNN と ViT、どちらが良いのか

BoB では ConvNeXt-Base 程度の中規模パラメータモデルを使う条件下で、教師ありの ConvNeXt-Base(CNN)が平均順位で最上位、次点が階層型 Transformer の SwinV2-Base であり、標準的な ViT は同条件では下位に位置しました。一方で ViT はモデルサイズや事前学習データが増えるほど順位が上がりやすく、相対性能とパラメータ数の相関は ViT が ρ=0.58(CNN は ρ=0.35)、データ規模との相関は ViT が ρ=0.72(CNN は ρ=0.33)でした。より大規模な条件では結果が逆転する可能性 があります。物体検出とセグメンテーションでは、追加の工夫をしなくても ConvNeXt の精度が高く、ViT は長い学習や ViTDet のような改修を入れると伸びるものの、BoB の設定では CNN の方が有利でした。

教師あり学習と自己教師あり学習、どちらが良いのか

公開済みチェックポイントという条件で比較すると、ImageNet-21k で教師あり学習した ConvNeXt-Base と SwinV2-Base が総合順位で上位でした。これは、教師ありの方がより大規模なデータで事前学習されていることが主因です。ただし、同じアーキテクチャ・同じ規模のデータで比べると、SSL(DINO、MoCo、MAE など)は分類(ID: in-distribution / OOD: out-of-distribution)や画像検索で教師ありを上回る例が見られます。一方、物体検出とセグメンテーションでは、BoB の設定では教師ありの方が高い精度でした。画像と言語で学習した CLIP ViT-B は分類と検索で強く、総合でも上位ですが、OOD 検出では必ずしも最上位ではありませんでした。

複数タスクにおける性能の相関

BoB ではタスク間の性能が強く相関しました。多くのタスクの組み合わせで Spearman の順位相関が 0.8 を超え、分類で上位のバックボーンは検出・OOD 分類・検索でも上位になりやすいことが確認できました。例外は画像検索で、MiDaS と MAE を含めると相関が 0.49 と下がりますが、これらを除くと 0.8 付近まで上がります。実務では、まず分類で結果が良いバックボーンを選べば、他のタスクにも流用しやすいと言えます。

ファインチューニングか線形プロービングか

事前学習済みバックボーンは、エンドツーエンドでファインチューニングする方法と、バックボーンを固定してヘッドだけを学習する方法(線形プロービング)の二通りがあります。ViT は線形プロービングより全体をファインチューニングした方が伸びが大きく、検出やセグメンテーションで差がはっきり出ます。ConvNeXt などの CNN は、バックボーンの重みを固定してもベースラインとして十分な精度が出やすく、短時間の検証に向いています。少ないデータや素早い比較ではまず線形プロービングで試し、最終モデルの作り込みでは ViT を含めてファインチューニングを前提に学習する、という進め方が使いやすいです。

CLIP のような Vision-Language バックボーンは有用か

分布外の物体検出を除くほぼすべてのタスクにおいて、CLIP の事前学習は標準的な ViT や、ImageNet-21k で教師あり学習したベースラインと比べても、より優れた結果を示しています。全バックボーンで比較すると、CLIP は SwinV2 と ConvNeXt にのみ性能が劣っており、Vision-Language モデルの事前学習が有用であること、また自己教師あり学習/弱教師あり学習を検討する際は、単純な ViT 以外の多様なバックボーンも検討した方が良いことが示唆されています。

MAE, Stable Diffusion のような生成モデルのバックボーンは有用か

画像復元や生成を目的に学習された MAE や Stable Diffusion のようなモデルをバックボーンとして利用した際、それらのモデルは大規模なデータセットで学習され、パラメータ数が多いにもかかわらず、分類や対照学習を目的としたモデル群に比べて性能が劣っていました。これは生成タスクの学習に必要なピクセルレベルの詳細情報と、教師あり/自己教師ありモデルが獲得している意味的な情報との乖離が原因だと考察されています。

まとめ

BoB 論文では 1500 回以上にも及ぶ実験から、画像バックボーンモデルについての比較検証を行いました。その結果、教師あり学習ベースの ConvNeXt、SwinV2、ならびに CLIP などがさまざまなタスクで高い性能を示すことが分かりました。

また、分類などの特定タスクで有効なモデルをバックボーンとして用いて他のタスクに転用した際に、引き続き高い性能を示すことが多いことも実証しました。

一方で、ViT のスケーリング則などの側面もあり、この研究のスコープ外であるバックボーン(別アーキテクチャ、より多くのパラメータを持つモデル、より大規模な学習)では結果が異なる可能性があることに注意が必要です。

参考文献

脚注
  1. 本記事では Practitioner を便宜上「実務家」と訳します ↩︎

  2. Stable Diffusion を除く ↩︎

Discussion