1. プーリング層 (Pooling Layer)とは [概要]
プーリング層 (Pooling layer) とは,画像を入力としたCNN(畳み込みニューラルネットワーク)において,特徴マップを空間的な局所ごとに代表値に集約することにより,特徴マップの空間的な解像度を1段階下げる(ダウンサンプリング)も担当する層である.プーリング層を通じた受容野の大きさに沿った「局所的集約~中間パーツ的集約~全体的集約」を行う.こそのおかげで,プーリングを実施した空間範囲(小~中~大)の中での変化への不変性を獲得し,CNNの(空間範囲的な)汎用性が向上する.
この記事では,まずは物体認識むけCNNにおける,「空間的な局所プーリング層」の基本形(2節)と,その効果について述べる(3節).その後,その他の画像認識応用(物体検出,セマンティックセグメンテーション)向けの「発展型」のうち,グローバル平均プーリング,空間ピラミッドプーリング層,関心領域プーリング(ROI Pooling)など,代表的なものを列挙・比較する(4節).
1.1 記事の構成
2節以降は,以下の構成である:
- 2節 基本的なプーリング層
- 3節 局所プーリング層をCNNで使用する効果
- 4節 プーリング層の発展型 (領域化と全体化)
- 4.1 グローバル平均プーリング
- 4.2 空間ピラミッドプーリング層
- 4.3 ROI pooling(関心領域プーリング)
- 5節 まとめ
1.2 導入
図1は,物体認識向けのCNNにおけるプーリング層の挙動とその役割をまとめ,図示したものである.CNNの [畳み込み層 x N層 (-バッチ正規化) – ReLU]ブロックを通じたコーディング(coding)で得られた「特徴マップ(の各チャンネル)」に対して,最大プーリング・平均プーリングを用いて,局所的な空間範囲 ([2 × 2] や [3 x 3])ごとの代表値だけを残す,ダウンサンプリング操作を行い,特徴集約を行う.これにより,その次の[畳み込み層 (- バッチ正規化 )- ReLU]ブロックでとらえる受容野(receptive field)の範囲を,2倍や3倍に広げて,特徴マップの空間スケールを,画像ピラミッド的に高めることができる.つまり,プーリングを行う毎に,次のブロックのコーディング(※ 特に畳み込み層のフィルタ) でとらえる特徴の抽象度について,1段階分だけ解像度を高めることができる(=より広い空間範囲の特徴を捉えるようになっていく).
つまりは,「特徴抽出(畳み込み層)→特徴集約(プーリング)」を段階的に行うことで,(ReLUの非線形化との連携もあるおかげで)入力の生画像データの高次元情報を段階的に解釈していき,終盤ヘッド層に順伝搬が到着するころには,線形識別しやすい特徴表現に変化させていくことができる.
※ CNNで,特徴マップの解像度が,各層を経るごとにどのように担当空間範囲が変わっていくかのイメージがまだ付いていない人は,「深層学習」「画像認識」などの本HPの参考テキストや, 私のCNNの記事を参考すること.
画像認識分野では,CNN流行以前の時代にも,プーリング操作はよく用いられ,特に細粒度物体認識(Fine-grained object recognition)の用途で,以前からよく研究されていた.2013年ごろ以降,CNNによる画像認識が定着して以降は,細粒度認識や,再同定(Re-ID)向けに加えて,セマンティックセグメンテーション(4.2節)や,(2ステージ型の)物体検出・インスタンスセグメンテーション・人物姿勢推定 (4.3節)など向けに,発展的な空間プーリング層が研究されている.
親記事:層(layers)[ディープラーニングの層の種類のまとめ]
2. 基本的なプーリング
基本的な(局所)プーリング操作として,最大値プーリングと平均プーリングの2つがある.
2.1 最大値プーリング
最大値プーリング層 (Max Pooling Layer) [Jarret et al., 2009], [Ciresan et al., 2011] は,カーネル内の最大値のみ残すプーリング層である(図1).画像の畳み込みニューラルネットワークにおいて,標準的に用いられるプーリング層である.AlexNet において「[3 x 3]のカーネル,重なりあり,ストライド幅2」の設定で使われてから,以降,最大値プーリングの使用が大規模画像認識CNNでは定着する.
計算も単純な層なので,ここでの説明は短く終えるが,このあと3節で述べるような利点が多くあるゆえ,最大値プーリングの使用はCNNにとっては非常に重要である.
2.2 平均プーリング
平均プーリング層 (Average Pooling Layer)は,カーネル内の平均値を出力してダウンサンプリングを行うプーリング層である(図3).最大値プーリングがデファクトスタンダードになる前は,LeNetで平均値プーリングが用いられていたが,そのあとの画像認識のCNNではあまり使われなかった.しかし,InceptionNet v3では,Inceptionモジュール内の 1×1畳み込み層の経路に1つあるプーリングには「平均プーリングと最大値プーリングのどっちを使ってもよい」となっておる.
一方で,セマンティックセグメンテーションにおいては,平均プーリング層はよく使われている.特徴マップ中の,入力画像空間の全体に対するプーリングを行うことで,画像シーン全体の広範囲なコンテキストを,後半の層まで伝播できるようになる.これは,平均値プーリングが画像全体の特徴の統計(平均ベクトル)を表現でき,コンテキストの集約に向いていることが理由である.
また,物体認識むけCNNでも,グローバル平均プーリング(4.1節)が,登場したのちは,終盤層で全結合層の代わりに用いられることが多くなる
3. CNNの隠れ層で使用する効果
3.1 階層的な特徴マップの取得
2節で紹介した,局所プーリング層を,CNNの隠れ層に挿入すると,代表的な特徴のみを捉えて解像度を下げて,特徴的な所(色,輝度)だけを残して特徴集約し,モザイク化した「1段階抽象度の上がった特徴マップ」を生成することができる.プーリング層による抽象化を繰り返していくことで,CNNは特徴マップの(空間方向の)階層化を行い,広範囲の特徴を効率的に抽象化できる.
この結果,古典的な手作り特徴(例:Pyramid化したHOG特徴量ベクトルなど)よりも,CNNは物体の「小-中-大のパーツ」をとらえた表現を,特徴集約を通じて,順伝搬時に各層の特徴マップに順々に検出することができる.これにより,CNNは,高い認識性能の発揮と,多数クラスへの対応が可能になる.
例えば VGGNet-16層の場合 [2 x 2] プーリングを5回行う.従って「5段階の解像度と空間範囲」(= 抽象度)で,プーリング層を減るごとに,その [2 x 2] 範囲の代表値のみを集約した特徴(マップ)へ変化していく.よって,小範囲や中範囲のボトムアップなパーツ特徴を,序盤の畳み込み層で捉えることができ,終盤の層ではトップダウンな抽象度の高い特徴 (物体領域全体や,シーン背景の広範囲をとらえた特徴マップ)ができあがる.これによりCNNは,クラス識別・物体検出・セマンティックセグメンテーションなどを行えるようなモデルを学習することができる.
3.2 局所変形に対する不変性
各段階で「畳み込み層 – ReLU」が検出した,「局所的なパーツ」への応答である特徴マップに対して,プーリング層を用いると,局所パーツの回転・平行移動・スケールへの不変性を獲得できる.
ここでは,畳み込み層はスケールや回転に強くないのを,プーリング層が回転・スケールの不変性を補っている仕組みになっている.こうしてプーリング層の助けで学習できる「階層的な特徴マップ」のおかげで,CNNの画像認識性能の高さが担保されている (学習データ分布とは無関係にそれらへの頑健性を獲得してしてしまっている点に注意).
しかし「局所の小さな変形には強い」と言われてきたCNN(特にプーリング層)であったが,反論も出ている [Azulay and Weiss, 2019].
3.3 軽量な次元削減
CNNが,もし他の次元削減手法を用いて,計算コストをじっくり使いながら空間解像度をダウンサンプリングしていくのであれば,全体の計算量が多くなりすぎて実用性を欠いてしまう.また,プーリング層はパラメータが不要であり,ネットワーク全体のメモリサイズの削減にも貢献する.
この意味で,プーリング層の使用で生まれる計算効率性やモデルサイズ削減は,CNNにとっては重要な効果をもたらしているといえる.
4. 発展型:中領域化 or 全体化
4.1 グローバル平均プーリング
Network in network [Lin et al., 2013] では,画像認識ネットワークの終盤の全結合層の代わりに用いるものとして,グローバル平均プーリング (Global Average Pooling,全体平均プーリング)が提案された(図4).入力のカーネルサイズ$k \times k$に対して,画像空間方向の全体 (=グローバル)における平均値をとり,[1 × 1] の空間サイズまで,特徴マップをプーリングする.
例えば Incepiton v1 では,以前のCNNでは全結合層であった終盤ヘッド層を,代わりに [7 x 7]グローバル平均プーリングで行うようにした(この直前の特徴マップサイズが [7 x 7]).これにより,(※プーリングには学習するパラメータがないので)CNNのパラメータを節約することができ,省モデル化のおかげで過学習抑制の効果を得ることにも成功した.その後,画像認識CNNの終盤層として,グローバル平均値プーリングを使用することが定番化する.
そして,画像認識CNNのグローバル平均プーリングの導入によって,CAM(Class Activation Map)によるCNN中間層の可視化による分析や,CAMの活性化を活用した,物体検出やセグメンテーションでの弱教師有り学習(Weakly Supervised Learning)の流行へも繋がる.
4.2 空間ピラミッドプーリング層
[He et al., 2014] では,ディープラーニング流行以前から提案されていた,空間ピラミッドプーリング (Spatial Pyramid Pooling, SPP) [Grauman and Darrell, 2005], [Lazebnik et al., 2006] を,CNNへ応用した空間ピラミッドプーリング層 (図5)が,物体認識・物体検出向けCNNの部品として提案された .
空間ピラミッドプーリング層の処理では,まず任意のサイズの領域窓内(例:selective searchで検出した領域提案のROI矩形)において,CNNのヘッドの識別層(全結合層)直前の特徴マップの空間全体を,3レベルの解像度のグリッドに分解しておく(例:カーネルサイズ[4 x 4] , [2 x 2], [1 x 1]の3レベルピラミッド).次に,グリッド上の各セルで最大値プーリングを行いベクトルへと特徴を集約し,それらの全レベル・全グリッドのプーリング結果ベクトルを全て結合した1本の特徴ベクトルを,次の全結合層へと窓内の最終結果として出力する.
この処理により,異なる入力画像(領域)サイズ・縦横比の画像を入力しても,毎回同じサイズに統一されたピラミッド特徴(表現)ベクトルを得ることができる.よって,窓上の物体領域のサイズ,スケール,アスペクト比の変化に強い特徴ベクトルを,識別ヘッド層(fc6, fc7)へ渡すことができる.
SPP層の登場する以前のCNNは,固定サイズ・同一のサイズ(スケール)・縦横比の入力しか受け付けられなかったので,CNNが学習済みのサイズ感,縦横比感にそった [224 x 224]の固定画像サイズに先にクロップやWarpで前処理しておき,サイズを統一しておく必要があった.それが,SPP層を挿入するとその制限から開放されるゆえ,複数スケールの物体サイズ・縦横変化や,コンテキスト変化に対する頑健性を学習できるようになった.
この性質を活かせるYolo v3や,PSPNetに,DeepLabシリーズのASPPモジュールなどにSPP層は採用されていき,以前は対処が難しかった複雑な物体間・領域間コンテキストを持つような画像でも,CNNが物体検出やセマンティックセグメンテーションを高精度に達成できるようになっていった.
一方でSPPを領域内プーリング路線で発展させていくことで,ROI Pooling (次の4.3節)やROI Alignなどの登場に繋がり,これらは物体検出や実例分割の性能を向上させることになる.
4.3 関心領域プーリング (ROI pooling)
ROI pooling(関心領域プーリング) [Girshick, 2015] は,Faster R-CNN などの「アンカーボックス型の2ステージ物体検出CNN」において,2ステージ間をつないで後半ステージ用の特徴をプーリングで集約する際に用いる領域プーリング層である(図6).
領域提案ネットワーク(1ステージ目)においては,どれも縦横のサイズが異なる関心領域(ROI, Region of Interest)の候補が出力されるが,それらを統一されたサイズ [3 x 3] x C チャンネルの特徴マップへ,プーリングする.これにより,元の領域提案のサイズが異なっていても,関心領域プーリングでサイズが [3 x 3] x C に統一された特徴マップから,2ステージ目のFast R-CNNによる物体検出判定(localization + classification)が行えるようになった.
5. プーリング層(Pooling Layer)のまとめ
この記事では,まずCNNで用いられる(局所)プーリング層の基本型として,隠れ層に用いる最大値プーリング・平均プーリングについて紹介し(2節),そのCNNにおける効果について述べた(3節).
また,発展型として,以下の「少し大きな領域でのプーリング」を紹介した(4節)
- グローバル平均プーリング層
- 空間ピラミッドプーリング層 (Heらの初期提案/PSPnet/ DeepLab)
- ROI pooling層(関心領域プーリング)
関連記事
関連書籍
- Pythonで学ぶ画像認識 (機械学習実践シリーズ) 【📖紹介記事】, 田村 雅人, 中村 克行, インプレス, 2023.
- 深層学習 改訂第2版 (機械学習プロフェッショナルシリーズ) 岡谷貴之,講談社,2022.
- 5.4節 プーリング層 (p86)
- 画像認識(機械学習プロフェッショナルシリーズ),原田達也,講談社,2017.
- 6.3.3節 プーリング層 (p176)
- Probabilistic Machine Learning: An Introduction, Kevin Patrick Murphy , MIT Press, 2022.
- 14.2.2 Pooling Layers
References
- [Azulay and Weiss, 2019] Azulay, Aharon; Weiss, Yair (2019). “Why do deep convolutional networks generalize so poorly to small image transformations?”. Journal of Machine Learning Research. 20 (184): 1–25.
- [Ciresan et al., 2011] Ciresan, D. C., Meier, U., Masci, J., Gambardella, L. M., and Schmidhuber, J. Flexible, high performanceconvolutional neural networks for image classification. In IJCAI, 2011.
- [Girshick, 2015] Girshick, R. Fast r-cnn. In ICCV, 2015.
- [Grauman and Darrell, 2005] Kristen Grauman and Trevor Darrell. The pyramid match kernel: Discriminative classification with sets of image features. In ICCV, 2005.
- [He et al., 2014] He, K., Zhang, X., Ren, S. and Sun, J., Spatial pyramid pooling in deep convolutional networks for visual recognition. In ECCV, 2014.
- [He et al., 2015] He, K., Zhang, X., Ren, S. and Sun, J., 2015. Spatial pyramid pooling in deep convolutional networks for visual recognition. IEEE transactions on pattern analysis and machine intelligence, 37(9), pp.1904-1916.
- [Jarrett et al., 2009] Jarrett K, Kavukcuoglu K, Ranzato M, LeCun Y (2009) What is the best multi-stage architecture for object recognition? In ICCV, 2009.
- [Lazebnik et al., 2006] S. Lazebnik, C. Schmid, and J. Ponce, “Beyond bags of features: Spatial pyramid matching for recognizing natural scene categories,” in CVPR, 2006.
- [Lin et al., 2013] Lin, M.; Chen, Q.; Yan, S. Network in network. arXiv 2013, arXiv:1312.4400.