最終更新日:2026年8月21日
gk cnn cheatsheet
G検定トップ
> CNN計算問題まとめ|出力サイズ・パラメータ数【G検定】
まず結論
CNNの計算問題では、何を求めているかを先に分けることが重要です。
| 求めるもの | 見る値 |
|---|---|
| 出力サイズ | 入力サイズ・カーネル・ストライド・パディング |
| Convのパラメータ数 | カーネル・入力チャネル・出力チャネル・バイアス |
| FCのパラメータ数 | 入力ノード数・出力ノード数・バイアス |
CNNの構造・重み共有・プーリングの役割は、CNN総まとめで確認してください。このページは計算問題専用です。
直感的な説明
計算問題で混乱しやすいのは、画像の大きさを求める計算と学習する重みの数を求める計算を混ぜてしまうことです。
- 出力サイズ → 「画像の縦横がどう変わるか」
- パラメータ数 → 「学習する重みが何個あるか」
この2つを分けるだけで、多くの選択肢を切りやすくなります。
定義・仕組み
1. 畳み込み層の出力サイズ
1方向の出力サイズは、基本的に次で求めます。
(入力サイズ + 2×パディング − カーネルサイズ) ÷ ストライド + 1
記号で書くと、
(H + 2P - K) / S + 1
です。
H:入力サイズP:パディングK:カーネルサイズS:ストライド
縦と横で条件が異なる場合は、それぞれ別に計算します。
2. 畳み込み層のパラメータ数
通常の2次元畳み込みで、各出力チャネルにバイアスが1個あるとすると、
K_h × K_w × C_in × C_out + C_out
です。
たとえば、
- カーネル:3 × 3
- 入力チャネル:16
- 出力チャネル:32
なら、
3 × 3 × 16 × 32 + 32
= 4640
です。
出力画像の縦横サイズは、Convのパラメータ数には掛けません。 重み共有によって、同じフィルタを複数位置で使うためです。
3. 全結合層のパラメータ数
入力ノード数を N_in、出力ノード数を N_out とすると、
N_in × N_out + N_out
です。
たとえば128入力・10出力なら、
128 × 10 + 10 = 1290
です。
いつ使う?(得意・不得意)
この整理は、問題文に次の表現が出たときに使います。
- 「畳み込み後の特徴マップの大きさ」
- 「出力サイズ」
- 「学習パラメータ数」
- 「重みとバイアスの総数」
- 「Flatten後のノード数」
試験中は、まず出力サイズなのか、パラメータ数なのかを確認してから式を選びます。
G検定ひっかけポイント
- ❌ パディングを
+Pだけ足す- 左右・上下の両側を考えるので、1方向では通常
+2Pです。
- 左右・上下の両側を考えるので、1方向では通常
- ❌ 最後の
+1を忘れる- 出力サイズ式の頻出ミスです。
- ❌ Convのパラメータ数に出力の縦横サイズを掛ける
- 重み共有のため掛けません。
- ❌ RGB画像の入力チャネルを1とする
- 通常のRGB入力なら3チャネルです。
- ❌ バイアスを必ず含めると思い込む
- 問題設定によってバイアスなしの場合もあります。条件文を確認します。
- ❌ PoolingにもConvと同じ式で学習パラメータ数を求める
- 通常のMax / Average Poolingには学習される重みはありません。
試験中の最短手順
- 求めるものを確認する
H × W × Cを書く- Convなら縦横サイズと出力チャネルを更新する
- パラメータ数なら
K・Cin・Coutを見る - バイアスを含むか条件文を確認する
まとめ(試験直前用)
- 出力サイズ=入力・P・K・S
- Convパラメータ数=K×K×Cin×Cout+バイアス
- 出力の縦横サイズはConvの重み数に掛けない
- RGBなら入力チャネル3を確認
- まず「サイズか、重み数か」を切り分ける