1. 定義と概要
グローバルアベレージプーリング(GAP)とは、畳み込み層(画像の一部分ずつをフィルタで処理し、特徴を抽出する層)が出力する特徴マップ(畳み込み層が画像から抽出した特徴を表す、チャンネルごとの二次元データ)を、1つの数値へ集約する処理です。具体的には、チャンネル(特徴マップの枚数の単位。1つのフィルタが出力する1枚のマップを1チャンネルと数える)ごとに全ピクセルの値の平均を計算し、1つの数値へ変換します。
例えば7×7の特徴マップが64チャンネル分あれば、各チャンネルの49個の値を平均して1個の値にまとめ、64個の値からなるベクトルを出力します。特徴マップ内の小領域ごとに値をまとめる通常のプーリングとは異なり、GAPは特徴マップ全体を一度に1つの値へ集約する点に特徴があります。GAPは2013年に発表された論文Network in Network(2013年に発表された、GAPなどの手法を提案したCNNの研究論文)で提案されました。
従来のCNNでは、畳み込み層で抽出した特徴マップを1次元に並べ直す処理をしたうえで全結合層に入力し、クラス分類を行う構成が一般的でした。しかし全結合層は特徴マップの全要素と次の層の全ノードを結ぶため、学習パラメータ(モデルが学習によって調整する重みの数値)が膨大になります。その結果、モデルサイズの増大や過学習(訓練データに適合しすぎて、新しいデータへの対応力が落ちる現象)のリスクが課題でした。
GAPはこの全結合層を置き換える手法として登場し、畳み込み層の出力をチャンネル数と同じ次元のベクトルへ直接変換することで、そのまま分類用の層に渡せるようにしました。2014年のILSVRC(画像認識の精度を競う国際的なコンテスト)で優勝したモデルGoogLeNet(2014年のILSVRCで優勝したCNNモデル)に採用され、以降のCNN設計に広く取り入れられています。
2. 試験対策ポイント
まず整理したいのは、全結合層の代わりにGAPを用いた場合のパラメータ削減効果です。全結合層は数百万から数千万規模の重みを学習する必要が生じることも珍しくありません。一方、GAPは学習パラメータを一切持たない集約処理であるため、同じ箇所に置き換えると学習パラメータは実質ゼロになり、この桁違いの差がGAPを理解するうえでの軸になります。
このパラメータ数の差は、過学習の起こりやすさにも直結します。全結合層は学習可能な重みを大量に持つため訓練データに適合しすぎやすく、過学習を招きやすい構造ですが、GAPは学習パラメータを持たないので、全結合層をGAPに置き換えると過学習の抑制につながります。GAPが提案された論文「Network in Network」(2013年)と、この手法を採用して2014年のILSVRCで優勝した「GoogLeNet」という経緯も、押さえておきたいポイントです。
構成上の位置づけとしては、GAPは畳み込み層の出力を分類用の層に渡す直前、つまりCNNの終盤に置かれます。特徴マップ、畳み込み層、全結合層、過学習といった関連用語の理解を前提に、GAPがどの段階でどの役割を担うかという構成の流れに位置づけられます。
GAPには、入力画像のサイズに対する制約が緩むという性質もあります。GAPは空間方向の情報を平均によって1つの値に潰すため、出力される値の個数はチャンネル数だけで決まります。全結合層は入力の縦横サイズに応じて結合数(重みの数)が変わる構造であるのに対し、GAPを使うと入力画像のサイズが変わっても出力次元は変わらず、この違いはGAPを他手法と比較するうえでの着眼点になります。
この性質の延長として、GAP層を備えたCNNにはCAM(クラス活性化マッピング。モデルが画像のどこに注目して判断したかを可視化する手法)を適用しやすいという相性のよさもあります。CAMの仕組み自体は別のテーマですが、GAPの位置づけを理解するうえであわせて見ておきたい点です。
3. 関連概念との比較・相違点
GAPと全結合層との最大の違いは、学習パラメータの有無です。両者を観点ごとに並べると、得意なことと不得意なことがはっきりします。
| 観点 | GAP | 全結合層 |
|---|---|---|
| 学習パラメータ | 持たない集約処理。置き換えると実質ゼロ | 全要素と全ノードを結ぶため膨大になる |
| 表現力 | 柔軟な重み付けはできず限定的 | 重みを学習するため高い |
| 過学習 | 学習パラメータを持たないため抑制につながる | 訓練データに適合しすぎて起こしやすい |
| 入力画像のサイズ変化 | 出力次元はチャンネル数で決まり変わらない | 縦横サイズに応じて結合数が変わる |
モデルサイズを抑えられる代わりに表現力は限定的という関係にあり、どちらを選ぶかは軽さと表現力のどちらを優先するかで決まります。
GAPと、特徴マップ内の小領域を対象とする通常のプーリング層との最大の違いは、集約する範囲にあります。通常のプーリング層は特徴マップを小さな領域に区切り、それぞれの領域ごとに平均値や最大値を求めて出力サイズを段階的に縮小していく処理です。
これに対しGAPは、1つのチャンネルの特徴マップ全体を一度に1つの値へ集約するという関係にあります。同じ「プーリング」という名前を持ちながら、対象範囲がまったく異なる点が取り違えやすいところです。
4. ビジネス・実務での活用シナリオ
モバイル・組み込みアプリ開発の現場では、スマートフォンや組み込み機器上で動く画像認識モデルにGAPが組み込まれています。全結合層をGAPに置き換えることで重みの数を大幅に削減でき、アプリのモデルサイズを抑えられるほか、推論(学習済みモデルを使って答えを出す処理)にかかる負荷も軽くなります。限られたメモリや電力で動作する機器では、この軽量化がアプリの実用性を左右する要因になります。
医療画像診断の分野では、収集できる画像枚数がほかの分野に比べて限られる場合が多く、分類モデル(画像などを特定のカテゴリーに振り分けるよう学習させたモデル)の過学習が課題になりやすい状況があります。こうした現場でGAPを用いると学習パラメータが減り、少ないデータでも過学習を抑えたモデルになります。
新しい画像認識モデルを設計する研究開発の現場では、出力層の直前にGAPを組み込むか全結合層を使うかが、精度とモデルサイズのトレードオフとして検討されます。表現力を重視するか、軽量さを優先するかという設計上の判断が、GAPと全結合層のどちらを選ぶかに反映されます。
5. 要点まとめ
- GAPは畳み込み層が出力する特徴マップをチャンネルごとに1つの平均値へ集約する処理で、全結合層の代替として出力層付近に置かれます。
- 学習パラメータを持たないためパラメータ数を大幅に削減でき、全結合層に比べて過学習の抑制にもつながります。
- 2013年の論文「Network in Network」で提案され、2014年のILSVRC優勝モデル「GoogLeNet」に採用された経緯があります。
6. 確認問題
問1グローバルアベレージプーリング(GAP)は、畳み込み層が出力する特徴マップをチャンネルごとに1つの平均値へ集約し、ベクトルとして出力する処理である。
解答・解説をみる
○ 正しい
GAPの定義そのままの記述です。特徴マップ全体をチャンネルごとに1つの値へ集約し、チャンネル数と同じ次元のベクトルを出力する点が核になります。
問2GAPは全結合層と比較して学習パラメータが少ないため、モデルの過学習を抑制する効果が期待される。
解答・解説をみる
○ 正しい
全結合層は大量の重みを学習するため過学習を起こしやすいのに対し、GAPは学習パラメータを持たない集約処理です。そのため全結合層をGAPに置き換えると、過学習の抑制に寄与します。
問3GAPは特徴マップを小さな領域に区切り、それぞれの領域ごとに平均値を求めて出力サイズを段階的に縮小する処理である。
解答・解説をみる
× 誤り
これは通常のプーリング層の説明にあたります。正しくは、GAPは特徴マップを小領域に区切らず、1つのチャンネルの特徴マップ全体を一度に1つの値へ集約する処理です。

