शून्य के साथ वजन को शुरू करना खतरनाक क्यों है? क्या कोई सरल उदाहरण है जो इसे प्रदर्शित करता है?
शून्य के साथ वजन को शुरू करना खतरनाक क्यों है? क्या कोई सरल उदाहरण है जो इसे प्रदर्शित करता है?
जवाबों:
नीचे देखें अल्फा की टिप्पणी को संपादित करें । मैं तंत्रिका जाल का विशेषज्ञ नहीं हूं, इसलिए मैं उसे टाल दूंगा।
मेरी समझ यहाँ पोस्ट किए गए अन्य उत्तरों से अलग है।
मुझे पूरा यकीन है कि बैकप्रॉपैगैशन में मौजूदा वज़न को जोड़ना शामिल है , गुणा नहीं। आपके द्वारा जोड़ी जाने वाली राशि डेल्टा नियम द्वारा निर्दिष्ट है । ध्यान दें कि समीकरण के दाईं ओर विज दिखाई नहीं देता है।
मेरी समझ यह है कि शुरुआती वज़न को शून्य पर सेट न करने के कम से कम दो अच्छे कारण हैं:
सबसे पहले, तंत्रिका नेटवर्क स्थानीय मिनिमा में फंस जाते हैं, इसलिए उन्हें कई अलग-अलग शुरुआती मूल्य देने के लिए एक अच्छा विचार है। आप ऐसा नहीं कर सकते अगर वे सभी शून्य पर शुरू करते हैं।
दूसरा, यदि न्यूरॉन्स एक ही वजन के साथ शुरू होते हैं, तो सभी न्यूरॉन्स एक ही ढाल का पालन करेंगे, और हमेशा एक दूसरे के रूप में एक ही काम करते हुए समाप्त हो जाएंगे।
यदि आप एक बायेसियन नेटवर्क के रूप में, पुजारी के रूप में वजन के बारे में सोचते हैं, तो आपने किसी भी संभावना को खारिज कर दिया है कि वे इनपुट संभवतः सिस्टम को प्रभावित कर सकते हैं। एक और व्याख्या यह है कि बैकप्रॉपैगैशन वजन के सेट की पहचान करता है जो लक्ष्य और मनाया मूल्यों (ई) के बीच भारित वर्ग अंतर को कम करता है। फिर सिस्टम की दिशा निर्धारित करने के संदर्भ में कोई भी ढाल मूलक एल्गोरिदम कैसे उन्मुख हो सकता है? आप पैरामीटर स्पेस की काठी बिंदु पर खुद को रख रहे हैं।
In each iteration of your backpropagation algorithm, you will update the weights by multiplying the existing weight by a delta determined by backpropagation. If the initial weight value is 0, multiplying it by any value for delta won't change the weight which means each iteration has no effect on the weights you're trying to optimize.
The answer to this is not entirely "Local Minima/Maxima".
When you have more than 1 Hidden Layer and every weight are 0's, no matter how big/small a change in Weight_i will not cause a change in the Output.
This is because delta Weight_i will be absorbed by the next Hidden Layer.
When there is no change in the Output, there is no gradient and hence no direction.
This shares the same traits as a Local Minima/Maxima, but is actually because of 0's, which is technically different
Main problem with initialization of all weights to zero mathematically leads to either the neuron values are zero (for multi layers) or the delta would be zero. In one of the comments by @alfa in the above answers already a hint is provided, it is mentioned that the product of weights and delta needs to be zero. This would essentially mean that for the gradient descent this is on the top of the hill right at its peak and it is unable to break the symmetry. Randomness will break this symmetry and one would reach local minimum. Even if we perturb the weight(s) a little we would be on the track. Reference: Learning from data Lecture 10.
It's a bad idea because of 2 reasons:
If you have sigmoid activation, or anything where then it will cause weights to move "together", limiting the power of back-propagation to search the entire space to find the optimal weights which lower the loss/cost.
If you have or ReLu activation, or anything where then all the outputs will be 0, and the gradients for the weights will always be 0. Hence you will not have any learning at all.
Let's demonstrate this (for simplicity I assume a final output layer of 1 neuron):
Forward feed: If all weights are 0's, then the input to the 2nd layer will be the same for all nodes. The outputs of the nodes will be the same, though they will be multiplied by the next set of weights which will be 0, and so the inputs for the next layer will be zero etc., etc. So all the inputs (except the first layer which takes the actual inputs) will be 0, and all the outputs will be the same (0.5 for sigmoid activation and 0 for and ReLu activation).
Back propagation: Let's examine just the final layer. The final loss () depends on the final output of the network (, where L denotes the final layer), which depends on the final input before activation (), which depends on the weights of the final layer (). Now we want to find:
Point 2 can be shown from the fact that will be equal to zero's. Hence your vector will be full of zeros, and no learning can be achieved.