プーリング層(Pooling Layer)とその発展型

1. プーリング層(Pooling Layer)とは [概要]

プーリング層(Pooling layer) とは,画像を入力としたCNN(畳み込みニューラルネットワーク)において,特徴マップを空間的な局所ごとに代表値に集約することにより,特徴マップの空間的な解像度を1段階下げる(ダウンサンプリングを担当する)層である.

この記事では,まずは物体認識むけCNNにおける,「空間的な局所プーリング層」の基本形(2節)およびその効果(3節)について述べる.その後,その他の画像認識応用(物体検出,セマンティックセグメンテーション)向けの「発展型のプーリング層」のうち,グローバル平均プーリング,空間ピラミッドプーリング(PSPNetのものなど),関心領域プーリング(ROI Pooling)などの代表的なものの概要を列挙・比較する(4節).

画像認識向けのCNNにおけるプーリング層は,CNNの基本的な繰りかえし処理である「畳み込み層 (- バッチ正規化) – ReLU」ブロックを通じたコーディング(coding)により得られた特徴マップ(の各チャンネル)に対して,局所空間範囲(2 × 2 や 3 x 3)ごとに,非線形関数(MaxやMean)で「代表値だけを残すダウンサンプリング操作」をおこなう.これにより,プーリング層後の次の「畳み込み層 (- バッチ正規化 )- ReLU」ブロックでとらえる受容野(receptive field)の範囲を,2倍や3倍に広げて,特徴量のスケールを,画像ピラミッド的に高めることができる.つまり,プーリングを行う毎に,次のブロックにおいてコーディング(※ 特に畳み込み層のフィルタ) 中でとらえる特徴の抽象度について,1段階分だけ解像度を高めることが可能になる.よって,プーリング層を用いると,効率的に,(特徴マップ解像度別の)段階的に,受容野の範囲が広くなっていく局所特徴フィルタ群を,各畳み込み層へ学習できる.

画像認識分野では,CNN流行以前の時代にも,プーリング操作はよく用いられていた.特に,細粒度認識(Fine-grained recognition)の文脈で以前からよく研究され,CNNによる画像認識が定着して以降も,細粒度認識や再同定(Re-ID)など向けに,発展的なプーリング層が研究されている.

親記事:層(layers)[ディープラーニングの層の種類のまとめ]

1.1 記事の構成

2節以降,以下の構成で基本的なプーリング層(2節)とその効果(3節)を述べる.その後,画像認識応用ごとの発展型を紹介する(4節).

2. 基本的なプーリング

基本的なプーリング操作として,最大値プーリング平均プーリングの2つがある.

2.1 最大値プーリング

最大値プーリング(Max Pooling)
図1 最大値プーリング層(Max Pooling Layer)

最大値プーリング層(Max Pooling Layer) [Jarret et al., 2009], [Ciresan et al., 2011] は,カーネル内の最大値のみ残すプーリング層である(図1).画像の畳み込みニューラルネットワークにおいて,標準的に用いられるプーリング層である.

AlexNet において「3 x 3のカーネルサイズ,ストライド幅2で重なりあり」の設定で使われてから,以降このパラメータ設定による最大値プーリングの使用が大規模画像認識CNNでは定着する.

計算も単純な層なので,ここでの説明も短いが,3節で述べるような利点がたくさんあるゆえ,最大値プーリングの使用はCNNにとって非常に重要である.

2.2 平均プーリング

平均プーリング(average pooling)
図2 平均プーリング

平均プーリング層(Average Pooling Layer)は,カーネル内の平均値を出力してダウンサンプリングを行うプーリング層である(図2).最大値プーリングがデファクトスタンダードになる前は,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×2範囲の代表値のみを集約した特徴(マップ)へ変化していく.よって,小範囲や中範囲のボトムアップなパーツ特徴を,序盤の畳み込み層で捉えることができ,終盤の層ではトップダウンな抽象度の高い特徴 (物体領域全体や,シーン背景の広範囲をとらえた特徴マップ)ができあがる.よって,CNNは,クラス識別・物体検出セマンティックセグメンテーションなどを行うモデルを学習することができる.

3.2 局所の小さな変形に対する不変性の獲得

各段階で「畳み込み層 – ReLU」が検出した,「局所的なパーツ」への応答である特徴マップに対して,プーリング層を用いると,局所パーツの回転・平行移動・スケールへの不変性を獲得できる.

ここでは,畳み込み層はスケールや回転に強くないのを,プーリング層が回転・スケールの不変性を補っている仕組みになっている.こうしてプーリング層の助けで学習できる「階層的な特徴マップ」のおかげで,CNNの画像認識性能の高さが担保されている (学習データ分布とは無関係にそれらへの頑健性を獲得してしてしまっている点に注意).

しかし「局所の小さな変形には強い」と言われてきたCNN(特にプーリング層)であったが,反論も出ている [Azulay and Weiss, 2019].

3.3 軽量な次元削減

プーリング層は,局所カーネル内ごとに$\max$関数や$\text{average}$関数を実行するだけで,簡単に空間解像度を減らしてダウンサンプリングを行い,各局所の代表値だけを残せる.この意味で,プーリング層は「軽量な次元削減手法」と捉えることもできる.

CNNが,もし他の次元削減手法を用いて,計算コストをじっくり使いながら空間解像度をダウンサンプリングしていくのであれば,全体の計算量が多くなりすぎて実用性を欠いてしまう.また,プーリング層はパラメータが不要であり,ネットワーク全体のメモリサイズの削減にも貢献する.

この意味で,プーリング層の使用で生まれる計算効率性やモデルサイズ削減は,CNNにとっては重要な効果をもたらしているといえよう.

4. プーリング層の発展型(領域化と全体化)

4.1 グローバル平均プーリング

グローバル平均プーリング(Global Average Pooling)
図3. グローバル平均プーリング(Global Average Pooling)

Network in network [Lin et al., 2013] では,画像認識ネットワークの終盤の全結合層の代わりに用いるものとして,グローバル平均プーリング(Global Average Pooling,全体平均プーリング)が提案された.入力のカーネルサイズ$k \times k$に対して,その全体(=グローバル)から平均をとり,[1 × 1] の特徴の空間サイズまで特徴マップをプーリングする.

例えば Incepiton v1 では,全結合層であった終盤の層を,代わりにグローバル平均値を [7 x 7] サイズで行うようにしている.これにより,元の全結合層を代替したぶんだけパラメータを節約することができ(※プーリングには学習するパラメータがない),なおかつ省モデル化によって過学習抑制の効果も得ることに成功した.その後,画像認識CNNの終盤層として,グローバル平均値プーリングを使用することが定番化する.

そして,画像認識CNNのグローバル平均プーリングの導入によって,CAM(Class Activation Map)によるCNN中間層の可視化による分析や,CAMの活性化を活用した,物体検出やセグメンテーションでの弱教師有り学習(Weakly Supervised Learning)の流行へも繋がる.

4.2 空間ピラミッドプーリング

空間ピラミッドプーリング層
図4 空間ピラミッドプーリング層
(物体検出CNNむけの例)

4.2.1 He の 空間ピラミッドプーリング(SPP)

[He et al., 2014] では,ディープラーニング流行以前から画像認識では提案されていた,空間ピラミッドプーリング(Spatial Pyramid Pooling, SPP) [Grauman and Darrell, 2005] を,CNNへ応用した空間ピラミッドプーリング層が,物体認識むけCNNおよび 物体検出むけCNN向けに提案された(図2).

空間ピラミッドプーリング層では,まず任意のサイズの領域窓内(例:selective searchで検出した領域候補ウィンドウ)において,CNNの識別層(全結合)直前の特徴マップの空間全体を,3レベルの解像度のグリッドに分解しておく(4 x 4 , 2 x 2, 1 x 1).次に,グリッド上の各セルで最大値プーリングを行う.そして,それらの全レベルの全プーリング結果を結合した1本の特徴ベクトルを,全結合層へ窓内のプーリング結果として出力する.

この空間ピラミッドプーリング層により,異なるサイズの画像を入力しても,毎回同じサイズに統一されたピラミッド特徴(表現)を得ることができる.よって,窓上の物体領域のサイズ,スケール,アスペクト比の変化に強い,マルチスケール固定サイズ特徴ベクトルを,識別層(fc6, fc7)へ渡すことができるようになった.

4.2.2 PSPNet の PPM(ピラミッドプーリングモジュール)

PSPNet [Zhao et al., 2017] は,物体認識向けの提案であった [He et al., 2014] に対してセマンティックセグメンテーション向けに,空間ピラミッドプーリング層を用いたPPM(Pyramid Pooling Module)を,CNNの後続に追加する提案を行った.

PPMは,出力も特徴マップになっていることから,畳み込み層のあいだで中間的に使用できる利点がある.前述の [He et al., 2014] の手法だと,並列の最大プーリングにより固定サイズのベクトルへ変換してしまうゆえ,「出力ベクトル生成」にしか用いることができず,この「特徴マップの他解像度化」使い方ができなかった.

これにより,以前のセグメンテーション向けアーキテクチャでは取りこぼしていた「画像中の広範囲コンテキスト」をCNN終盤まで伝搬できるようになり,セグメンテーションの精度を大きく向上させた.

4.3 関心領域プーリング(ROI pooling)

ROI Pooling(関心領域プーリング)
図5. ROI Pooling(関心領域プーリング)

ROI pooling(関心領域プーリング) [Girshick, 2015] は,Faster R-CNN などの「アンカーボックス型2ステージ物体検出CNN」において,2ステージ間をつないで後半ステージ用の特徴をプーリングで集約する際に用いる領域プーリング層である(図5).1ステージ目の領域提案ネットワーク(RPN)においては,どれも縦横のサイズが異なる関心領域(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節)

  • グローバル平均プーリング層
  • 空間ピラミッドプーリング層
  • 関心領域プーリング層(ROIプーリング層)

関連記事

関連書籍

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.
  • [Zhao et al., 2017] Zhao, H., Shi, J., Qi, X., Wang, X., Jia, J.: Pyramid scene parsing network. In CVPR, (2017)

参照外部リンク