web-dev-qa-db-ja.com

畳み込みニューラルネットワークのバッチ正規化

私は畳み込みニューラルネットワークの初心者であり、特徴マップと、特徴を抽出するために画像で畳み込みを行う方法についてのアイデアを持っています。 CNNでのバッチ正規化の適用に関する詳細を知ってうれしいです。

この論文を読みました https://arxiv.org/pdf/1502.03167v3.pdf データに適用されたBNアルゴリズムを理解できましたが、最終的には、 CNN:

畳み込み層の場合、さらに、正規化が畳み込み特性に従うようにする必要があります。これにより、異なる位置にある同じフィーチャマップの異なる要素が同じ方法で正規化されます。これを実現するために、すべての場所で、すべてのアクティベーションをミニバッチで共同で正規化します。アルグで。 1、Bをミニバッチと空間位置の両方の要素にわたる特徴マップのすべての値のセットとします。したがって、サイズmのミニバッチとサイズp×qの特徴マップでは、effecを使用します-サイズm ′= | B |の小型ミニバッチ= m・pq。アクティベーションごとではなく、機能マップごとにγ(k)とβ(k)のパラメーターのペアを学習します。 Alg。 2は同様に修正されるため、推論中にBN変換は同じ線形変換を特定の機能マップの各アクティベーションに適用します。

」と言うと混乱します。「同じ場所の異なる機能マップの異なる要素が同じように正規化される」

機能マップの意味を知っており、さまざまな要素がすべての機能マップの重みです。しかし、ロケーションまたは空間ロケーションの意味を理解できませんでした。

次の文はまったく理解できませんでした「Alg。1では、ミニバッチの要素と空間的位置の両方にわたるフィーチャマップのすべての値のセットをBとします」

冷静に説明してくれて、もっと簡単な言葉で説明してくれたら嬉しいです

53
akshata bhat

用語から始めましょう。畳み込み層の出力は4ランクテンソル[B, H, W, C]であり、Bはバッチサイズ、(H, W)機能マップサイズ、Cはチャネルの数です。インデックス(x, y)ここで、0 <= x < Hおよび0 <= y < W空間位置です。

通常のバッチ基準

ここで、通常の方法で(擬似コードで)batchnormを適用する方法を示します。

# t is the incoming tensor of shape [B, H, W, C]
# mean and stddev are computed along 0 axis and have shape [H, W, C]
mean = mean(t, axis=0)
stddev = stddev(t, axis=0)
for i in 0..B-1:
  out[i,:,:,:] = norm(t[i,:,:,:], mean, stddev)

基本的に、H*W*C平均とB要素にわたるH*W*C標準偏差を計算します。異なる空間位置にある異なる要素には独自の平均と分散があり、B値のみを収集することに気付くかもしれません。

Conv層のBatchnorm

この方法は完全に可能です。ただし、畳み込み層には特別なプロパティがあります。フィルターの重みは入力画像全体で共有されます(詳細は this post で確認できます)。そのため、出力を同じ方法で正規化して、各出力値が異なる場所でB*H*W値の平均と分散を取るようにするのが妥当です。

この場合、コードは次のようになります(再び擬似コード)。

# t is still the incoming tensor of shape [B, H, W, C]
# but mean and stddev are computed along (0, 1, 2) axes and have just [C] shape
mean = mean(t, axis=(0, 1, 2))
stddev = stddev(t, axis=(0, 1, 2))
for i in 0..B-1, x in 0..H-1, y in 0..W-1:
  out[i,x,y,:] = norm(t[i,x,y,:], mean, stddev)

合計で、平均値と標準偏差はCのみであり、それぞれがB*H*W値で計算されます。それは、彼らが「効果的なミニバッチ」と言うときの意味です:2つの違いは、軸選択(または同等に「ミニバッチ選択」)のみです。

59
Maxim

私は自分の言うことを70%しか確信していないので、それが意味をなさない場合は、投票する前にそれを編集または言及してください。

locationまたはspatial locationについて:画像または機能マップ内のピクセルの位置を意味します。機能マップは、概念が表現されている画像のスパース修正バージョンに匹敵します。

so that different elements of the same feature map, at different locations, are normalized in the same wayについて:一部の正規化アルゴリズムはローカルであるため、画像内の遠く離れたものではなく、周囲(位置)に依存しています。それらはおそらく、その場所に関係なく、すべてのピクセルがセットの要素のように扱われ、直接の特別な周囲とは無関係であることを意味します。

In Alg. 1, we let B be the set of all values in a feature map across both the elements of a mini-batch and spatial locationsについて:ミニバッチ内のすべてのトレーニング例のすべての値のフラットリストを取得します。このリストは、フィーチャマップ上の位置が何であれ、それらを組み合わせます。

1