私はこれを読みました:
ニューラルネットワークをトレーニングするには、各パラメーターW(l)ijWij(l)と各b(l)ibi(l)をゼロに近い小さなランダム値に初期化します(たとえば、Normal(0、ϵ2)Normal(0 、ϵ2)いくつかの小さなϵϵの分布、たとえば0.01)
バックプロパゲーションアルゴリズムの 7番目の段落にあるスタンフォードの深層学習チュートリアルから
私が理解していないのは、重みまたはバイアスの初期化が約0である必要がある理由です。
私はこれを読みました:
ニューラルネットワークをトレーニングするには、各パラメーターW(l)ijWij(l)と各b(l)ibi(l)をゼロに近い小さなランダム値に初期化します(たとえば、Normal(0、ϵ2)Normal(0 、ϵ2)いくつかの小さなϵϵの分布、たとえば0.01)
バックプロパゲーションアルゴリズムの 7番目の段落にあるスタンフォードの深層学習チュートリアルから
私が理解していないのは、重みまたはバイアスの初期化が約0である必要がある理由です。
回答:
かなり合理的なデータ正規化を想定すると、重みの期待値はゼロまたはそれに近いはずです。正の初期重量は、実際に負の重量である必要があり、その逆の場合はさらに先へ進む必要があるため、すべての初期重量をゼロに設定するのが妥当かもしれません。ただし、これは機能しません。すべての重みが同じ場合、すべての重みは同じ誤差になり、モデルは何も学習しません-ニューロン間に非対称の原因はありません。
代わりに、できることは、重みをゼロに非常に近い値に保ちながら、ゼロ以外の小さい数値に初期化することで重みを変えることです。これは、リンクしたチュートリアルで提案されているものです。これは、「ゼロ推測」の期待値に近いという点で、すべてゼロの初期化と同じ利点がありますが、アルゴリズムが機能するために対称性も十分に壊れています。
このアプローチには追加の問題があります。特にニューラルネットワークが深い場合は、小さい数値がより適切に機能することは必ずしも真実ではありません。逆伝播で計算される勾配は、重みに比例します。重みが非常に小さいと、勾配が非常に小さくなり、ネットワークのトレーニングに非常に長い時間がかかるか、完了しないことがあります。
0に設定すると、すべて同じエラーになるため、backpropはそれらをすべて等しくします。したがって、ランダムに初期化する必要があります。
なぜ約0なのか?私はこの投稿がそれによく答えると思う:https : //stats.stackexchange.com/questions/47590/what-are-good-initial-weights-in-a-neural-network