グループ正規化の包括的な解釈、BN、LN、INの比較

序文

FacebookのAI研究(FAIR)のウーユシンと彼のカイミングが共同で新しいヘビー級グループ正規化(GN)を立ち上げ、グループ正規化を使用してディープラーニングマイルストーン作業のバッチ正規化を置き換えることを提案しています

BNの何が問題になっていますか?

GNはどのように機能しますか?

GNが機能する理由

グループの正規化とは

一言で言えば、グループ正規化(GN)は、BNを置き換えることができる新しい深層学習正規化手法です。ご存じのとおり、BNはディープラーニングで一般的に使用される正規化方法であり、トレーニングと収束速度の向上に大きな役割を果たし、ディープラーニングのマイルストーンです。

 

ただし、まだいくつかの問題があり、新しく提案されたGNは、バッチサイズ依存性に対するBNタイプの正規化の影響を解決します。

では、BNの何が問題になっていて、GNはどこにあるのでしょうか。

BNの何が問題になっていますか

ご存知のように、BNの正式名称はバッチ正規化です。これは正規化方法であり、バッチの次元で正規化されます。問題は、この正規化方法がバッチに依存しないことです。バッチサイズが小さいとパフォーマンスが低下しますが、一般的に、各GPUでバッチを32に設定するのが最も適切です。

 

しかし、他のいくつかのディープラーニングタスクの場合、バッチサイズはターゲット検出、画像セグメンテーション、ビデオ分類など、多くの場合1-2です。入力画像データが非常に大きく、大きなバッチサイズを保存できません。では、小さいバッチサイズのパフォーマンスはどのくらいですか?以下に示すように:

BNの何が問題になっていますか

ご存知のように、BNの正式名称はバッチ正規化です。これは正規化方法であり、バッチの次元で正規化されます。問題は、この正規化方法がバッチに依存しないことです。バッチサイズが小さいとパフォーマンスが低下しますが、一般的に、各GPUでバッチを32に設定するのが最も適切です。

横軸は各GPUのバッチサイズを表し、左から右に向かって減少します。縦軸はエラー率です。バッチが小さい場合、GNはBNと比較してエラー率が10%未満であることがわかります。

 

また、バッチ正規化はバッチの次元での正規化ですが、この次元は固定されていません。たとえば、トレーニングとテストは一般に異なります。一般に、平均の平均は、トレーニング中にトレーニングセットのスライド平均によって事前に計算されます。 、および分散-分散パラメータ。

 

テスト中、これらの値は計算されなくなりますが、これらの事前計算された値は直接使用されますが、トレーニングデータとテストデータの分布が異なる場合、トレーニングマシン上の事前計算されたデータはテストデータを表しませんこれにより、トレーニング、検証、テストの3つの段階で一貫性が失われます。

 

これで問題は明確になり、簡単に解決できます。正規化時にバッチディメンションを回避することは可能であるため、レイヤーの正規化とインスタンスの正規化がありますが、それでもこの記事で紹介したGNほど良くありません。

GNの仕組み

GNは本質的には正規化されていますが、BNの問題を柔軟に回避し、レイヤーノルムやインスタンスノルムとは異なります。4つの作業方法は次の図から確認できます。

 

左からBN、LN、IN、GN

 

ご存じのとおり、ディープネットワークのデータディメンションは通常[N、C、H、W]または[N、H、W、C]形式で、Nはバッチサイズ、H / Wはフィーチャの高さ/幅、Cはフィーチャですチャネル、H / Wを1次元に圧縮、3次元表現は上記のとおり、1つの正方形の長さが1であると仮定すると、[6、6、*、*]を表します

 

上の図は、4つの標準的な作業方法を鮮明に示しています。

BNはバッチの次元では標準であり、正規化された次元は[N、H、W]であり、対応するチャネルをバッチで正規化します。

LNはバッチディメンションを回避し、正規化されたディメンションは[C、H、W]です。

INの正規化された次元は[H、W]です。

GNはLNとINの間にありますが、最初にチャネルを多くのグループに分割し、各グループを正規化し、最初に[N、C、H、W]から[ N、G、C // G、H、W]、正規化された次元は[C // G、H、W]

 

実際、GNの極端なケースはLNとINであり、GはそれぞれCに等しく、Gは1に対応します。著者は、論文でGを32としています。

このことから、GNとBNには多くの類似点があることがわかります。コードと比較すると、BNの変更は1行または2行のみです。このペーパーで提供されているコード実装は次のとおりです。

def GroupNorm(x, gamma, beta, G, eps=1e-5):
    # x: input features with shape [N,C,H,W]
    # gamma, beta: scale and offset, with shape [1,C,1,1]
    # G: number of groups for GN
    N, C, H, W = x.shape
    x = tf.reshape(x, [N, G, C // G, H, W])
    mean, var = tf.nn.moments(x, [2, 3, 4], keep dims=True)
    x = (x - mean) / tf.sqrt(var + eps)
    x = tf.reshape(x, [N, C, H, W])
    return x * gamma + beta

中でも、ベータとガマのパラメーターは、変換とスケーリングの係数を示す、ノルム内のトレーニング可能なパラメーターです。詳細については、ブログを参照してください。上記のノルムの比較から、筆者のスキルに感心する必要があります。 。

GNが機能する理由

上記の3つのセクションでは、BNの問題とGNの仕組みを紹介しますが、このセクションでは、GNが機能する理由を紹介します。

 

従来、ディープラーニングが普及する前は、特徴抽出は通常、SIFT、HOG、GISTの特徴を使用して行われていました。これらの特徴には共通性があり、すべて特徴がグループで表現されています。各グループは同じ種類のヒストグラムから作成されます。これらの機能は通常、各ヒストグラムまたは各方向に対してグループごとの基準を実行することによって取得されます。

 

VLADやフィッシャーベクトル(FV)などの高次元の特徴もグループ単位の特徴と見なすことができ、ここでグループは各クラスター(クラスター)のサブベクトルと見なすことができます。

 

ディープラーニングの観点からすると、畳み込みによって抽出された特徴は、非構造化特徴またはベクトルであると見なすことができます。カーネルフィルターの他の変換されたバージョン2(変換は水平反転など)、同じ画像で学習された特徴は同じ分布を持つ必要があります。それにより、同じ特徴を同じグループに分割できます。各層には多くの畳み込みカーネルがあることを個人的に理解します。これらのカーネルによって学習される機能は完全に独立しているわけではありません。一部の機能は同じ分布を持っているため、グループ化できます。

 

周波数、形状、明るさ、テクスチャなど、グループ化につながる多くの要因があります。HOGの特徴は方向に応じてグループ化されます。ニューラルネットワークの場合、特徴を抽出するメカニズムはより複雑で説明が困難です。直感的。

 

神経科学の分野では、広く受け入れられている計算モデルは細胞の反応を正常化することであり、この現象は表在性視覚皮質や視覚系全体に存在しています。

 

これに基づいて、著者はグループ正規化(Group Normalization)法を提案し、その効果はBN、LN、INなどよりもはるかに優れていることを示しています。GN正規化方法は、モデルに対するバッチサイズの影響を回避します。また、フィーチャグループの正規化は、内部内部共変量共変量シフトシフトの問題を解決し、より良い結果を得ることができます。 

エフェクト表示

resnet50をベースモデルとして、バッチサイズを32に設定して、imagenetデータセットのトレーニングエラー(左)とテストエラー(右)。GNには大きな利点はなく、テストエラーはBNを使用した結果よりもわずかに大きくなります。

resnet50をベースモデルとして、バッチサイズを32に設定して、imagenetデータセットのトレーニングエラー(左)とテストエラー(右)。GNには大きな利点はなく、テストエラーはBNを使用した結果よりもわずかに大きくなります。

GNはバッチサイズに対してより堅牢であることが容易にわかる

 

同時に、筆者は、VGG16を例に、特定の畳み込み後の特徴分布の学習状況を分析し、それぞれNormとBNとGNを使用して実験を行いました。実験結果は次のとおりです。

統合されたバッチサイズは32に設定されています。左端の画像はconv5のノルムなしの学習状況、中央はBNの結果、右端はGNの学習状況です。ノルムを使用しない場合と比較すると、ノルムを使用した場合の学習効果明らかに、後者の2つは同様の学習状況を持っていますが、小さいバッチサイズを変更した後、BNはGNほど良くありません。

943の元の記事を公開 136のような 330,000以上を訪問

おすすめ

転載: blog.csdn.net/weixin_36670529/article/details/105165913