平均値プーリング(Average Pooling)は、畳み込みニューラルネットワーク(CNN)において、特徴マップの空間的な次元を削減するために使用されるプーリング層の一種です。最大値プーリングとは異なり、この層は入力された特徴マップを小さな領域に分割し、各領域から平均値を抽出することで、特徴の平均的な傾向を保持しつつ、計算量を削減します。
平均値プーリングの仕組み
平均値プーリングは、以下の手順で特徴マップを処理します。
- 領域分割:
- 入力された特徴マップを、指定されたサイズの小さな領域(プーリングウィンドウ)に分割します。
- 平均値算出:
- 各領域内の要素の平均値を算出します。
- 出力生成:
- 算出された平均値を集めて、新しい特徴マップ(プーリングされた特徴マップ)を生成します。
平均値プーリングの利点
平均値プーリングは、以下の利点を持ちます。
- 特徴の平滑化:
- 各領域内の特徴を平均化することで、特徴マップを平滑化し、ノイズの影響を低減します。
- 位置不変性:
- わずかな位置のずれに対して、出力が変化しない性質(位置不変性)を獲得し、モデルの汎化性能を向上させます。
- 計算量の削減:
- 特徴マップのサイズを小さくすることで、後続の層における計算量を削減します。
平均値プーリングの応用
平均値プーリングは、画像認識、物体検出、セマンティックセグメンテーションなど、様々な画像処理タスクにおいて、CNNの構成要素として利用されています。特に、特徴マップの平均的な傾向を保持したい場合に有効です。
平均値プーリングの例
例えば、4×4の特徴マップに対して、2×2のプーリングウィンドウで平均値プーリングを行う場合、以下のような処理が行われます。
入力特徴マップ:
[[1, 2, 3, 4],
[5, 6, 7, 8],
[9, 10, 11, 12],
[13, 14, 15, 16]]
プーリングウィンドウ: 2x2
ストライド: 2
出力特徴マップ:
[[3.5, 5.5],
[11.5, 13.5]]
この例では、入力特徴マップが2×2の領域に分割され、各領域から平均値が算出されています。
補足
- 平均値プーリングは、最大値プーリング(Max Pooling)と並んで、CNNでよく使用されるプーリング手法です。
- プーリングウィンドウのサイズやストライド(移動量)は、ハイパーパラメータとして設定できます。