プーリング層とは
プーリング層(Pooling Layer)は、CNNにおいて特徴マップの空間的なサイズを縮小するために使用される層です。ダウンサンプリングとも呼ばれ、計算量とメモリ使用量を削減しながら、特徴の位置に対する頑健性を高める役割を果たします。プーリングにはいくつかの方式があり、それぞれ異なる特性を持っています。
| ひとことで言うと | 特徴マップを間引いて小さくし、計算を軽く・位置ずれに強くする層。 |
|---|---|
| どこで使う | CNNの畳み込み層の直後。最大値を取るMaxプーリングが最も一般的。 |
| 注意点 | 情報を捨てるので、細かい位置が大事なタスクでは使いすぎに注意。 |
最大プーリングと平均プーリング
最も一般的なプーリング方式は最大プーリング(Max Pooling)で、各領域から最大値を選択します。これにより、最も強い特徴応答が保持されます。一方、平均プーリング(Average Pooling)は各領域の平均値を計算し、より滑らかな特徴表現を生成します。Global Average Pooling(GAP)は特徴マップ全体の平均を取り、全結合層の代替として分類に使用されることもあります。
1小窓で区切る2×2などに分割
▶
2最大値を選ぶ一番強い反応だけ残す
▶
3サイズが半分に縦横それぞれ縮む
▶
4位置ずれに強く多少ずれても同じ結果
プーリングの設計パラメータ
プーリング層の動作は、ウィンドウサイズとストライドによって制御されます。一般的に2x2のウィンドウでストライド2を使用し、特徴マップのサイズを半分に縮小します。ストライドをウィンドウサイズより小さくすると重複プーリングとなり、より多くの情報が保持されます。
プーリングの役割と近年の動向
プーリング層は過学習の抑制や計算効率の向上に貢献しますが、空間情報の一部が失われるという欠点もあります。近年のアーキテクチャでは、ストライド付き畳み込み(Strided Convolution)でプーリングを置き換える設計も増えています。これにより、ダウンサンプリングの方法もモデルが学習できるようになり、より柔軟な特徴抽出が可能になります。