CNN vs. Transformer — 何が違う?
画像モデルの王者だった CNN に対し、言語モデルで躍進した Transformer が近年は画像領域も席巻。両者のしくみと得意・不得意を"カメラのレンズ"と"全方位スポットライト"のたとえで解説します。
2025年4月28日 📅
図でざっくり比較
CNN
カメラのズームレンズ 📷
VS
Transformer
全方位スポットライト 💡
観点 | CNN | Transformer |
---|---|---|
着目のしかた | 小さな窓(カメラのズームレンズ)が画像をスキャン | 全体を一度に見回すスポットライト(注意機構) |
計算コスト | 画像サイズに比例して増える(局所演算) | 入力長の2乗で増える(全結合演算) |
並列処理 | 畳み込みごとに逐次的な依存が残る | Attention 行列で GPU による完全並列が得意 |
代表モデル | ResNet, EfficientNet | Vision Transformer, ViT-Hybrid |
得意分野 | 画像分類・物体検出 | 言語理解・画像理解・マルチモーダル |
弱み | 広い文脈を捕まえにくい | 入力が大きいとメモリ負荷が高い |
CNN: "レンズを動かしながら撮影"
🔍 小さなフィルター(カーネル) が画像をスライド
↓
各位置で 畳み込み計算 → エッジや色のパターンを抽出
↓
層を重ねるごとに 視野(Receptive Field)が広がる
↓
最後に値をまとめて「犬 vs 猫」などを判定
ポイント
- コンパクトなフィルターを再利用するため パラメータ数が少ない
- 近くのピクセル関係を捉えるのが得意(画像・音声・時系列にも応用可)
Transformer: "全員に注目度スコアを配る"
入力の各要素(単語やパッチ)同士で
どれがどれをどれくらい"見ているか" を Attention で数値化
どれがどれをどれくらい"見ているか" を Attention で数値化
↓
Attention 行列で 文脈を重み付け → 重要な情報を強調
↓
これを 重ねるだけ で長距離依存もキャッチ
ポイント
- RNN の逐次処理を排し、 GPU で 完全並列 → 学習が高速
- 文や画像パッチ全体を同時に見るため 長い文脈に強い
- 入力が大きいと計算量 O(N²) がボトルネック
実際どちらを選ぶ?
画像タスク 🖼️
シナリオ | 推奨 |
---|---|
モバイルで高速推論・低消費電力 | CNN(EfficientNet Lite など) |
クラウドで高精度を追求 | Vision Transformer + データ拡張 |
物体検出・セグメンテーション | CNN 系 YOLO / Mask R-CNN が成熟 |
言語タスク 📝
シナリオ | 推奨 |
---|---|
文書分類・機械翻訳 | Transformer(BERT, GPT 系) 一択 |
時系列+言語のハイブリッド | CNN(局所パターン)+ Transformer(文脈)の併用 |
次世代トレンド
アプローチ | 概要 |
---|---|
ConvNeXt / CoAtNet | CNN と Transformer のハイブリッド構造。畳み込みで局所特徴、Attention で文脈を同時取得 |
Efficient Attention | Performer, Linformer などで O(N²) → O(N) に削減 |
マルチモーダル統合 | 画像+テキストを同じ Transformer で処理(CLIP, GPT-4o など) |
まとめ
CNN は "ズームレンズ" で 局所 を積み重ね、計算効率が高い
Transformer は "全方位スポットライト" で 文脈 を一気に把握
用途と計算リソースに合わせて ハイブリッド が主流になりつつある
この違いを押さえると、最新研究や実務プロジェクトで「なぜこのアーキテクチャを選ぶのか?」を説明しやすくなります。