#06 人工知能入門 CNN画像認識

バックボーン——特徴を抽出する「エンジン」

バックボーンとは何か

CNNを設計するとき、「特徴を抽出する部分」と「その特徴を使って答えを出す部分」を分けて考えることができます。

バックボーン(Backbone) とは、画像から有用な特徴を抽出するCNNの「幹」の部分です。人体でいえば背骨(backbone)のように、全体を支える中心的なパーツです。

[入力画像]

[バックボーン]  ← ここ!特徴を抽出するCNNの主要部分

[特徴マップ(圧縮された情報)]

[ヘッド]        ← タスクに応じた「答えを出す部分」(次回)

[出力(分類、検出など)]

バックボーンが分離して名前を持つ理由は、同じバックボーンを複数のタスクで使い回せるからです。分類にも、物体検出にも、セグメンテーションにも、同じResNet-50を使い回すことができます。


VGG——深さの追求

VGGNet(2014年)はシンプルさが特徴です。「3×3の小さなフィルター」だけを使い、層を16〜19層まで深くしました。

VGG16の構成(一部):
  Conv(64) × 2 → Pool
  Conv(128) × 2 → Pool
  Conv(256) × 3 → Pool
  Conv(512) × 3 → Pool
  Conv(512) × 3 → Pool
  FC(4096) × 2 → FC(1000) → Softmax

VGGの革新: 「大きいフィルター(7×7)より、小さいフィルター(3×3)を重ねた方が良い」という発見。3×3を2回重ねると5×5と同じ範囲を見られますが、パラメータは少なくて済みます。

VGGの弱点: 1億3800万個のパラメータで、ほとんどが最後の全結合層に集中しています。メモリ効率が悪い。


ResNet——残差接続という革命

ResNet(2015年、Microsoftリサーチ)は「層を重ねすぎると精度が逆に落ちる」という問題を解決しました。

残差接続(Skip Connection)

通常の層:
入力 x → [Conv→BN→ReLU→Conv→BN] → 出力

残差接続:
入力 x → [Conv→BN→ReLU→Conv→BN] → + → 出力
  ↑_________________________________↑
          入力xをそのまま加算(スキップ)

この「入力を直接加算するショートカット」が残差接続です。

直感的な説明: 残差ブロックは「入力に何かを足す(残差を学ぶ)」と考えます。

普通の学習: F(x) = 何か複雑な変換を学ぶ
残差学習:  F(x) = x + Δx(入力からの変化量だけを学ぶ)

もし「何もしなくていい(変化量ゼロ)」なら、残差接続は F(x) = x をとればいい。これにより深い層でも「何もしない」という選択肢があり、勾配消失が起きにくくなります。

ResNetは152層という当時考えられなかった深さを実現し、ImageNetで人間の精度を初めて超えました。


MobileNet——モバイル向けの軽量化

MobileNet(2017年、Google)はスマートフォンなど計算リソースが少ない環境向けに設計されました。

深さ方向の分離畳み込み(Depthwise Separable Convolution) という技法で計算量を大幅に削減します:

通常の畳み込み: 空間的なフィルタリング + チャンネル間の混合 を同時にやる
   → 計算コストが高い

分離畳み込み: 2段階に分ける
  Step1 (Depthwise): 各チャンネルを独立にフィルタリング
  Step2 (Pointwise): 1×1畳み込みでチャンネル間を混合

この分離で計算量が約8〜9倍削減されます。精度はわずかに低下しますが、スマートフォンでリアルタイム推論が可能になります。


バックボーンの選び方

モデルパラメータ数特徴用途
VGG161.38億シンプル・理解しやすい学習用、精度重視
ResNet-502,500万バランスが良い定番汎用的に使える
MobileNetV3500万超軽量スマートフォン、エッジデバイス
EfficientNet変動精度と効率の最適バランス精度・速度両立したい場合

まとめ

  • バックボーンは「画像から特徴を抽出するCNNの主要部分」。タスク間で使い回せる
  • VGGは3×3フィルターを積み重ねた深いシンプルなネットワーク
  • ResNetは残差接続で150層超の深さを実現。入力をショートカットで直接加算する
  • MobileNetは分離畳み込みで軽量化。スマートフォン向けの推論に適している
  • バックボーンの選択はタスクの精度要件・計算リソース・速度要件で決まる

次回は、バックボーンが抽出した特徴を使って実際の「答え」を出す——ヘッドの仕組みを学びます。