プーリングは、ニューラルネットワーク、特に畳み込みニューラルネットワーク(CNN)で最も顕著に使用されるダウンサンプリング操作です。プーリング層は、多くのベクトルに分散した情報をより少ないベクトルに集約し、冗長性と必要な計算量やメモリ量を削減します。また、後続層のニューロンの受容野を拡大し、モデルを入力の小さな変動に対してより堅牢にします。プーリングは通常、畳み込み層の後に適用され、特徴マップの空間次元を徐々に縮小しながら、最も重要な情報を保持します。
2次元CNNでは、プーリング層は入力テンソル \(x \in \mathbb{R}^{H \times W \times C}\) を受け取ります。ここで、\(H\) は高さ、\(W\) は幅、\(C\) はチャネル数であり、出力テンソル \(y \in \mathbb{R}^{H' \times W' \times C'}\) を生成します。この操作は、2つのパラメータ、つまりフィルタサイズ(またはカーネルサイズ)\(f\) とストライド \(s\) によって制御されます。場合によっては、水平方向と垂直方向で別々のフィルタサイズとストライドが使用され、\(f_H, f_W, s_H, s_W\) と表記されます。出力エントリ \(y_{i,j,c}\) の受容野は、それに影響を与え得る入力エントリの集合であり、通常はストライドによって決定される位置を中心としたサイズ \(f \times f\) のウィンドウです。
最大プーリング
最大プーリングは、最も一般的なプーリングの変種です。入力の各ウィンドウから最大値を選択します。形式的には、フィルタサイズ \(f\) とストライド \(s\) に対して、位置 \((i,j,c)\) での出力は次のように定義されます。
\[\mathrm{MaxPool}(x|f,s)_{i,j,c} = \max(x_{is:is+f-1, js:js+f-1, c})\]
ここで、表記 \(is:is+f-1\) はインデックスの範囲(\(is\) から \(is+f-1\) まで)を示します。水平方向と垂直方向のストライドが異なる場合、式は \(x_{i s_H : i s_H + f_H - 1, j s_W : j s_W + f_W - 1, c}\) に一般化されます。最大プーリングは、各ローカル領域で最も強い活性を保持するのに効果的であり、エッジやテクスチャなどのような特徴を保持しながら、重要でない詳細を切り捨てるのに役立ちます。
平均プーリング
平均プーリングは、各ウィンドウ内のすべての値の平均を計算し、最大値を使用しません。これは、時々、特に分類出力の前のネットワークの最終層で、最大プーリングの代わりに使用されます。平均プーリングはファーチャードマップを滑らかにし、オーバーフローを減らすことができますが、鮮明な処理が失われる可能性があります。グローバル平均プーリングは、フィルタサイズが空間次元全体に等しい特別なケースであり、レイヤごとに単一の出力値を提供し、2010年代後半のネットワーク設計のようなアーキテクチャでは、全結合層を置き換えるためによく使用されます。
畳み込みアーキテクチャでの役割
プーリング層は、多くの古典的なCNNアーキテクチャの不可欠な部分です。たとえば、2012年に導入されたAlexNetモデルは、最初、2番目、5番目の畳み込み層の後に最大プーリングを使用しました。2014年に開発されたVGGネットワークは、各畳み込み層のブロックの後に、フィルタサイズ2とストライド2を持つ最大プーリングを採用しました。これらの設計は、分類前にファーガードマップの空間次元を224x224から7x7に縮小するのに役立ち、少ないパラメータでより深いネットワークを可能にしました。
代替と最新の使用法
最新のアーキテクチャでは、プーリングはストライド付き畳み込みに置き換えられることがあります。ストライド付き畳み込みは、1より大きいストライドを持つ畳み込みを使用してダウスサンプリングを行います。この手法は、生成モデルや特定のトランスフォーマーベースの視覚システムのようなモデルで使用され、ネットワークが固定ルールではなくダウスサンプリングを学習できます。しかし、プーリングは、その単純さと有効性から、多くの実装的実装で一般的です。トランスフォーマーアーキテクチャでは、プーリングは中心的ではありませんが、分類ヘッダーを持つの視覚トランスフォーマーでは、グローバル平均プーリングが依然使用されています。
理論的な特性
プーリングは、局所的なウィンドウにわたって集約するため、入力の小さなシフトが最大値または平均値がウィンドウ内に留まっていれば同じ出力を生成することができます。この特性は、オブジェクト認識のようなタスクに役立ちます。そこでは、特徴の正確な位置よりもその存在が重要です。反受容野の拡大は、より深い層にあるニューロンが入力のより大きい領域に対応できることを意味し、ネットワークが階層的なパターンを捕えることを可能にします。プーリングはまた、パラメータと操作の数を減らすことで後続層の計算コストを削減し、GPUやアクセラレータのようなハードウェアでのトレーニングに不可欠です。