本文へ移動

G検定(ジェネラリスト検定)

ぐろーばるあべれーじぷーりんぐ

グローバルアベレージプーリング

GAP

Global Average Pooling

グローバルアベレージプーリングとは、畳み込みニューラルネットワークの最後で、特徴マップ1枚ごとに全体の平均を取り、1枚を1つの値にまとめる処理です。ミン・リン(Min Lin)らが2013年の論文"Network In Network"で、全結合層の代わりに使う方策として提案しました。

詳しい説明

特徴マップ1枚を1つの値にまとめる処理

畳み込みニューラルネットワークでは、畳み込みの計算を重ねた結果が特徴マップという形で出てきます。特徴マップは、縦と横に数値が並んだ表のようなもので、画像の中のどの位置にどんな特徴があるかを数値で表します。

グローバルアベレージプーリングは、この特徴マップ1枚に含まれる数値をすべて足し、個数で割って平均を取ります。特徴マップ1枚から出てくるのは平均値1つだけです。特徴マップが何枚あっても、1枚ごとに同じ計算をするので、出てくる値の数は特徴マップの枚数と同じになります。

英語ではGlobal Average Poolingと書き、GAPと略すこともあります。「グローバル」は、特徴マップの一部分ではなく全体を対象にすることを指します。

小さな特徴マップで平均を計算する

縦2マス、横2マスの特徴マップに、1、3、5、7の4つの数値が並んでいるとします。グローバルアベレージプーリングは4つを足して16とし、個数の4で割って4という値を1つ出します。

同じ大きさの特徴マップが3枚あれば、それぞれで同じ計算をして、3つの値が出てきます。この計算には、学習で調整する重みのような値が1つも登場しません。数値を足して個数で割るだけです。

提案した論文と、置き換えようとしたもの

この方式は、ミン・リン(Min Lin)、チアン・チェン(Qiang Chen)、シュイチョン・ヤン(Shuicheng Yan)の3人が2013年にarXivで公開した論文"Network In Network"の中で提案されました。論文は、畳み込みニューラルネットワークで伝統的に使われてきた全結合層を置き換える別の方策として、global average poolingを提案すると明言しています。

従来の畳み込みニューラルネットワークでは、畳み込みの計算を終えたあとに全結合層を置き、そこで分類の結果を出す構成が使われていました。全結合層は、前の層のすべての値と次の層のすべての値をつなぐ層で、つなぎ目ごとに重みを持ち、その重みを学習で調整します。グローバルアベレージプーリングは、学習で調整する値を持たない平均の計算で、この全結合層の役割を置き換えようとした方式です。

分類のカテゴリごとに特徴マップを1枚ずつ作る

論文の方式では、ネットワークの最後の層(論文ではmlpconv層と呼ばれる層)で、分類したいカテゴリの数と同じ枚数の特徴マップを作ります。たとえば10種類のカテゴリに分類するなら、特徴マップを10枚作り、1枚目はカテゴリ1、2枚目はカテゴリ2というように、1枚を1つのカテゴリに対応させます。

次に、10枚の特徴マップそれぞれの平均を取り、10個の値を得ます。この10個の値は、間に別の層を挟まずにそのままソフトマックス関数へ渡します。ソフトマックス関数は、並んだ値を合計が1になる割合へ変換する関数で、ここでは各カテゴリに当てはまる割合を出すために使われます。

全結合層と比べて論文が挙げた利点

論文は、全結合層を使う場合と比べて、次の3つの点を挙げています。

1つ目は、解釈のしやすさです。特徴マップ1枚が1つのカテゴリに対応しているので、ネットワークの最後の出力と畳み込みで作った特徴マップとの対応がはっきりします。全結合層を挟むと、どの特徴マップがどのカテゴリの判断にどれだけ効いているかが重みの中に混ざってしまいますが、この方式ではカテゴリと特徴マップが1対1で結びついています。

2つ目は、過学習が起きにくいことです。過学習とは、学習に使ったデータには合っていても、新しいデータでは性能が落ちる状態を指します。グローバルアベレージプーリングには最適化するパラメータが無いので、この層そのものが学習データに合わせすぎることはありません。

3つ目は、入力の位置のずれに強いことです。平均は特徴マップ全体の情報を合計して求めるので、写っている物が画像の中で少し別の位置へずれても、平均の値は変わりにくくなります。論文はこの性質について、入力の空間的な並進に対して頑健だと表現しています。並進とは、形を変えずに位置だけを平行に動かすことです。

平均値プーリング・最大値プーリングとの違い

同じプーリングという名前が付く処理に、平均値プーリングと最大値プーリングがあります。どちらも特徴マップの中の小さな範囲、たとえば縦2マス、横2マスの範囲ごとに、平均または最大の値を1つ取り出します。範囲をずらしながら繰り返すので、処理のあとも特徴マップは縦横に広がった形のまま残り、大きさが小さくなるだけです。

グローバルアベレージプーリングは、平均を取る範囲を特徴マップ全体に広げたものです。そのため、処理のあとには縦横の広がりが残らず、特徴マップ1枚が1つの値になります。平均値プーリングとは平均を取るという計算が同じで、平均を取る範囲の大きさが違います。

誤解しやすい点

過学習を避けられるのは、グローバルアベレージプーリングの層そのものについてです。論文が述べているのは、この層に最適化するパラメータが無いことであり、ネットワーク全体の過学習が無くなるということではありません。この層より前にある畳み込みの層には、学習で調整するパラメータがあります。

また、特徴マップ全体の平均を取るので、特徴が特徴マップのどの位置にあったかという情報は、出てきた値には残りません。位置のずれに強いという利点は、位置の情報を捨てていることの裏返しでもあります。

試験で問われること

G検定

  • 特徴マップ1枚ごとに全体の平均を取り、1枚を1つの値にまとめる処理であること。
  • ミン・リン(Min Lin)らの2013年の論文"Network In Network"で、CNNの全結合層を置き換える方策として提案されたこと。
  • 分類のカテゴリごとに特徴マップを1枚ずつ作り、それぞれの平均をそのままソフトマックス関数へ渡す構成であること。
  • 最適化するパラメータを持たないため、この層そのものでは過学習が起きないこと。ネットワーク全体の過学習が無くなるわけではないこと。
  • 特徴マップ全体の情報を合計して平均を取るため、入力の中で物の位置がずれることに対して頑健であること。
  • 平均値プーリングが小さな範囲ごとに平均を取るのに対し、グローバルアベレージプーリングは特徴マップ全体で平均を取ること。

最終更新日: 2026/09/23