【第76回】AIは画像の端をどう扱う?パディングとは
畳み込みを行うと、画像のサイズが小さくなってしまうことがあります。
そのままだと情報が失われてしまう場合もあります。
この記事では、サイズを保つ工夫であるパディングをやさしく解説します。
1. 読み方
ぱでぃんぐ (Padding)
2. 意味(定義)
「畳み込み演算を行う際に、入力データの周囲に『余白』を追加すること」です。多くの場合、この余白には「0」などの決まった数値が入ります(これを Zero Padding と呼びます)。
なぜわざわざ「余白」を作るのか? それには2つの大きな理由があります。
端っこの情報を守るため: フィルターをスライドさせていくと、画像の「中心部」は何度も計算されますが、「端っこ」の部分は計算回数が少なくなってしまいます。パディングで周りを広げておくことで、端のピクセルもしっかりと特徴として捉えることができます。
出力サイズの縮小を防ぐため: 畳み込みを繰り返すと、フィルターのサイズによって画像(特徴マップ)はどんどん小さくなっていきます。パディングを使って外側に広げておけば、計算後も元の画像と同じサイズを維持したり、極端に小さくなるのを防いだりできます。
【写真の周りに白い枠をつける例え】
あなたは、大きな「虫眼鏡」を使って、写真(入力データ)を端から順番に細かく検査しようとしています。
パディングなしの状態: 虫眼鏡は写真からはみ出して使えないルールなので、写真の「端っこ」を調べるとき、虫眼鏡の中心をうまく合わせられません。
その結果: 中央に比べて端っこの情報は少ししか調べられず、無視されがちになってしまいます。また、調べるたびに全体が一回り小さくなってしまいます。
パディングありの状態: あらかじめ、写真の周りに「白い余白(パディング)」を貼り付けて、写真を一回り大きくしておきます。
その結果: 虫眼鏡を思いきり端っこまで動かせるようになります(はみ出しても白い余白があるため)。「写真の本当の端っこ」にもじっくり虫眼鏡をあてて検査できるので、大事な端っこの情報もしっかりと次の処理へ引き継ぐことができるのです。
3. 歴史・背景
CNNが登場した初期から、パディングは非常に重要なテクニックとして使われてきました。特に、層を深く重ねる(Deep Learning)際には、層を通るたびにデータが小さくなってしまうことが致命的な問題となります。何十層も重ねると、入力画像が消えてなくなってしまうからです。これを防ぐために、「畳み込みのたびにパディングでサイズを補う」という手法が確立されました。
4. 比較・対比(似た用語との違い)
ここが試験で狙われる「整理」ポイントです!
Zero Padding (ゼロ・パディング) ★超重要
最も一般的な手法。周囲に「0」を埋めること。計算がシンプルで、端の情報を引き継ぎやすい。
パディング vs ストライド (Stride)
パディング: データの「外側」を広げて、サイズを維持したり端を守ったりする(面積を増やすイメージ)。
ストライド: フィルターを動かす「歩幅」。これを大きくすると、データはどんどん小さくなっていく(面積を減らすイメージ)。
パディング vs 畳み込み層の役割
畳み込み層: 特徴を見つける。
パディング: その特徴抽出を「正しく、かつサイズを維持して」行うための補助的なテクニック。
5. 活用シーン(どんな問題に使うか)
深いネットワークの構築: 層を重ねてもデータの解像度(サイズ)が極端に小さくならないように制御する。
画像認識の精度向上: 画像の端にある重要な特徴(例えば、動物の耳や足など)を見落とさないようにする。
6. G検定での出題傾向
G検定では、以下のポイントが狙われます!
パディングの目的: 「端っこの情報を保持するため」「出力サイズの縮小を防ぐため」というキーワード。
Zero Padding の意味: 周囲に「0」を埋める手法であること。
畳み込み・ストライドとの関係性: 畳み込みによってサイズが減るのを、パディングで補うという文脈。
計算後のサイズへの影響: 「パディングを行うと、出力される特徴マップのサイズは(パディングなしの場合に比べて)大きくなる」という物理的な仕組み。
7. G検定の例題
【問題1:パディングの目的】
畳み込みニューラルネットワーク(CNN)において、「パディング(Padding)」を行う主な理由として、最も適切なものはどれですか?
A. フィルターの移動距離(ストライド)を大きくして、計算速度を向上させるため。
B. 学習率を調整し、勾配消失問題を回避するため。
C. 入力データの周囲に余白を追加することで、端の部分の情報を保持し、出力サイズの縮小を抑制するため。
D. 特徴マップ内の最大値を取り出し、データの圧縮を行うため。
【問題2:パディングの効果】
畳み込み演算において、入力画像に対して「Zero Padding」を適用した場合の性質として、正しいものはどれですか?
A. 周囲に「0」を追加することで、特徴マップのサイズは(パディングなしの場合よりも)小さくなる。
B. 周囲に「0」を追加することで、端の部分の計算における情報の損失を防ぎ、出力サイズの縮小を緩和する。
C. データの値をすべて「0」に書き換えるため、学習が困難になる。
D. ストライド(歩幅)を自動的に1に固定する役割を持つ。
8. 例題の回答と解説
【問題1 の回答】
正解:C
【解説】 パディングは「端っこの保護」と「サイズ維持」が目的です。A はストライドの説明、B は最適化アルゴリズム(Adamなど)の説明、D はプーリング層の説明です。
【問題2 の回答】
正解:B
【解説】 パディングを適用すると、計算対象となる領域が外側に広がるため、出力サイズは(パディングなしの場合よりも)「大きく」または「維持」されます。したがって、「小さくなる」とする A は誤りです。C は極端な表現で誤り、D もパディングの役割ではありません。
