畳み込みと画像認識とは

このページは、深層学習における 畳み込みニューラルネットワーク(CNN)画像・空間データ の扱いを、初学者向けに短く整理するノートです。時系列の背景は 畳み込みと画像認識史、深層学習全体の座標は 深層学習モデル史 を参照してください。古典機械学習側の特徴量設計との対比は 特徴量設計(概要) も併せて読むと立体的になります。

ざっくりいうと

  • 畳み込み(convolution):画像の 局所パターン(エッジ、テクスチャなど)を、小さな フィルタ(カーネル) でスライドしながら拾う演算。同じフィルタを画像全体に使い回す パラメータ共有 が特徴です。
  • 畳み込み層:畳み込みの結果を特徴マップとして積み上げ、段階的に 大きな見た目のパターン(部品→物体)へつなげる層の総称です。
  • プーリング(pooling):近傍の値をまとめて解像度を下げ、位置のゆらぎに強くする処理。代表は 最大プーリング です。
  • CNN(Convolutional Neural Network):畳み込み層・プーリング層・全結合層などを組み合わせたネットワーク。画像分類の定番アーキテクチャです。
  • 転移学習(transfer learning):ImageNet などで学習した重みを初期値にし、手元の少量データで微調整する実務の定番です。

物体検出(どこに何があるか)や セグメンテーション(ピクセル単位の領域)も、畳み込みを骨格にした設計が主流です。

2D 画像への畳み込み:カーネルが入力上を動き、出力画素を計算する様子

図: 小さな カーネル(フィルタ) が画像上をスライドし、各位置で畳み込み結果を得るイメージ。出典: Michael Plotke(CC BY-SA 3.0)

全結合だけのネットワークとの違い(感覚)

観点 ピクセルを並べた全結合(典型) CNN(典型)
入力の扱い 全ピクセルが互いに直接つながる 近傍 から順に特徴を積み上げる
パラメータ数 画像が大きいと爆発しやすい 共有フィルタ で抑えやすい
位置のゆらぎ 学習データに依存しやすい 畳み込み+プーリングで 局所不変性 を取りやすい
解釈 ブラックボックスになりがち フィルタの可視化などの手がかりがある

古典機械学習では SIFT や HOG など人手の特徴を作り、SVM などに渡す流れが長くありました。CNN は 特徴の設計そのもの をデータから学ぶ方向へ重心を移した、と理解するとつながります。

典型的な CNN:畳み込み層・プーリング層の繰り返しと全結合による分類

図: 入力画像 → 畳み込み/プーリングの繰り返し → 全結合でクラス出力、という典型的な流れ。出典: Aphex34(CC BY-SA 4.0)

畳み込みと画像認識で何をしているか

たとえば「猫か犬か」を分類するとき、生のピクセル列をそのまま全結合に入れると、画素数に比例してパラメータが増え、位置が少しずれただけで別物のように見えてしまいます。CNN は 小さな窓 でエッジや模様を拾い、層を重ねるごとに 目・耳・全体の形 のような抽象度へ進みます。だいたい次の流れです。

  1. 前処理:リサイズ、正規化、データ拡張(回転・反転・色調のゆらぎ)で学習データのバリエーションを増やす。
  2. 畳み込み+活性化:複数チャンネルの特徴マップを作る(ReLU など)。
  3. プーリング:空間サイズを縮め、計算と位置のゆらぎへの頑健性を確保する。
  4. 繰り返し:浅い層はエッジ、深い層は部品・物体に近い表現になりやすい。
  5. 分類ヘッド:特徴マップをベクトル化し、クラス確率(ソフトマックスなど)へつなぐ。

学習では、正解ラベルとの誤差(交差エントロピーなど)から 逆伝播 でフィルタの重みを更新します。推論では、学習済みフィルタで特徴を抽出し、最後の層でクラスを選びます。

CNN のパイプライン:特徴学習(畳み込み・プーリング)からベクトル化・分類へ

図: 入力画像、特徴学習ブロック、平坦化、全結合による分類までを一枚で示した例。出典: Irisbox(CC BY 4.0)

物体検出では、分類に加えて どこに何があるか(バウンディングボックス)を出す。二段階(候補を出してから精査)と一段階(一度に位置とクラス)の構成がよく比較されます。

深層学習ベースの物体検出:2-stage と 1-stage の構成比較

図: (a) 2-stage 検出器、(b) 1-stage 検出器の概念図。出典: Licheng Jiao ほか、Commons(CC BY 4.0)

学習フェーズと推論フェーズ

段階 役割 触るもの
学習 フィルタと分類器の重みをデータから更新 損失関数、オプティマイザ、データ拡張
推論 学習済み重みでラベルや領域を出力 前処理の一貫性、しきい値、後処理(NMS など)

検出・分割では、アンカーFPN などアーキテクチャ固有の部品が増えますが、骨格は「畳み込みで特徴を作り、タスク用のヘッドで出力する」という形が多いです。

強みと限界(短く)

強み

  • 画像の 空間構造(近くの画素が意味を持つ)を自然に扱える。
  • パラメータ共有により、高解像度入力 でも学習可能な設計にしやすい。
  • 大規模データセットと GPU により、2010 年代以降 画像認識の実用域 が一気に広がった。
  • 転移学習 で、手元データが少なくても始めやすい場面がある。

限界

  • データの偏りドメイン差(学習環境と本番環境の違い)で性能が落ちやすい。
  • 敵対的入力(人間には分からない摂動)に弱い例が知られ、運用では頑健性の検証が要る。
  • 解釈性は古典の線形モデルより重く、説明責任 が求められる領域では追加の工夫が必要。
  • 計算・メモリ・電力コストが大きく、エッジ端末では 軽量化(量子化、蒸留など)が論点になる。

よく混ざる用語(会話での補足)

チャンネル

カラー画像なら RGB の 3 チャンネル。畳み込みの出力も複数チャンネルの 特徴マップ になり、次の層の入力になる、というイメージです。

畳み込み層のフィルタ:前層の複数チャンネル(特徴)をまとめて受け取る

図: 1 つのフィルタが、前の層から 3 チャンネル分 の特徴を受け取り、次の特徴マップを作るイメージ。出典: Cecbur(CC BY-SA 4.0)

ストライドとパディング

ストライド(stride) はフィルタを動かす間隔。パディング(padding) は端の画素を扱うための余白。出力サイズの計算でよく話題になります。

パディングとストライドが変わると、出力マップのサイズ・位置がどう変わるか

図: 青が入力、シアンが出力。パディングやストライドの違いによる出力の変化。出典: Vincent Dumoulin, Francesco Visin(MIT / Commons

受容野(receptive field)

深い層ほど、元画像の 広い範囲 を見ているとみなせる領域が広がります。検出のスケール設計などと結びつきます。

データ拡張(data augmentation)

学習時だけランダムに反転・クロップ・色調を変え、見た目のバリエーション を人工的に増やす手法。過学習抑制に効くことが多いです。

関連