誰かがグローバルな最大プーリング層とは何か、そしてそれをニューラルネットワークのトレーニングに使用する理由と時期を説明できますか?彼らは通常の最大プーリング層よりも利点がありますか?
誰かがグローバルな最大プーリング層とは何か、そしてそれをニューラルネットワークのトレーニングに使用する理由と時期を説明できますか?彼らは通常の最大プーリング層よりも利点がありますか?
回答:
グローバル最大プーリング=プールサイズが入力のサイズに等しい通常の最大プーリングレイヤ(正確にはフィルタサイズ+ 1を引いたもの)。あなたはそれMaxPooling1D
がpool_length
引数をとるのに対し、引数をとらないのを見ることができますGlobalMaxPooling1D
。
たとえば、最大プーリング層の入力がである場合、グローバル最大プーリング出力は、プールサイズの通常の最大プーリング層は3出力(ストライド= 1と仮定)。
class GlobalMaxPooling1D(_GlobalPooling1D):
"""Global max pooling operation for temporal data.
# Input shape
3D tensor with shape: `(samples, steps, features)`.
# Output shape
2D tensor with shape: `(samples, features)`.
"""
def call(self, x, mask=None):
return K.max(x, axis=1)
自然言語処理などの一部のドメインでは、グローバルな最大プーリングを使用するのが一般的です。コンピュータービジョンなどの他のドメインでは、グローバルではない最大プールを使用するのが一般的です。
グローバル平均プーリング(GAP)を提案したこのペーパーで説明されているように:
従来の畳み込みニューラルネットワークは、ネットワークの下位層で畳み込みを実行します。分類のために、最後の畳み込み層の特徴マップがベクトル化され、完全に接続された層に供給され、その後にソフトマックスロジスティック回帰層が続きます。この構造は、畳み込み構造と従来のニューラルネットワーク分類子を橋渡しします。畳み込み層を特徴抽出器として扱い、結果の特徴は従来の方法で分類されます。
ただし、完全に接続された層は過剰に適合しやすいため、ネットワーク全体の一般化機能が妨げられます。ドロップアウトは、トレーニング中に完全に接続されたレイヤーへのアクティベーションの半分をランダムにゼロに設定するレギュラーとして、ヒントンらによって提案されています。一般化能力が向上し、オーバーフィットが大幅に防止されます。
このペーパーでは、CNNの従来の完全に接続されたレイヤーを置き換えるために、グローバル平均プーリングと呼ばれる別の戦略を提案します。これは、最後のmlpconvレイヤーの分類タスクの対応する各カテゴリに対して1つの機能マップを生成するという考え方です。フィーチャマップの上に完全に接続されたレイヤーを追加する代わりに、各フィーチャマップの平均を取得し、結果のベクトルをsoftmaxレイヤーに直接供給します。完全に接続されたレイヤーに対するグローバルな平均プーリングの利点の1つは、フィーチャマップとカテゴリ間の対応を強制することにより、畳み込み構造によりネイティブであることです。したがって、機能マップはカテゴリ信頼マップとして簡単に解釈できます。別の利点は、グローバル平均プーリングで最適化するパラメーターがないため、この層で過剰適合が回避されることです。さらに、グローバル平均プーリングは空間情報を合計するため、入力の空間変換に対してより堅牢です。グローバルな平均プーリングは、機能マップを明示的に概念(カテゴリ)の信頼マップとなるように実施する構造正則化として見ることができます。これは、mlpconvレイヤーによって可能になります。これらのレイヤーは、GLMよりも信頼マップにより近い近似を行うためです。
編集: @MaxLawnboyが示唆したように、同じトピックに関する別の論文があります。