バッチ正規化を注意深く行う必要がある理由の例の説明は何ですか?


11

私はバッチ正規化ペーパー [1]を読んでいて、正規化を慎重に行う必要がある理由を示すために、例を示すセクションが1つありました。正直なところ、この例がどのように機能するのか理解できません。私ができる限り彼らの論文を理解することに本当に興味があります。最初にここで引用させてください:

たとえば、学習バイアスbを追加し、トレーニングデータに対して計算されたアクティベーションの平均を減算することによって結果を正規化する入力uを含むレイヤーを考えます。ここで、 はトレーニングセットのの値のセットであり、です。勾配降下工程は、の依存性は無視された場合はで、それが更新され、。次に、です。したがって、への更新の組み合わせx^=xE[x]x=u+b,X={x1...N}xE[x]=i=1NxiE[x]bbb+Δ>bΔblx^u+(b+Δb)E[u+(b+Δb)]=u+bE[u+b]b その後の正規化の変更により、レイヤーの出力も変更されず、その結果、損失も発生しませんでした。

私はメッセージを理解していると思います。正規化を適切に行わなければ、それは悪いことです。彼らが使用している例がこれをどのように描写しているかは私にはわかりません。

困惑している点について具体的に説明していないと、誰かを助けるのは難しいことは承知しているので、次のセクションで、説明について混乱していることを説明します。


私の混乱のほとんどは表記法かもしれないと思うので、はっきりさせておきます。

まず、筆者を混乱させるものの1つは、著者がネットワーク内にユニットを持つことの意味と、アクティベーションとは何かです。通常、アクティベーションは次のように考えます。

x(l)=a(l)=θ(z(l))=θ(w(l),x(l1)+b(l))

ここで、は、最初の入力レイヤーからの生の特徴ベクトルです。x(0)=a(0)=x

また、私が最初に混乱するのは(前の理由により)、彼らが実際に説明しようとしているシナリオが何であるかだと思います。それは言う:

トレーニングデータに対して計算されたアクティベーションの平均を差し引くことにより、結果を正規化します。ここで、x^=xE[x]x=u+b

彼らが言っているのは、フォワードパスによって計算されたアクティベーションを使用する代わりに、平均アクティベーションを差し引くことによって、ある種の「正規化」を実行することだと思います。:x(l)=a(l)

x¯l=a¯l=1Ni=1Na¯l=1Ni=1Nx¯l

それを逆伝播アルゴリズムに渡します。または、少なくともそれは私にとって意味のあることです。

これに関連して、彼らがと呼ぶものはおそらくでしょうか?彼らがそれを「入力」と呼び、方程式を持っているので、それは私が推測することです(私は彼らがニューラルネットワークに恒等/線形活性化ユニットを使用していると思いますか?)。ux(l)x=u+b

さらに私を混乱させるために、彼らはを偏微分に比例するものとして定義しますが、偏微分はに関して計算されます。これは私には本当に奇妙に見えます。通常、勾配降下法を使用する場合の偏導関数は、ネットワークのパラメーターに関するものです。オフセットの場合、私は考えたでしょう:Δbx^

Δb(l)lb(l)

正規化されたアクティベーションに関しての導関数を取るよりも意味があります。私は、彼らがに関して微分を取ると思います理由を理解しようとしていたと私は、彼らが書いたとき、彼らはデルタとしていたのかもしれないと思った以来、デルタの方程式は次のとおりであるため、これは通常、事前アクティブ化に関する微分を持つback-propアルゴリズムの唯一の部分です。x^lx^

δj(l)=Lzj(l)

私を混乱させる別のことは:

次に、です。u+(b+Δb)E[u+(b+Δb)]=u+bE[u+b]

彼らは上記の方程式で何を計算しようとしているのか実際には言っていませんが、が更新された後、更新された正規化アクティベーション(最初のレイヤーについて?)を計算しようとしていると思います。私は正しい方程式があったはずだと思うので、私が彼らのポイントを買うかどうかわかりません:bb+Δb

x^=θ(u+(b+Δb))E[θ(u+(b+Δb))]

これは、パラメータ変更をキャンセルしません。しかし、私は彼らが何をしているのか本当にわからないので、私は推測しているだけです。彼らが書いたその方程式は正確には何ですか?Δbb

これが正しい理解であるかどうかはわかりませんが、私は彼らの例をいくつか考えました。彼らの例には非線形アクティベーションユニットがなく(アイデンティティを使用)、彼らは最初の入力層のみについて話しているようですか?彼らは多くの詳細を省略し、表記法はあまり明確ではないので、彼らが話していることを正確に推測することはできません。誰かがこの例を各レイヤーで何が起こっているかを表す表記で表現する方法を知っていますか?誰かがその例で実際に何が起こっているのかを理解していて、私に彼らの知恵を共有したいですか?


[1]:Ioffe S.とSzegedy C.(2015)、
「バッチ正規化:内部共変量シフトの削減によるディープネットワークトレーニングの加速」、
第32回機械学習に関する国際会議の議事録、リール、フランス、2015。Journalof
Machine Learning研究:W&CPボリューム37


その段落の表記上の性質は今では明らかだと思いますが、メッセージが伝えようとしていることとその目的はあまり明確ではありません。
チャーリーパーカー、

回答:


3

私は、この段落の全体のポイントは、だと思う勾配降下ステップは依存無視する場合は上バイアス項bを更新する出力に変化はないにつながる、E[x]bその前の文に記載の、

ただし、これらの変更が最適化ステップに散在している場合、勾配降下ステップは、正規化の更新を必要とする方法でパラメーターを更新しようとする場合があり、勾配ステップの影響が減少します。

したがって、彼らは彼らの方法の正規化を勾配降下ステップに気づかせました。


あなたの質問について

これに関連して、彼らがと呼ぶものはおそらくでしょうか?ux(l)

最初の文で主張されているように、はレイヤーの入力です。例ではの効果のみを示しているため、実際に何であるかは問題ではないようです。uub

は、正規化されたアクティベーションに関するの微分をとるよりも、もっと理にかなっていると思いました。Δblb

我々が知っている、我々はの依存性を無視しているように、に、我々は なので、。x^=xE[x]=u+bE[x]E[x]b

lb=lx^x^b=lx^,
Δblx^

u+(b+Δb)E[u+(b+Δb)]=u+bE[u+b]彼らは上記の方程式で計算しようとしていることを実際には言っていませんが私は、彼らが更新され、正規化活性化を計算しようとしていることを推測します(第1層のため?)の後にに更新され?bb+Δb

これは、計算されした後、に更新され勾配降下工程は、の依存性は無視されている場合ことを示すために、上に、バイアス項bを更新するの変化なしにつながります出力。x^bb+ΔbE[x]b


LasagneKerasなど、バッチ正規化のいくつかのオープンソース実装を確認すると役立つ場合があります。

関連していると思われる別の質問があります。ニューラルネットワークでバッチ正規化を使用するときになぜモーメントの勾配(平均と分散)を取るのですか?


彼らのポイントは、バイアスを更新するときに損失が変化するように、GD更新に正規化を認識させる必要があるということでしょうか。またはその段落の中心的な目標は何ですか?
チャーリーパーカー

@CharlieParkerはい、そうです、GD updateに正規化(IMO)を認識させる理由があることを示すためです。
dontloo

E [Δb] =Δbですか?もしそうなら、なぜですか?
MichaelSB 2018
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.