ニューラルネットワークの重みが乱数で初期化されるのはなぜですか?


9

ニューラルネットワークの初期の重みが乱数として初期化されるのはなぜですか?これは「対称性を壊す」ために行われ、これによりニューラルネットワークの学習が速くなることをどこかで読んだことがあります。対称性を壊すことで、学習がどのように速くなりますか?

重みを0に初期化した方がいいでしょうか?そうすれば、重みはそれらの値(正または負)をより速く見つけることができますか?

初期化時に重みが最適値に近いことを期待することとは別に、重みをランダム化する背後にある他の基本的な哲学はありますか?

回答:


6

ウェイトレイヤーを小さな(そして異なる)値に初期化する背後にある基本的な直感は、システムのバイアスが壊れ、ウェイト値が異なる値に沿って離れたり離れたりできるようにするためです。

より具体的には、おそらく初期の重みを明確にし、それらの間に「小さなギャップ」を設ける必要があります。この「ギャップ」は、進むにつれて拡張し、重みが毎回少し大きくなるように強制します。これにより、ネットワークの収束が速くなります。つまり、学習プロセスがスピードアップします。

代わりにすべてのウェイトを一定にすると、各ウェイトは非常に遅い(固定された)レートで更新されます。これは、特に初期値が最終値から「非常に遠い」場合、あまり役に立ちません。

お役に立てれば幸いです。楽しく学んでください。


つまり、初期ウェイトをランダム化することは、各ウェイトに移動する必要がある方向(およびギャップを拡大する方向)に微調整を与えることと同じです。
Shayan RC 2013

私はそれが正しい方向である必要はないと思います、あなたは同様に[-0.5、+0.5]の初期ウェイトで開始するかもしれません。異なる値..
Subhayan 2013

私がNNで働いてから1年以上経過しているので、手を振って話しているので、その背後にある数学が必要かどうかをお知らせください。しかし、ここで直感を
理解

その背後にある数学は役に立ちますが、さらに役立つ実用的なアドバイスがいくつかあります。たとえば、初期の重みをどのくらい小さくすべきですか(10 ^?)さまざまな種類のネットワークでどのように異なるのですか?すべてのために働くある種のマジックナンバーはありますか?
Shayan RC 2013
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.