मुझे समझ में नहीं आ रहा है कि क्यों ड्रॉपआउट इस तरह tensorflow में काम करता है। CS231n के ब्लॉग का कहना है "dropout is implemented by only keeping a neuron active with some probability p (a hyperparameter), or setting it to zero otherwise."
इसके अलावा, आप चित्र (एक ही साइट से लिया) से देख सकते हैं कि, tensorflow में tf.nn.dropout में इनपुट क्यों स्केल किया गया है?
tensorflow साइट से, With probability keep_prob, outputs the input element scaled up by 1/keep_prob, otherwise outputs 0.
अब, क्यों इनपुट तत्व 1/keep_prob
द्वारा मापा जाता है? इनपुट तत्व को क्यों न रखें क्योंकि यह संभावना के साथ है और इसे 1/keep_prob
के साथ स्केल नहीं करें?
मुझे खेद है, मैं इस अवधारणा के लिए नया हूं। शायद मुझे कुछ याद आ रही है। क्या आप एक सरल स्पष्टीकरण दे सकते हैं? मेरा मतलब है क्यों 1/keep_prob? अगर मैं keep_prob बनाम 1/keep_prob का उपयोग करता हूं तो क्या अंतर होगा। बीटीडब्ल्यू, मैं आपकी व्याख्या से समझता हूं कि कोड सरल क्यों हो जाता है। –
इसका लक्ष्य वज़न की अपेक्षित राशि को — रखना है और इसलिए 'keep_prob' पर ध्यान दिए बिना सक्रियताओं की अपेक्षित मान — है। यदि (ड्रॉपआउट करते समय) हम संभावना 'keep_prob' के साथ एक न्यूरॉन अक्षम करते हैं, तो हमें अन्य वजन को '1 से गुणा करने की आवश्यकता होती है।/keep_prob' इस मान को समान रखने के लिए (उम्मीद में)। अन्यथा, उदाहरण के लिए, गैर-रैखिकता 'keep_prob' के मान के आधार पर एक पूरी तरह से अलग परिणाम उत्पन्न करेगी। – mrry