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

1. Pooling Layer の概要

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

この記事では画像認識CNNにおけるプーリング層の基本的なかたちについて述べたあと(2,3節),各種の画像認識応用(物体検出,セグメンテーション)向けの発展型を,少しだけ紹介する(4節).

プーリング層では,「畳み込み層 – ReLU」のブロックによるコーディング(coding)を通して得られた特徴マップ(の各チャンネル)に対して,2 x 2 や3 x 3などの局所空間範囲ごとに,非線形関数(Max関数やAverage関数)で代表値だけを残すダウンサンプリングをおこなう.プーリング操作を通じて,次の「畳み込み – ReLU」でとらえる受容野(receptive field)を,2倍や3倍に毎回広げていき,次のコーディング(特に畳み込みフィルタ)でとらえる特徴の「抽象度」を1段階分解像度を高める役割を担う.畳み込みだけでも,少しずつ抽象度合いを高めていけるが,プーリングでは一気に 1/2や1/3に特徴マップをダウンサンプリングできる.よって,CNN全体が効率的に(解像度別の)特徴フィルタを学習できる.

より具体的に処理をまとめる.プーリング層では,特徴マップ上の各チャンネルにおいて,カーネルサイズ $n \times n$ の局所窓の空間範囲のうち,統計値(最大値・平均)のみを残してダウンサイズされた特徴マップを得る(一方で,他の$(n \times n) – 1$個の値は全て破棄される).これにより,おのおののプーリングを行ったカーネルサイズ内の局所範囲内における,代表的な特徴のみを残した,幅・高さが1/nにダウンサイズされた特徴マップを出力することになる.

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

1.1 記事の構成

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

  • 2節 基本的なプーリング層(最大値プーリングと平均値プーリング)
  • 3節 プーリング層をCNNで使用する効果
  • 4節 プーリング層の発展型
    • 4.1 グローバル平均プーリング
    • 4.2 空間ピラミッドプーリング
    • 4.3 ROIプーリング
  • 5節 まとめ

2. 基本的なプーリング層

基本的なプーリング層として,頻繁に使われる最大値プーリング層と,あまり使われなくなった平均値プーリング層がある.

これらは,特徴マップ空間上を,任意のストライド数で(畳み込み層と同様に)スライドしておこなわれる.ただし,毎回のプーリング領域が重複しないように,[k x k ]カーネルでプーリングする場合は,ストライドをkに設定することが標準的である.

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

最大値プーリング層(Max Pooling Layer)
図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 Layer)は,カーネル内の平均値を出力してダウンサンプリングを行うプーリング層である.最大値プーリングがデファクトスタンダードになる前は,LeNetで平均値プーリングが用いられていたが,そのあとの画像認識のCNNではあまり使われなかった.しかし,InceptionNet v3では,Inceptionモジュール内の 1×1畳み込み層の経路に1つあるプーリングには「平均プーリングと最大値プーリングのどっちを使ってもよい」となっておる.

一方で,セマンティックセグメンテーションにおいては,平均値プーリング層はよく使われている.グローバルな特徴マップの空間全体の(入力画像全体に対する)プーリングを行うことで,画像のシーン全体の広範囲コンテキストを,後半の層まで伝播できる.ネットワーク構造において,平均値プーリングが画像全体の特徴の統計を表現でき,コンテキストの保存に向いていることが理由である.

また,画像識別CNNでも,グローバル平均値プーリング(4.1節)が,登場したのちは,後半の層で全結合層の変わりに用いられることが多くなる

3. プーリング層をCNNで使用する効果

3.1 階層的な特徴マップの取得

プーリング層を挿入すると,代表的な特徴のみを捉えて解像度を下げて,特徴的な所(色,輝度)だけを残してモザイク化した「1段階抽象度の上がった特徴マップ」を生成することができる.プーリング層による抽象化を繰り返していくことで,CNNは特徴マップの(空間方向の)階層化を行い,広範囲の特徴を効率的に抽象化できる.これにより,以前の手作り特徴(例:Pyramid化したHOG特徴量ベクトルなど)よりも,物体の小-中-大のパーツを捉えた表現をつくることができ,高い認識性能を発揮することができる.

例えば 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 グローバル平均プーリング

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

例えば IncepitonNet v1 では,全結合層であった終盤の層を,代わりにグローバル平均値を[7 x 7]サイズで行うようにしている.これにより,元の全結合層のぶん,パラメータを節約することができ,なおかつ省モデル化で過学習抑制の効果も得ることに成功した.

その後,画像認識CNNの終盤層として,グローバル平均値プーリングが定番化する.そして,これは,CAM(Class Activation Map)によるCNN中間層の可視化による分析や,CAMの活性化を活用した,物体検出やセグメンテーションでの弱教師有り学習の流行にも繋がる.

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

空間ピラミッドプーリング層
図2 空間ピラミッドプーリング層 [He et al., 2014]
(物体検出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 での空間ピラミッドプーリング層

また,PSPNet [Zhao et al., 2017] では,1物体認識向けの提案であった [He et al., 2014] に対して,セマンティックセグメンテーション向けに,空間ピラミッドプーリング層を用いる提案を行った.

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

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

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

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

関心領域プーリング(ROI Pooling) [Girshick, 2015] は,Fast R-CNN などのアンカーあり2ステージ型物体検出CNNにおいて,2ステージ間をつないで後半ステージ用の特徴をプーリングで集約する際に用いる領域プーリング層である(図3).1ステージ目の領域提案ネットワークにおいては,どれも縦横のサイズが異なる関心領域(Region of Interest)の候補が出力されるが,それらを統一されたサイズの$C \times 7 \times 7$の特徴マップへプーリングする.

これにより,元の領域候補サイズが異なっていても,関心領域プーリングで統一された同じ入力サイズ$C \times 7 \times 7$の特徴マップから,2ステージ目の物体検出判定が行えるようになった.

5. まとめ

この記事では,まずCNNのプーリング層の基本型として,最大値プーリングの仕組みと効果について紹介した(2,3節).

また,プーリング層の発展型として,領域内プーリング手法の空間ピラミッドプーリング層と関心領域プーリング(ROIプーリング)を紹介した(4節).

参考書籍

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)

参照外部リンク

↓ ためになった方は,記事をSNSでシェアをしてくださると,管理人の記事執筆モチベーションが上がります