FCN(Fully Convolutional Network)は、全結合層を畳み込みに置き換えたCNNです。画像分類が「画像全体にラベル1つ」を出力するのに対し、FCNは各画素にクラスを割り当てる地図を出力——G-317のセマンティックセグメンテーションの基礎を切り開きました。本記事はアップサンプリングの細部より、「出口の設計変更がタスクを変えた」という転換に焦点を当てます。
分類とセグメンテーションの溝
画像認識のタスクは段階的に「細かく」なります。
| タスク | 出力 | 試験 |
|---|---|---|
| 画像分類 | 画像全体のラベル1つ | G-318 |
| 物体検出 | バウンディングボックス+クラス | G-316 |
| セマンティックセグメンテーション | 画素ごとのクラス | G-317 |
2010年代前半、AlexNet系の分類CNNは最終層に全結合(FC)があり、固定サイズのベクトルからクラスを出していました。このままでは「どの画素が何か」は分かりません。FCNはこの出口の制約を取り除く設計です。
全結合を畳み込みにする意味
FCNの核心は次の置き換えです。
全結合層 → 1×1(または同等の)畳み込み層に置き換える。
なぜこれで画素予測が可能になるか——試験向けの直感は次のとおりです。
- 全結合 — 空間情報を潰し、画像全体のラベル1つに集約
- 畳み込み — 空間サイズを保ったまま、各位置で同じ変換を適用
- 結果 — 特徴マップの各画素からクラススコアを出せる
G-325の正解文——「全結合層を畳み込みに置き換え、画素単位の予測に利用できる」——がそのまま定義になります。
画素マップの出力
FCNは畳み込みだけでは特徴マップが入力より小さくなるため、アップサンプリング(逆畳み込み・プーリングの逆操作など)で元の解像度に戻します。試験では手法名より「画素単位の予測マップを出す」ことが要点です。
学習ではDice Lossや交差エントロピーなど、セグメンテーション向けの損失関数が使われます。FCN以降、U-Net(TF-122)やDeepLabなど、より精緻なセグメンテーションアーキテクチャが続きましたが、FCNは「分類CNNをセグメンテーションに転用する」転換点として教科書に残ります。
U-Net・物体検出との違い
| 名前 | タスク | FCNとの関係 |
|---|---|---|
| FCN | セマンティックセグメンテーション | —— |
| U-Net | セグメンテーション | 別設計。スキップ接続で精緻化(G-324) |
| YOLO | 物体検出 | 矩形の位置推定。画素マスクではない |
| Mask R-CNN | インスタンスセグメンテーション | 個体ごとのマスク(TF-124) |
| DETR | 物体検出 | Transformer系。FCNとは別系譜 |
試験で押さえるポイント
- 定義 — 全結合を畳み込みに置換し、画素単位の予測を可能にしたネット
- タスク — セマンティックセグメンテーションの基礎的モデル(G-325)
- 対比 — 画像分類=ラベル1つ、FCN=画素マップ
- すり替え回避 — 物体検出・GAN・NLPモデルではない
すり替えに注意
| 誤った説明 | 正しい理解 |
|---|---|
| FCN=U-Net | 全結合の畳み込み化 vs エンコーダ・デコーダ設計 |
| FCN=物体検出 | 画素分類 vs バウンディングボックス |
| FCN=画像分類そのもの | 出口を変えて別タスクに拡張 |
| FCN=CNNの別名 | CNNの一設計・歴史的モデル名 |
| 画素予測=画像拡大 | クラス割当のセグメンテーション |
よくある質問
FCNは何をするモデルですか?
画像分類用CNNの全結合層を畳み込みに置き換え、入力画像の各画素にクラスを割り当てるセマンティックセグメンテーションを可能にしたモデルです。画素単位の予測マップを出力する点が特徴です。
FCNとU-Netは同じですか?
同じではありません。どちらもセグメンテーション向けですが、FCNは全結合の畳み込み化という設計転換の代表、U-Netはエンコーダ・デコーダとスキップ接続を持つ別アーキテクチャです。いずれも画素単位の領域推定を行います。
FCNは物体検出モデルですか?
いいえ。FCNは画素ごとにクラスを割り当てるセマンティックセグメンテーション向けです。物体検出はバウンディングボックスで位置とクラスを推定する別タスクであり、YOLOやFaster R-CNNなどが代表例です。