5576 文字
28 分
画像のバックボーン、CNNとTransformerはどっちが強い?──Swin・ConvNeXt・CoAtNetを整理したら、差はデータと計算で縮んでいた
この記事について

Claude(Anthropic)との共同編集により作成されました。

要約
  • 2021年以降の画像バックボーンは、CNNとTransformerが互いの長所を取り込んで歩み寄る流れにある
  • Swin TransformerはTransformerにCNN的な階層構造と局所性を入れた。ConvNeXtは逆に、ResNetをTransformer風に作り直した純粋なCNNである
  • 明示的なハイブリッドでは、前段(高解像度)を畳み込み、後段(低解像度)をAttentionにする配置がよく使われる。CoAtNetのC-C-T-T構成が代表例
  • ImageNet-1Kのtop-1は、大規模事前学習ありで90〜91%付近に集まっている。ハイブリッド・純CNN・ViTのどれでもそこまで届く
  • 同じ計算予算なら純CNNでもViTと同等になる、という報告もある。大規模になるとアーキテクチャの差は縮み、効くのはデータと計算量になる
  • KaggleのRSNAコンペで、Swin・CoAtNet・TransXNetなどにencoderを差し替えて比べても、Attention系どうしは引き分けだった。上位の勝ち筋は、バックボーンではなく学習ラベルの作り直しだった

きっかけ#

2026 年 7〜10 月に、Kaggle の RSNA Knee Abnormality Detection(膝の MRI から異常を見つけるコンペ)に出ていた。後半は勉強目的に切り替えて、timm から CoAtNet や TransXNet のような CNN と Transformer のハイブリッドを持ってきて、encoder を差し替えて比べた。

使うだけなら timm.create_model に名前を渡せば動く。ただ、モデル一覧を眺めると Swin、ConvNeXt、CoAtNet、MaxViT、FastViT……と似たような名前が並んでいて、どれが何の系統で、何がどう違うのかが分からなかった。「CNN と Transformer はどっちが強いのか」と聞かれても答えられない。

そこで 2021 年以降の主要な画像バックボーンを論文ベースで調べて、体系的に整理し直した。この記事はそのまとめである。手元で比べた結果は、後半に置いた。CNN(ResNet など)と Vision Transformer(ViT)の基本は知っている前提で書く。前提があやしい場合は、一問一答で学ぶ画像認識モデルのアーキテクチャ構造を先に読むとよい。

先に答えを書いておくと、CNN と Transformer のどっちが強いか、という問いは、大規模になるほど意味が薄れる。両者は設計を取り込み合って似てきたし、精度の差を決めているのは、アーキテクチャよりもデータと計算量のほうだった。

素の ViT は何が困ったのか#

まず、なぜ CNN と Transformer を混ぜる流れが生まれたのか。

ViT は画像をパッチに切って、全パッチ間で Self-Attention を計算する。画像分類では強かったが、物体検出やセマンティックセグメンテーションのような密な予測のタスクでは扱いにくかった。理由は 2 つある12。

  • 特徴マップが単一解像度: CNN は層が進むごとに解像度を落とし、大きさの違う特徴マップを段階的に作る。検出器の FPN などはこの階層構造を前提にしている。ViT は最初から最後まで同じ解像度のトークン列なので、そのままでは組み込みにくい
  • 計算量が画素数の 2 乗で増える: 全パッチ間の Attention は、パッチ数の 2 乗に比例する。検出やセグメンテーションで使う高解像度の入力では重すぎる

ここ数年のモデルは、この弱点をどう埋めるかの違いとして整理できる。

全体像:3 つの系統#

系統発想代表モデル
① CNN に寄せた TransformerAttention を局所窓に限定し、階層的な特徴マップを作るSwin / Swin V2、MaxViT、TransNeXt
② Transformer に寄せた CNN大カーネル、LayerNorm、逆ボトルネックなどで ResNet を作り直すConvNeXt / ConvNeXt V2、InternImage
③ 明示的なハイブリッド前段は畳み込み、後段は Attention(または状態空間モデル)を使うCoAtNet、FastViT、MobileNetV4、MambaVision

①は Transformer 側から CNN に近づき、②は CNN 側から Transformer に近づいた。③は最初から両方を部品として使う。どれも行き着く先は似ていて、局所的な処理と大域的な処理を、解像度に応じて使い分けるという形になっている。

① CNN に寄せた Transformer#

Swin Transformer(2021 年 3 月、Microsoft)#

ViT の 2 つの弱点に、CNN の発想で正面から答えたモデルである1。

  • 窓の中だけで Attention を計算する: 画像を局所的な窓に区切り、窓の中だけで Self-Attention を計算する。これで計算量は画像サイズに対して線形になる
  • 層ごとに窓をずらす: 窓の中だけだと、窓をまたいだ情報が流れない。そこで次の層では窓の位置をずらし(Shifted Window)、隣の窓とつなぐ
  • パッチを段階的にマージする: 層が進むごとに隣接パッチをまとめて解像度を落とす。CNN と同じ階層的な特徴マップができるので、FPN などの検出器にそのまま組み込める

ImageNet-1K だけで学習した場合、Swin-T が 81.3%、Swin-B が 83.3%(224px)/ 84.5%(384px)。ImageNet-22K で事前学習すると 87.3% になる。COCO の物体検出で 58.7 box AP、ADE20K のセグメンテーションで 53.5 mIoU を出し、当時の最高記録を大きく更新した1。

後継の Swin V2(2021 年 11 月)は、30 億パラメータまで大きくし、1,536×1,536 の入力を扱えるようにした。大きくすると学習が不安定になるので、正規化の位置を変える res-post-norm や cosine attention を入れ、解像度を変えても転移しやすい位置バイアスと、自己教師あり学習の SimMIM を組み合わせている3。

MaxViT(2022 年 4 月、Google)#

Swin は窓の中だけを見るので、大域的な情報は層を重ねてじわじわ広げるしかない。MaxViT はここに手を入れた4。

  • Multi-axis attention: ブロック単位の局所 Attention と、格子状に間引いた大域 Attention を組み合わせる。格子状に間引くので、計算量は線形のまま、画像全体に散らばったトークン同士が直接 Attention できる
  • 前段から大域を見る: これにより、高解像度の前段ステージからでも大域的な情報を扱える

MBConv(畳み込み)と組み合わせた同じブロックを繰り返すだけの単純な構造で、ImageNet-1K 単独で 86.5%、ImageNet-21K 事前学習で 88.7% を出した4。畳み込みも使っているので③のハイブリッドに入れてもいいが、Attention の設計が主役なのでここに置いた。

同じ系統の後発に TransNeXt(2023 年 11 月)がある。人間の視野の中心ほど細かく見る仕組みを模した Aggregated Attention を使い、Tiny が 224px で 84.0%(ConvNeXt-B よりパラメータ 69% 減)、Base が 384px で 86.2% を出した5。

② Transformer に寄せた CNN#

ConvNeXt(2022 年 1 月、Meta)#

この流れで一番おもしろいのが ConvNeXt である。

ResNet-50 を出発点にして、Swin の設計を 1 つずつ CNN に移植し、そのたびに精度がどう変わるかを検証した2。Attention は一切使わない、純粋な CNN のままである。取り入れたのは次のような設計だ2。

  • ステージごとのブロック数の比を Swin に合わせる(3:3:9:3)
  • 7×7 の大きい depthwise 畳み込みを使う(Swin の窓サイズ 7×7 に対応)
  • 中間層を太くする逆ボトルネックにする(Transformer の MLP と同じ形)
  • BatchNorm を LayerNorm に置き換える

結果、ConvNeXt-T は 82.1% で、同じ規模の Swin-T(81.3%)を上回った。ConvNeXt-XL は ImageNet-22K 事前学習ありで 87.8%。COCO と ADE20K でも Swin を上回った2。

論文の主張は、Swin の強さは Transformer であること自体より、設計上の工夫によるところが大きいというものだ2。Attention が無くても、周りの設計を揃えれば同じところまで届く。この記事の結論につながる最初の手がかりである。

後継の ConvNeXt V2(2023 年 1 月)は、MAE(画像の一部を隠して復元させる自己教師あり学習)を CNN 向けにした FCMAE と、新しい正規化層 GRN を組み合わせた。3.7M パラメータの Atto(76.7%)から 650M の Huge(公開データのみで 88.9%)までそろっていて、小型版はエッジ用途にも使える6。

InternImage(2022 年 11 月、Shanghai AI Lab ほか)#

ConvNeXt とは別のやり方で CNN を大きくしたのが InternImage である。中核にあるのは変形可能畳み込み(deformable convolution)で、入力に応じて畳み込みのサンプリング位置を変えられる7。

普通の畳み込みは、決まった格子状の位置しか見ない。これは CNN の強い帰納バイアス(近くの画素は関係が深い、という思い込み)で、少ないデータでも学習しやすい反面、表現の自由度を縛る。サンプリング位置を動かせるようにすると、この縛りが緩まり、ViT のように規模を大きくしても伸びるようになる。InternImage-H は COCO test-dev で 65.4 mAP、ADE20K で 62.9 mIoU を記録した7。

③ 明示的なハイブリッド#

CoAtNet(2021 年 6 月、Google)#

CNN と Transformer を、最初から部品として組み合わせたモデルである。

出発点は、depthwise 畳み込みと Self-Attention は相対位置の重みを足し合わせる形で自然に統合できる、という観察だった8。そのうえで、ステージ構成を C(畳み込みの MBConv)と T(Transformer)の組み合わせで総当たりし、汎化性能・容量・転移性能のバランスから C-C-T-T を選んだ8。

  • 前段は C: 解像度が高いうちは、局所的な特徴を畳み込みで効率よく拾う
  • 後段は T: 解像度が下がってトークン数が減ったところで、Attention で大域的な関係を見る

また「Transformer のブロックを増やせば容量が上がるわけではない」ことも示している8。

精度は、追加データなしで 86.0%、ImageNet-21K 事前学習で 88.56%。後者は JFT-300M で学習した ViT-H と同等で、使ったデータは 23 分の 1 だった。さらに JFT-3B で学習すると 90.88% になる8。

前段は畳み込み、後段は Attention#

CoAtNet の C-C-T-T のように、高解像度の前段を畳み込みに、低解像度の後段を Attention にする配置は、その後のハイブリッドでもよく見かける。

  • MambaVision(2024 年 7 月、NVIDIA): 後段ステージに、Mamba(状態空間モデル)と Self-Attention を並べる9
  • MobileNetV4(2024 年 4 月、Google): 畳み込み主体のモバイル向けモデルに、後段で Attention(Mobile MQA)を足したハイブリッド版がある10

前段の高解像度は画素数が多いので、Attention を使うと計算量が重い。後段まで解像度が下がれば、Attention の重さが気にならなくなる。理屈としては素直な配置である。

ただしこれは、各モデルの構成を並べて見えてくる傾向で、特定の論文が「これが定石だ」と言っているわけではない。前述の MaxViT は前段から Attention を使っている。

軽量・エッジ向けのハイブリッド#

スマホやエッジ機器で動かす前提のハイブリッドもある。こちらは精度だけでなく、実機での速度が評価軸になる。

  • FastViT(2023 年 3 月、Apple): 学習時にはあったスキップ接続を、推論時には構造的再パラメータ化で 1 つの演算に畳み込んで消す。メモリアクセスが減り、モバイル端末で同精度の ConvNeXt より 1.9 倍、EfficientNet より 4.9 倍速い11
  • MobileNetV4(2024 年 4 月、Google): 逆ボトルネック・ConvNeXt のブロック・FFN をまとめて扱える探索用ブロック UIB を導入した。MNv4-Hybrid-Large は 87% を Pixel 8 の EdgeTPU 上 3.8ms で出す10

状態空間モデル(Mamba)の参入と、その反論#

言語モデルで話題になった Mamba を画像に持ち込む動きもあった。VMamba(2024 年 1 月)は画像を 4 方向に走査して 2D に対応させ12、前述の MambaVision は Mamba と Attention のハイブリッドで、MambaVision-B が 84.2%(97.7M パラメータ)を出した9。

これに対して MambaOut(2024 年 5 月)は、Mamba のブロックから中核の状態空間モデルを取り除いたモデルが、ImageNet 分類で既存の画像向け Mamba を上回ることを示した13。分類には Mamba は要らず、意味があるのは長い系列を扱う検出やセグメンテーションのほうだ、という主張である。

新しい部品を入れて精度が上がっても、それが部品のおかげとは限らない。ConvNeXt と同じ構図がここでも出てくる。

ImageNet の精度は 90% 前後で頭打ち#

ここまで、3 系統それぞれに強いモデルがあった。では、どれが一番強いのか。大規模な事前学習をしたモデルの ImageNet-1K top-1 を並べると、こうなる。

モデル系統事前学習データtop-1
CoAtNet-7ハイブリッドJFT-3B90.88%8
NFNet-F7+純 CNNJFT-4B90.4%14
EVA-02-L(304M)ViT公開データのみ90.0%15
CoCa画像-テキスト基盤モデルWeb 規模の画像-テキストペアなど91.0%16

ハイブリッドでも、純 CNN でも、ViT でも、90〜91% の同じあたりに集まっている。系統による差はほとんど無い。

大規模になると、アーキテクチャの差は縮む#

この表の NFNet の出典である DeepMind の論文 “ConvNets Match Vision Transformers at Scale” は、まさにこの点を検証している14。同程度の計算予算を与えれば、純 CNN の NFNet は ViT と同等の精度になる。論文の結論は、適切に設計されたモデルなら、効くのは計算量とデータだというものだった14。

逆側からの裏付けもある。DeiT III は、アーキテクチャには手を入れず、学習レシピ(データ拡張や学習の設定)を改善するだけで、素の ViT がかなり強くなることを示した17。

ConvNeXt の「Swin の強さは設計上の工夫による」、MambaOut の「分類に Mamba は要らない」も、同じ方向を向いている。新しいアーキテクチャの名前が付いた精度向上の中には、周りの設計や学習レシピ、データ量の差がかなり混ざっている。

関心は分類精度から汎用特徴量へ#

分類精度が頭打ちになったことで、研究の主戦場も移りつつある。

DINOv3(2025 年 8 月、Meta)は 70 億パラメータの自己教師あり ViT で、ImageNet の線形評価については、近年の頭打ちの水準に達した、という書き方をしている18。主な貢献は分類精度ではなく、セグメンテーションや深度推定にそのまま使える、質の高い密な特徴を出したことにある18。

おもしろいのは、7B のモデルから小型モデルへ知識蒸留したものも公開していて、その中に ViT だけでなく ConvNeXt も入っていることだ18。リソースの限られた環境向けには、ConvNeXt が選ばれている。最先端の基盤モデルの出口に純 CNN が使われているあたりにも、系統の差が縮んだことが表れている。

RSNA で小さく試しても、同じ形になった#

ここまでは論文の、大規模な話である。手元の小さな実験ではどうだったか。

RSNA のコンペでは、手元の Mac で resnet18 を基準にして、encoder だけを差し替えて比べた。条件は 160px・12 epoch・学習率 3e-4 で揃え、seed を 2 つずつ回した。スコアは、自作の検証ラベル 400 件での macro AUC である。

encoder(timm)系統ImageNet top-1(目安)対 resnet18(2 seed 平均)
Swin-T① CNN に寄せた Transformer約 81%+0.013
CoAtNet-rmlp-nano③ ハイブリッド(C-C-T-T)約 82%+0.015
TransXNet-T③ ハイブリッド約 82%+0.010
EfficientViT-B1③ 軽量ハイブリッド約 79%+0.009
ConvNeXt V2-pico② Transformer に寄せた CNN約 80%−0.011

分かったことは 3 つある。

  • Attention を含む族は横並びだった: どれも resnet18 より 0.01 前後上がった。ただし Swin・CoAtNet・TransXNet の間の差は 0.005 未満で、seed を替えただけの揺れ(約 0.006)と変わらない。公開ノートブックでは CoAtNet が Swin を 0.02 上回っていたが、あちらは 384px・ImageNet-12k 事前学習の大きい版で、小さい版・160px では再現しなかった
  • ConvNeXt V2-pico は resnet18 にも届かなかった: 学習曲線の立ち上がりが遅く、終盤まで差が縮み続けていた。学習率と epoch 数が合っていなかった疑いがある(容量が小さすぎた可能性も残る)。アーキテクチャの良し悪しより、学習レシピとの相性で順位が入れ替わる。DeiT III の話と同じ構図である
  • 族を混ぜても伸びなかった: Swin 中心のアンサンブルに、族の違う encoder を 3 つ目として足しても、スコアは最大 +0.0005 しか動かなかった

そして、締切後に上位の解法を読んで分かったのは、勝ち筋がバックボーンではなかったことだ。このコンペの学習ラベルは読影レポートから作ったもので、雑音が多く、そこが天井になっていた。上位は強い LLM に MRI 画像とレポートを読ませて、学習ラベルそのものを作り直していた。私が encoder を替えて 0.01 を争っているあいだに、上位はデータの側で差をつけていた。

論文の大規模な比較でも、手元の小さな比較でも、効いていたのはアーキテクチャよりデータのほうだった。

じゃあ、どれを選べばいいのか#

系統の差が縮んだとはいえ、用途ごとに向き不向きはある。各論文の報告値にもとづく目安を置いておく。

用途候補理由
検出・セグメンテーションの汎用バックボーンConvNeXt (V2)、Swin、InternImage階層的な特徴マップがあり、下流タスクでの実績が多い127
中規模で精度と速度のバランスを取るMaxViT、TransNeXt、MambaVision同程度の FLOPs で ConvNeXt や Swin を上回る報告がある459
モバイル・エッジFastViT、MobileNetV4、ConvNeXt V2 の小型版実機のレイテンシで評価されている61011
少量データでの転移・特徴抽出DINOv3、EVA-02 などの基盤モデル重みを凍結したままでも強い特徴が得られる1518

ただし、実際のハードウェアやデータで速度と精度が逆転することはふつうにある。最終的には自分のタスクで比べるしかない。

名前より、どのデータで事前学習した重みかを見る#

この記事の結論を Kaggle のような実戦に当てはめると、バックボーンの名前と同じくらい、どのデータで事前学習した重みかが効く、ということになる。

timm の事前学習済み重みは、モデル名の後ろにそれが書いてある19。

timm のモデル名意味
convnext_base.fb_in1kMeta(fb)が ImageNet-1K で学習した重み
convnext_base.fb_in22k_ft_in1kImageNet-22K で事前学習し、ImageNet-1K で fine-tune した重み

同じ convnext_base でも、後ろの部分が違えば別物である2021。アーキテクチャを Swin から ConvNeXt に替えて悩む前に、同じアーキテクチャのまま事前学習データの大きい重みに替えてみる、という順番も試す価値がある。

数値を読むときの注意#

この記事に出てきた精度は、すべて各論文の自己申告値である。

  • 論文ごとに、入力解像度(224px / 384px / 512px)、事前学習データ(なし / ImageNet-21K / JFT / Web 規模)、学習レシピが違う。表の数値をそのまま横に並べて比べることはできない
  • 「SOTA」は各論文の投稿時点の主張で、比較対象の選び方にも左右される

同じ条件で比べたいときは、timm などで同じ条件のもと自分で評価し直すのが確実である。

まとめ#

  • 2021 年以降の画像バックボーンは、CNN と Transformer が互いの長所を取り込んで歩み寄ってきた
  • Swin は Transformer を CNN に寄せ、ConvNeXt は CNN を Transformer に寄せ、CoAtNet などのハイブリッドは前段を畳み込み・後段を Attention にした
  • ImageNet の精度は、系統を問わず 90〜91% 付近で頭打ちになっている。大規模になるとアーキテクチャの差は縮み、効くのはデータと計算量になる
  • 研究の関心は分類精度から、DINOv3 のような基盤モデルの汎用特徴量に移りつつある
  • RSNA のコンペで encoder を差し替えて比べても、Attention 系どうしは引き分けだった。上位は学習ラベルを作り直して勝っていた

「CNN と Transformer はどっちが強いのか」という最初の疑問には、どちらか一方とは言えない、と答えることになる。両者は似てきたし、差を決めているのはデータと計算のほうだった。

参考文献#

  1. Liu et al., “Swin Transformer: Hierarchical Vision Transformer using Shifted Windows” (2021) https://arxiv.org/abs/2103.14030
  2. Liu et al., “A ConvNet for the 2020s” (2022) https://arxiv.org/abs/2201.03545
  3. Liu et al., “Swin Transformer V2: Scaling Up Capacity and Resolution” (2021) https://arxiv.org/abs/2111.09883
  4. Tu et al., “MaxViT: Multi-Axis Vision Transformer” (2022) https://arxiv.org/abs/2204.01697
  5. Shi, “TransNeXt: Robust Foveal Visual Perception for Vision Transformers” (2023) https://arxiv.org/abs/2311.17132
  6. Woo et al., “ConvNeXt V2: Co-designing and Scaling ConvNets with Masked Autoencoders” (2023) https://arxiv.org/abs/2301.00808
  7. Wang et al., “InternImage: Exploring Large-Scale Vision Foundation Models with Deformable Convolutions” (2022) https://arxiv.org/abs/2211.05778
  8. Dai et al., “CoAtNet: Marrying Convolution and Attention for All Data Sizes” (2021) https://arxiv.org/abs/2106.04803
  9. Hatamizadeh & Kautz, “MambaVision: A Hybrid Mamba-Transformer Vision Backbone” (2024) https://arxiv.org/abs/2407.08083
  10. Qin et al., “MobileNetV4: Universal Models for the Mobile Ecosystem” (2024) https://arxiv.org/abs/2404.10518
  11. Vasu et al., “FastViT: A Fast Hybrid Vision Transformer using Structural Reparameterization” (2023) https://arxiv.org/abs/2303.14189
  12. Liu et al., “VMamba: Visual State Space Model” (2024) https://arxiv.org/abs/2401.10166
  13. Yu & Wang, “MambaOut: Do We Really Need Mamba for Vision?” (2024) https://arxiv.org/abs/2405.07992
  14. Smith et al., “ConvNets Match Vision Transformers at Scale” (2023) https://arxiv.org/abs/2310.16764
  15. Fang et al., “EVA-02: A Visual Representation for Neon Genesis” (2023) https://arxiv.org/abs/2303.11331
  16. Yu et al., “CoCa: Contrastive Captioners are Image-Text Foundation Models” (2022) https://arxiv.org/abs/2205.01917
  17. Touvron et al., “DeiT III: Revenge of the ViT” (2022) https://arxiv.org/abs/2204.07118
  18. Siméoni et al., “DINOv3” (2025) https://arxiv.org/abs/2508.10104
  19. PyTorch Image Models (timm) https://github.com/huggingface/pytorch-image-models
  20. Hugging Face — timm/convnext_base.fb_in1k https://huggingface.co/timm/convnext_base.fb_in1k
  21. Hugging Face — timm/convnext_base.fb_in22k_ft_in1k https://huggingface.co/timm/convnext_base.fb_in22k_ft_in1k
画像のバックボーン、CNNとTransformerはどっちが強い?──Swin・ConvNeXt・CoAtNetを整理したら、差はデータと計算で縮んでいた
https://yurudeep.com/posts/deeplearning/2026/20261027/
作者
ひらノルム
公開日
2026-10-27
ライセンス
CC BY-NC-SA 4.0