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

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

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

初期の画像認識向けのCNNバックボーンでは,畳み込みで作られた特徴マップ(3次元配列)を,主筒力のsoftmax層のone-hot符号ベクトル向けに平坦化するために,全結合層がsoftmaxの手前に配置されていた(例:AlexNetVGGNetなど).それが,NiN (Network-in-Network) [Lin et al., 2014] でグローバル平均プーリングが提案されたすぐのち,Google の InceptionNet v1 [Szegedy et al., 2015] でも採用された結果,多くのCNNの終盤層ででグローバル平均プーリングが標準的に使用されるようになった.

この記事では,グローバル平均プーリングの内容と利点(2節),およびそのピラミッド版が物体識別以外のタスクでも提案された点(3節)についてまとめたい.

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が使用できることで,CNNの解釈性の向上や,CAM登場後に,CAMを利用して行われることが多くなったCNNの弱教師あり学習の発展にも,展開していった.以上のCAMに関係する2点も,グローバル平均プーリング層をCNN終盤層で使用する利点(あるいは歴史的貢献)である.クラス識別CNNにおいて,「終盤層は全結合層で」というまま歴史が進んでいたら,これら2点の展開がなかなか出てこなかったかもしれない.

3. ピラミッドとの併用: PSPNetのPPMモジュール

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

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

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

その後,DeepLab v3でも「改善版ASPPモジュール」が提案され,これもPSPNetのように,複数スケールのPyramidコンテキストを考慮したセグメンテーションを行うことができ,広範囲・複数スケールのコンテキストを考慮できるようになった.

4. まとめ

グローバル平均プーリングは,画像認識CNNの終盤層で,全結合層の代わりに,「ベクトル表現へ平坦かして特徴マップを集約する」という,同じ役割で用いられるようになったプーリング層の1種である.ローカルなプーリングと異なり,終盤で[7 × 7]くらいの高い抽象度の特徴マップができあがってから,その空間全体(=global)の平均表現を,平均プーリングでチャンネルごとに1つのニューロンユニットへ集約し,全体をベクトル化できる.グローバル平均プーリングを利用した,CAM(Class Activation Mapping)の登場にも繋がる意味で重要な層であるとも言える.

また,セマンティックセグメンテーションでも,各画素の周辺で,広範囲・複数スケールの周辺コンテキストが欲しいため,終盤層において「グローバル平均プーリングの,ピラミッド化版(=複数スケール拡張版)」を使うようになったことも,PSPNetやDeepLab v3での初期の例を通じて紹介した.

関連記事

関連書籍

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.

参照外部リンク

SNSでシェアやブックマークを行う