CNNでパディングを使う理由とは?「隅っこのデータが無駄になる」の真相を解説!

こんにちは。ゆうせいです。

CNN(畳み込みニューラルネットワーク)でパディングってなんで使うの?
こんな疑問を持っていませんか?

「隅っこのデータが無駄になるから」なんて説明をよく聞くけれど、それってどういう意味?本当にそれだけ?

この記事では、パディング(padding)の本当の意味と効果について、図や例を交えてわかりやすく解説します!


パディングとは?

パディング(padding)とは、画像の周囲にゼロなどの値を追加して、入力サイズを少し大きくする操作のことです。

CNNでは、画像に「畳み込み処理(convolution)」という操作を行いますが、その際に画像の端のピクセル(画素)がうまく扱えないことがあります。


「隅っこが無駄になる」とはどういうこと?

これは、畳み込みカーネル(フィルタ)が画像全体をスライドしていくときの話です。

たとえば、以下のような画像があったとします:

  • 入力画像サイズ:5×5
  • カーネルサイズ:3×3
  • ストライド:1(1ピクセルずつ移動)

この場合、カーネルが中央にあるときはちゃんと3×3の範囲で畳み込みができますが、端っこにいくと「画像の外側にはみ出してしまう」ため、畳み込みを適用できない領域が生まれてしまうんです。

結果として、出力サイズが小さくなってしまう


パディングの目的は?

ズバリ、パディングの目的は以下の3つ!

① 出力サイズを保つ(サイズの縮小を防ぐ

パディングをしないと、1回の畳み込みで画像のサイズが縮んでいきます
たとえば5×5の画像に3×3のカーネルを使うと、出力は3×3になります。

このまま繰り返していくと、数回でサイズが極端に小さくなってしまいます。

パディングを加えると、

  • 入力:5×5 → パディング追加:7×7(例)
  • 出力サイズを5×5に保つことができる!

これが「隅っこのデータを無駄にしない」という意味です。


② 画像の端の情報も取り込む(全領域を学習に使う

端のピクセルは、中央のピクセルと比べて、フィルタがかかる回数が少なくなりがちです。
つまり、学習に与える影響が少なくなってしまう。

パディングを使うことで、

  • フィルタが画像の外にはみ出してもOKなように調整できる
  • 端のピクセルにもきちんと畳み込みを適用できる

結果、画像全体を均等に扱えるようになります。


③ モデルの設計がしやすくなる(構造をシンプルに保てる

多くのCNNでは、畳み込みやプーリングを何層も重ねていきます。
そのときに出力サイズが層ごとにどんどん変わってしまうと、次の層の設計が面倒になります。

そこで、出力サイズを一定に保てるようにパディングすることで、モデル設計がシンプルになります。


パディングの種類

パディングの種類説明
validパディングなし。出力サイズが縮む
same出力サイズが入力と同じになるように自動でパディングを追加
zero padding周囲をすべて0で埋める(一般的)

たとえば TensorFlow や Keras の畳み込み層では、以下のように使います:

Conv2D(filters=32, kernel_size=(3,3), padding="same")


数式で見るパディングの効果

CNNの出力サイズを計算する数式は次のようになります:

\text{Output size} = \left\lfloor \frac{N + 2P - F}{S} + 1 \right\rfloor

  • $N$:入力サイズ
  • $P$:パディング数
  • $F$:フィルタ(カーネル)サイズ
  • $S$:ストライド

たとえば:

  • 入力:5×5
  • フィルタ:3×3
  • パディング:1(周囲に1ピクセルずつ)
  • ストライド:1

ならば、

\text{Output} = \frac{5 + 2 \times 1 - 3}{1} + 1 = 5

→ 出力サイズが入力と同じ5×5になる!


まとめ:なぜパディングが必要なのか?

  • 「隅っこのデータが無駄になる」という表現は、
    • 端の情報が使われない
    • 出力サイズが小さくなる
      という問題を端的に表したものです。

でも実際にはそれだけでなく、モデルの設計や学習効率にも関わる重要な役割を持っているんですね。


今後の学習の指針

CNNのパディングを理解したら、次に進むとよい内容は以下です:

  • ストライド(stride)との関係
  • プーリング(pooling)層でのパディング
  • トランスポーズ畳み込み(逆畳み込み)でのパディング
  • 画像生成系モデル(例:GAN)でのパディングの役割

深層学習の世界は「細かい仕組みの理解」が性能に直結します。ぜひ一歩ずつ着実に学んでいきましょう!!

生成AI研修のおすすめメニュー

投稿者プロフィール

山崎講師
山崎講師代表取締役
セイ・コンサルティング・グループ株式会社代表取締役。
岐阜県出身。
2000年創業、2004年会社設立。
IT企業向け人材育成研修歴業界歴20年以上。
すべての無駄を省いた費用対効果の高い「筋肉質」な研修を提供します!
この記事に間違い等ありましたらぜひお知らせください。