बैंसर सामान्यीकरण और टेंसरफ्लो में ड्रॉपआउट का उपयोग करते समय (विशेष रूप से contrib.layers का उपयोग करके) क्या मुझे ऑर्डरिंग के बारे में चिंतित होने की आवश्यकता है?बैंसर सामान्य में बैच सामान्यीकरण और ड्रॉपआउट का ऑर्डर करना?
ऐसा लगता है कि अगर मैं बैच सामान्यीकरण द्वारा तत्काल ड्रॉपआउट का उपयोग करता हूं तो समस्या हो सकती है। उदाहरण के लिए, यदि बैच सामान्यीकरण में बदलाव प्रशिक्षण आउटपुट की बड़ी संख्या में ट्रेनों को प्रशिक्षित करता है, लेकिन फिर उसी बदलाव को परीक्षण के दौरान ड्रॉपआउट के बिना स्केल नंबरों के छोटे (अधिक आउटपुट के लिए मुआवजे के कारण) पर लागू किया जाता है, तब वह शिफ्ट बंद हो सकता है। क्या TensorFlow बैच सामान्यीकरण परत स्वचालित रूप से इसके लिए क्षतिपूर्ति करता है? या ऐसा कुछ कारणों से नहीं होता है जो मुझे याद आ रही है?
इसके अलावा, क्या इन दोनों को एक साथ उपयोग करते समय देखने के लिए अन्य समस्याएं हैं? उदाहरण के लिए, मान लीजिए कि मैं उपर्युक्त के संबंध में सही क्रम में उनका उपयोग कर रहा हूं (माना जाता है कि सही क्रम है), क्या कई बैच सामान्यीकरण और कई लगातार परतों पर ड्रॉपआउट का उपयोग करने में समस्या हो सकती है? मुझे तुरंत इसके साथ कोई समस्या नहीं दिखाई दे रही है, लेकिन मुझे कुछ याद आ रहा है।
आपको बहुत धन्यवाद!
अद्यतन:
एक प्रयोगात्मक परीक्षण लगता कि आदेश देने फर्क पड़ता है सुझाव देने के लिए। मैंने बैच मानक और ड्रॉपआउट रिवर्स के साथ दो बार एक ही नेटवर्क चलाया। जब ड्रॉपआउट बैच मानदंड से पहले होता है, तो सत्यापन हानि बढ़ रही है क्योंकि प्रशिक्षण हानि घट रही है। वे दोनों दूसरे मामले में नीचे जा रहे हैं। लेकिन मेरे मामले में आंदोलन धीमा है, इसलिए अधिक प्रशिक्षण के बाद चीजें बदल सकती हैं और यह सिर्फ एक ही परीक्षा है। एक और निश्चित और सूचित उत्तर की सराहना की जाएगी।
ऐसा लगता है कि यहां तक कि ईसाई Szegedy अब भी ReLU बैच नॉर्म _after_ प्रदर्शन करने के लिए पसंद करता है (इससे पहले नहीं)। केरास के लेखक एफ। कोलेट द्वारा उद्धरण: "मैं यह जांचने के लिए वापस नहीं गया हूं कि वे अपने मूल पत्र में क्या सुझाव दे रहे हैं, लेकिन मैं गारंटी दे सकता हूं कि ईसाई द्वारा लिखे गए हालिया कोड बीएन से पहले relu लागू होता है। यह अभी भी कभी-कभी विषय है बहस का, यद्यपि। " [स्रोत] (https://github.com/fchollet/keras/issues/1802#issuecomment-187966878) – pseudomarvin
@pseudomarvin के समान थ्रेड से, आरएलयू के पहले और बाद में बैच सामान्यीकरण रखने से कुछ परिणाम यहां दिए गए हैं। इन परिणामों में पाया गया कि * के बाद * रेएलयू बेहतर है: [परिणाम] (https://github.com/ducha-aiki/caffenet-benchmark/blob/master/batchnorm.md#bn----before-or-after -relu) – golmschenk
पूलिंग के बारे में क्या, क्या यह बैचनोर्म और सक्रियण के बीच में होगा? – wordsforthewise