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

1. Pooling Layer の概要

プーリング層(Pooling layer)は,画像を入力とした畳み込みニューラルネットワーク(CNN)において,特徴マップを空間的な局所ごとに,代表値にまとめる層である.「畳み込み層 – ReLU」によるコーディング(coding)で得られた特徴マップを,2 x 2 や3 x 3などの局所空間範囲ごとに,非線形関数(Max, Average)でダウンサンプリングする.このプーリング操作により,次層以降の「畳み込み – ReLU」でとらえる受容野を,2倍や3倍に広げて,次のコーディング(特に畳み込みフィルタ)でとらえる特徴の「抽象度」を1レベル高める役割を担う.

この記事では画像認識CNNでのプーリング層の基本型を述べたあと,各種の画像応用向けの発展型(物体検出,セグメンテーションなど)についてまとめる.

プーリング層では,特徴マップ上の各チャンネルにおいて,空間サイズ $n \times n$ の局所窓内の(通常は$n=2$),最大値や平均値などの統計値のみ残して,他の$(n \times n) – 1$個の値は全て破棄する.これにより局所範囲内の代表的な特徴のみを残した(縦横幅の狭まった)特徴マップを出力する層である.

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

1.1 記事の構成

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

  • 2節 基本的なプーリング層
  • 3節 プーリング層をCNNで使用する効果
  • 4節 プーリング層の発展型 (空間ピラミッドプーリング,ROIプーリングなど)
  • 5節 まとめ

2 基本的なプーリング層

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

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

最大値プーリング層(Max Pooling Layer)
図1 最大値プーリング層(Max Pooling Layer):特徴マップの各画素は,色が白いほど値が大きく,色が黒いほど値が小さい.

最大値プーリング層(Max Pooling Layer) [Jarret et al., 2009], [Ciresan et al., 2011]は,カーネル内の最大値のみ残すプーリング層である(図1).画像の畳み込みニューラルネットワークにおいて,標準的に用いられるプーリング層である.AlexNetVGGNetにおいて,「2 x 2のカーネルサイズ,ストライド幅2」で使われてから,このパラメータによる最大値プーリングのCNNにおける使用が定着した.

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

2.2 平均値プーリング層

平均値プーリング層(Average Pooling Layer)は,カーネル内の平均値を出力してダウンサンプリングを行うプーリング層である.最大値プーリングがデファクトスタンダードになる前は,LeNetでも平均値プーリングも用いられていたが,CNNバックボーンでは現在はあまり使われない.

一方で,セマンティックセグメンテーションにおいて,よく使われている.Globalプーリングを行って広範囲コンテキストを後半の層に伝播したい構造の場合に,平均値プーリングが画像全体の特徴の統計を表現でき,コンテキストの保存に向いていることが理由である.

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

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

プーリング層を挿入すると,代表的な特徴のみを捉えて解像度を下げてモザイク化した「1段階抽象度の上がった特徴」を生成できる.プーリング層による抽象化を繰り返していくことを通じて,CNNは特徴の階層化を行うことができ,広範囲の特徴を抽象化することができ,認識性能が向上する.

例えばVGGNet-16層の場合 2 x 2 プーリングを5回行う.従ってプーリング層を減るごとに,「5段階の解像度と空間範囲」(=抽象度)で,代表値のみを集約した特徴に変化していく.CNN中盤あたりの層では,小範囲や中範囲のパーツ的な特徴を,畳み込み層で捉えることができる.そして終盤の層では,トップダウンな抽象度の高い特徴 (物体領域全体や,シーン背景の広範囲をとらえた特徴マップ)ができあがり,その特徴を用いてクラス識別や物体検出,セグメンテーションなどを行うことができる.

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

3.1で述べた,プーリング層を減るたびに特徴が各段階において,「畳み込みフィルタ – ReLu」の組み合わせにより検出した「局所的なパーツ」に対して,プーリング層を用いると,局所パーツの回転・平行移動・スケールへの不変性を獲得できる .

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

しかし,局所の小さな変形には強いと言われてきたCNNであったが,反論も出ている[Azulay and Weiss, 2019].

3.3 軽量な次元削減

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

CNNが,もし他の次元削減手法を用いて,計算コストをじっくり使いながら空間解像度を減らしていくのであれば,全体の計算量が多すぎて実用性に欠いてしまう.この意味で,プーリング層の使用で生まれている効率性は,CNNにとっては重要な効果をもたらしている.

3 プーリング層の発展型: 領域内プーリング

3.1 空間ピラミッドプーリング(SPP: Spatial Pyramid Pooling)

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

[He et al., 2014]では 空間ピラミッドプーリング(SPP: Spatial Pyramid Pooling) [Grauman and Darrell, 2005]を用いた領域プーリング層が,画像識別CNNと物体検出CNN向けに提案された(図2).

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

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

3.2 ROI pooling

RoI Pooling 層
図3 RoI Pooling 層

RoI Pooling [Girshick, 2015]は,Fast R-CNNで縦横のサイズが異なる領域候補(Region of Interest)から,固定サイズの特徴マップを出力できるプーリング層である(図3)

物体検出向けの領域提案を,特徴マップ上で固定サイズのグリッドに分割し,その領域からグリッド上の各セルで最大値プーリングを行なう.これにより,領域候補サイズが異なっていても,毎回同じ$C \times 7 \times 7$のサイズの特徴マップをプーリングできるので,1つの識別器(fc6,fc7)だけで,任意のサイズ・スケールの領域候補を検出できるようになった.

4 まとめ

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

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.

参照外部リンク

関連記事: