最終更新日:2026年8月21日
gk cnn cheatsheet
まず結論
CNN(Convolutional Neural Network)は、画像の局所的な特徴を畳み込みで捉え、重み共有によってパラメータ数を抑えながら空間構造を扱うニューラルネットワークです。
G検定では、まず次の対応で切り分けます。
| キーワード | CNNでの意味 |
|---|---|
| フィルタ・カーネル | 局所的な特徴を抽出する学習対象 |
| 重み共有 | 同じフィルタを画像内の複数位置で使う |
| 特徴マップ | 畳み込みで得られる出力 |
| プーリング | 空間サイズを縮小・要約する処理 |
| チャネル | 特徴マップの種類を表す軸 |
出力サイズやパラメータ数の計算問題は、CNN計算問題まとめに分離しています。
直感的な説明
画像全体を一度に見るのではなく、小さな窓を少しずつ動かして、
「この場所にエッジがあるか?」
「この場所に模様があるか?」
のような特徴を探すイメージです。
同じ窓を画像のあちこちで使うのが重み共有です。そのため、全結合層だけで画像を扱う場合より、画像の位置関係を利用しながらパラメータ数を抑えやすくなります。
定義・仕組み
畳み込み層(Convolution)
小さなフィルタを入力上で移動させ、局所領域との計算から特徴マップを作ります。
重要なのは、CNNのフィルタが人手で固定されるのではなく、通常は学習によって更新される重みだという点です。
重み共有
同じフィルタを複数の位置で使います。
これにより、
- 画像のどこに現れても似た特徴を検出しやすい
- 全結合に比べて必要なパラメータ数を減らしやすい
という特徴があります。
プーリング層(Pooling)
一定領域をMax PoolingやAverage Poolingなどで要約し、空間サイズを小さくします。
通常のMax PoolingやAverage Poolingには学習される重みはありません。
ただし、現代のCNNではプーリングを必ず使うわけではなく、ストライド付き畳み込みなどで縮小する構成もあります。
CNNの典型的な流れ
画像
↓
畳み込み → 特徴抽出
↓
活性化関数
↓
必要に応じてプーリング・ダウンサンプリング
↓
より高次の特徴
↓
分類などの出力
CNNは必ず「畳み込み → プーリング → 全結合」という固定構造ではありません。畳み込みを中心に空間構造を扱うことが本質です。
いつ使う?(得意・不得意)
CNNは、画像のように近くの要素同士の関係が重要なデータで特に使われてきました。
代表的な用途は、
- 画像分類
- 物体検出
- セマンティックセグメンテーション
- 画像特徴抽出
などです。
一方、画像全体の遠い位置同士の関係を直接扱うには工夫が必要です。近年はVision Transformerなど、Attentionを使う画像モデルも利用されています。
G検定ひっかけポイント
- ❌「CNNのフィルタは人が決めた固定値である」
- 通常、フィルタの重みは学習されます。
- ❌「プーリング層にも畳み込みフィルタと同じ学習パラメータがある」
- 通常のMax / Average Poolingにはありません。
- ❌「重み共有とは、すべての層で同じ重みを使うこと」
- 同じフィルタを空間上の複数位置で共有するという意味です。
- ❌「CNNには必ず全結合層が必要」
- Global Average Poolingなどを使う構成もあり、必須ではありません。
- ❌「CNNは位置情報を完全に無視する」
- 局所的な空間構造を利用する点がCNNの重要な特徴です。
判断基準
- 局所特徴・フィルタ → 畳み込み
- 同じフィルタを各位置で利用 → 重み共有
- 空間サイズを要約 → プーリング
- 数値計算 → CNN計算問題まとめ
まとめ(試験直前用)
- CNN=局所特徴を畳み込みで捉える
- フィルタは通常学習される
- 重み共有=同じフィルタを複数位置で使う
- Max / Average Poolingには通常学習パラメータなし
- 計算問題は別ページで確認する