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

記事を共有する:

1. グローバル平均プーリング (Global Average Pooling)とは [概要]

グローバル平均プーリング (Global Average Pooling,全体平均プーリング) とは, 特徴マップの空間領域の全体に対する平均プーリングを行う層である.物体認識系CNNの終盤層などにおいて全結合層による識別層の代わりによく用いられる [Lin et al., 2014].

この記事では,グローバル平均プーリングの内容と利点をまず話したのち(2節),その空間ピラミッド版の発展型である空間ピラミッドプーリング層が,物体識別以外のタスクでよく使用されるようになった点についてまとめたい(3節).

初期の物体認識向けCNNバックボーンでは,畳み込みで作られた特徴マップ (3次元配列)を,出力のsoftmax層のone-hotベクトル表現向けに,ベクトルの平坦化をおこなうために,全結合層が直前に配置されていた (例:AlexNetVGGNetなど).

それが,NiN (Network-in-Network) [Lin et al., 2014] で,グローバル平均プーリングが提案されたすぐのち,Google の InceptionNet v1 [Szegedy et al., 2015] でも採用された結果,多くのCNNの終盤層でグローバル平均プーリングが標準的に使用されるようになった.

2. グローバル平均プーリング

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

グローバル平均プーリングは,CNN終盤において空間サイズが小さくなった [w x h] x C のサイズの特徴マップ入力を,一気に [1 x 1] x Cチャンネルへとプーリングする(図1).この操作の目的は,全結合層の役割を(グローバル平均)プーリングに代替させることで「パラメータ学習なしで,終盤層はプーリングのみで済むようにする」ことである.

グローバル平均プーリングでは,任意の空間サイズ (W x H) の入力特徴マップを, (1 x 1) へと,チャンネルごとに平均プーリングして一気に集約する(図1).その結果,出力されるC次元ベクトル (ニューロンユニット群)の各次元のニューロン値は,各チャンネルを平均プーリングで1つの値に集約した値= 集約した特徴)となる.(※ チャンネルごとに個別に集約していることは,後述のCAMでも効いてくる).

グローバル平均プーリングの登場以前の時代は,「プーリング層」と言えば,局所的に [3 x 3]や [2 x 2]空間サイズのカーネルで行う,ローカルな最大値プーリングや,ローカル平均プーリングが使われていた.例えば,ローカルプーリング層を,CNNで [2 × 2]サイズ,ストライド幅2 で用いると,ちょうど特徴マップの空間サイズを1/2ずつにダウンサイズしていける.これは,画像ピラミッドや特徴ピラミッドと同様の解像度の変化によって,マルチスケールに特徴マップを(順伝搬中に)形成していける「古株の画像認識研究者から見ても,今までの画像ピラミッドどおりでわかりやすい」という利点もあった.

2.1 Inception v1での例

CNNバックボーンでの使用例として,Inception v1 [Szegedy et al., 2015] での使われ方を見ておきたい.

Inception v1では,全結合層手前の [7 x 7] x 1024チャンネルまで空間サイズが落ちた特徴マップを,グローバル平均プーリング層を順伝搬させた結果,[7 x 7] の空間全体で一気にグローバル(= 全体)に平均プーリングされ,[1 x 1] × 1024次元ベクトルが出力される.この次の層に,線形層(1024 × 1000)を用いるが,これにより,出力softmax層の入力の1000次元ベクトルのone-hot表現に変換できる.

2.2 全結合層の代わりに,CNN終盤層に用いる利点

全結合層を,グローバル平均プーリング層に差し替えると,CNN全体のパラメータが削減される.これにより,大規模なCNNが持つ「パラメータが多すぎて過学習しやすい」というリスクを減らすことに繋がる.

また,全結合層を除外して,その代わりにグローバル平均プーリング層を用いることで,CNN全体が「畳み込み操作のみ」になり,クラス確率出力と各特徴チャンネルがしっかり紐付くという利点がある.これはNiN (Network-in-Network) [Lin et al., 2014] で,著者が主張している点である.すなわち,(空間)プーリングは(空間方向)畳み込み演算であるので,softmax層手前の操作をグローバル平均プーリングで済ませることにより,ネットワーク全体が畳み込み処理中心の構成になり,「全体での操作のー貫性」が出るとも言える.

加えて,出力との紐付きの強さから,XAM技術の代表である,CAM (Class Activation Mapping) の登場に繋がったのが,グローバル平均プーリング層の大きな利点である.CAMが使用できるようになることで,(1)「CNNの解釈性の向上」や,CAMを利用して行われることが多い(2)「CNNの弱教師あり学習の発展] にも展開していった.クラス識別CNNにおいて,「終盤層は全結合層で」というまま歴史が進んでいたら,これら2点の展開がなかなか登場してこない未来になっていたかもしれない.

3. 空間ピラミッドプーリングへ発展 (分割問題など)

セマンティックセグメンテーションでは,1スケールだけでなく,複数のスケールにおけるグローバル平均プーリングを行うことで,複数スケールのグローバルな特徴コンテキストを捉える目的で,空間ピラミッド(平均)プーリングが使用することが提案され,よく使われている.

3.1 Deep Lab v2 の場合

DeepLab v2 では,異なる膨張度合いでピラミッド化して,それらの結果をプーリングして集約する「Atrous Spatial Pyramid Pooling (ASPP)モジュール」が,空間ピラミッドプーリングとして提案された.ただし,これはグローバルなプーリングではなかった.

3.2 PSPNet の場合

一方,PSPNetでも同じく,終盤層の特徴マップを,ピラミッド化して,各スケールでグローバル平均プーリングを行い,それらの結果を集約するPPM(Pyramid Pooling Module)が提案された.

このPPMは,グローバル平均プーリングのピラミッド化(複数スケール集約化)である.PPMの結果得られる特徴マップは,4つの空間解像度レベルを含む「グローバルな事前情報」として作用する.これにより,ADE20K データセットの登場で,初めて取り組むことになってきた課題である「中範囲~広範囲の周辺コンテキストも知っておかないと,誤識別する画素を多く含む画像」でも,PSPNet(もといその中のPPM)のおかげで,高精度にセグメンテーションできるようになりはじめた.

3.3 DeepLab v3の場合

その後,DeepLab v3でも「改善版ASPPモジュール」が提案され,ピラミッド空間ピラミッドプーリングが活用された.この改善版ASPPモジュールでも,PSPNetのPPMのように,複数スケールのPyramidコンテキストを考慮したセグメンテーションを行えるため,広範囲・複数スケールのコンテキストを考慮できるようになった.

4. まとめ

グローバル平均プーリングは,画像認識CNNの終盤層において,全結合層と同じ役割の「特徴マップの空間全体をプーリングすることで,ベクトル表現へと平坦化してベクトルに集約する」ことが達成できる層である.「学習パラメータ無しのプーリング」により,全結合層による終盤層の役割を代替できるため,画像認識CNNのパラメータ数削減にも効果があり,過学習の抑制にもつながる.

また,グローバル平均プーリングを利用した,CAM (Class Activation Mapping)の登場にも繋がる意味で,グローバル平均プーリングは重要な層であると言える.加えて,セマンティックセグメンテーションでも,各画素の周辺で,広範囲・複数スケールの周辺コンテキストが欲しいため,複数スケール拡張版である「空間ピラミッドプーリング」を使うようになった.

関連書籍

References

  • [Lin et al., 2014] M. Lin, Q. Chen, and S. Yan. Network in network. In ICLR, 2014.
  • [Szegedy et al., 2015] Szegedy C, Liu W, Jia Y et al. Going deeper with convolutions. In CVPR 2015.

参照外部リンク