ゼロ中心でないアクティベーション関数が逆伝播で問題になるのはなぜですか?


26

私はここで次を読みました:

  • シグモイド出力はゼロ中心ではありません。これは、ニューラルネットワークの処理の後の層のニューロン(これについては後ほど説明します)がゼロ中心でないデータを受信するため、望ましくありません。これは、勾配降下中のダイナミクスに影響を与えます。ニューロンに入るデータが常に正の場合(たとえば 、f = w T x + bx>0要素単位)、逆伝播中の重みwの勾配は次の いずれかになります。すべて正またはすべて負(式全体の勾配fに依存) f=wTx+bwf)。これにより、重みの勾配更新に望ましくないジグザグダイナミクスが導入される可能性があります。ただし、これらの勾配がデータのバッチ全体で加算されると、重みの最終更新に可変符号が付き、この問題が多少緩和されることに注意してください。したがって、これは不便ですが、上記の飽和した活性化の問題と比較して、それほど深刻な結果はありません。

すべてのx>0(要素ごと)がwすべて正またはすべて負の勾配になるのはなぜですか?



2
また、CS231nのビデオを見るのとまったく同じ質問がありました。
subwaymatch

回答:


28

f=wixi+b
dfdwi=xi
dLdwi=dLdfdfdwi=dLdfxi

xi>0dLdwidLdf


w1w2

目標がたまたま北東にある場合、狭いスペースでの縦列駐車のように、ジグザグに移動するだけでそこに着くことができます。(私の図面を許してください)

ここに画像の説明を入力してください

したがって、勾配ベースの最適化では、すべてが正またはすべてが負の活性化関数(relu、sigmoid)が難しい場合があります。この問題を解決するために、バッチ/レイヤーの正規化のように、データを事前に正規化してゼロ中心にすることができます。

f=wi(xi+bi).
dLdwi=dLdf(xibi)
xi


私が間違っているが、ここでJacobinのアイデアを使用するので、dL / dfの値をxの転置、つまりxTにしないでください。
chinmay

fwTx+bLwx

はい、それは私の終わりからの大きなタイプミスです。私はdf / dwを意味していました....しかし、ベクトルxと行ベクトルまたは列ベクトルに依存していると思います
-chinmay

dL/df

1
@floyd hi質問の更新をいくつか追加しました
dontloo
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.