बैच आकार एसडब्ल्यूई के अभिसरण को कैसे प्रभावित करता है और क्यों?


18

मैंने कई चर्चाओं से समान निष्कर्ष निकाला है, जैसा कि मिनीबैच का आकार बड़ा हो जाता है, क्योंकि एसडब्ल्यूई का अभिसरण वास्तव में कठिन / बदतर हो जाता है, उदाहरण के लिए यह पेपर और यह उत्तर । इसके अलावा मैंने बड़े स्तर के आकारों के साथ इस कठिनाई को दूर करने के लिए शुरुआती चरण में छोटे सीखने की दरों या बैच आकारों जैसी चाल का उपयोग करने वाले लोगों के बारे में सुना है।

हालाँकि ऐसा लगता है कि काउंटर-सहज ज्ञान युक्त है क्योंकि मिनीबैच का औसत नुकसान डेटा वितरण पर अपेक्षित नुकसान के अनुमान के रूप में माना जा सकता है,

1|X|xXl(x,w)Expdata[l(x,w)]
बड़ा बैच आकार और अधिक सटीक यह माना है। व्यवहार में यह मामला क्यों नहीं है?


यहाँ मेरे कुछ (शायद गलत) विचार हैं जो समझाने की कोशिश करते हैं।

मॉडल के पैरामीटर एक-दूसरे पर अत्यधिक निर्भर करते हैं, जब बैच बहुत बड़ा हो जाता है तो यह एक ही बार में कई मापदंडों को प्रभावित करेगा, जैसे कि मापदंडों के लिए एक स्थिर अंतर्निहित निर्भरता तक पहुंचने के लिए इसकी मेहनत? ( बैच सामान्यीकरण पेपर में उल्लिखित आंतरिक कोवरिएट शिफ्ट समस्या की तरह )

या जब लगभग सभी पैरामीटर हर पुनरावृत्ति में जिम्मेदार होते हैं, तो वे निरर्थक निहित पैटर्न सीखना चाहते हैं, इसलिए मॉडल की क्षमता कम हो जाती है? (मेरा मतलब है कि अंकों के वर्गीकरण की समस्याओं के लिए कुछ पैटर्न डॉट्स के लिए जिम्मेदार होने चाहिए, कुछ किनारों के लिए, लेकिन जब ऐसा होता है तो हर पैटर्न सभी आकृतियों के लिए जिम्मेदार होने की कोशिश करता है)।

या यह इसलिए है क्योंकि जब बैचों का आकार प्रशिक्षण सेट के पैमाने के करीब हो जाता है, तो मिनीबैच को डेटा वितरण से आईआईडी के रूप में नहीं देखा जा सकता है, क्योंकि सहसंबद्ध मिनीबैच के लिए एक बड़ी संभावना होगी?


अपडेट
जैसा कि बेनोइट सांचेज़ के जवाब में बताया गया है कि एक महत्वपूर्ण कारण यह है कि बड़े मिनीबच को एक अपडेट को पूरा करने के लिए अधिक गणना की आवश्यकता होती है, और अधिकांश विश्लेषण तुलना के लिए एक निश्चित मात्रा में प्रशिक्षण युग का उपयोग करते हैं।

हालांकि इस पत्र (विल्सन और मार्टिनेज, 2003) से पता चलता है कि एक बड़े बैच का आकार अभी भी थोड़ा नुकसानदेह है, यहां तक ​​कि प्रशिक्षण की पर्याप्त मात्रा भी दी गई है। क्या आमतौर पर ऐसा होता है? यहाँ छवि विवरण दर्ज करें

जवाबों:


12

बड़े मिनीबैच के साथ निश्चित रूप से एक अपडेट "बेहतर" (सटीकता के संदर्भ में) एक छोटे से मिनीबैच के साथ एक अपडेट है । यह आपके द्वारा अपने प्रश्न में कॉपी की गई तालिका में देखा जा सकता है (कॉल सैंपल साइज़):एन

  • बैच का आकार 1: अपडेट की संख्या 27एन
  • 8343×एन200000.47एन

आप देख सकते हैं कि बड़े बैचों के साथ आपको उसी सटीकता के लिए बहुत कम अपडेट की आवश्यकता होती है।

लेकिन इसकी तुलना नहीं की जा सकती क्योंकि यह डेटा की समान मात्रा को संसाधित नहीं कर रहा है। मैं पहला लेख उद्धृत कर रहा हूँ:

बीजे1जेबीजे

यहां डेटा की समान मात्रा को संसाधित करने के बारे में है और जबकि कई मिनी-बैचों के लिए छोटे ओवरहेड हैं, यह तुलनीय प्रसंस्करण संसाधन लेता है।

यह समझने के कई तरीके हैं कि क्यों कई अपडेट बेहतर हैं (उसी मात्रा में डेटा पढ़ा जा रहा है)। यह स्टोकेस्टिक ग्रेडिएंट डीसेंट बनाम ग्रेडिएंट डीसेंट का प्रमुख विचार है। सब कुछ पढ़ने के बजाय और फिर अपने आप को अंत में सही करें, आप अपने आप को रास्ते में सही करते हैं, जिससे आप आगे पढ़ते हैं और अधिक उपयोगी होते हैं क्योंकि आप खुद को एक बेहतर अनुमान से ठीक करते हैं। ज्यामितीय रूप से, कई अपडेट बेहतर होते हैं क्योंकि आप प्रत्येक सेगमेंट की शुरुआत में (खंडित) ग्रेडिएंट की दिशा में कई सेगमेंट खींच रहे हैं। जबकि एक बड़ा अपडेट (सटीक) ग्रेडिएंट की दिशा में बहुत शुरुआत से एक एकल खंड है। दिशा कम सटीक होने पर भी कई बार दिशा बदलना बेहतर होता है।

मिनी-बैचों का आकार अनिवार्य रूप से अद्यतनों की आवृत्ति है: जितना छोटा होता है उतना अधिक अद्यतन होता है। एक चरम (मिनीबैच = डेटासेट) पर आपके पास क्रमिक वंश होता है। दूसरे चरम पर (मिनीबैच = एक लाइन) आपके पास प्रति पंक्ति पूर्ण है। प्रति पंक्ति SGD वैसे भी बेहतर है, लेकिन बड़े मिनीबच अधिक कुशल समानांतरकरण के लिए अनुकूल हैं।

अभिसरण प्रक्रिया के अंत में, जीडीडी (बैच) जीडी की तुलना में कम सटीक हो जाता है। लेकिन इस बिंदु पर, चीजें (आमतौर पर) एक तरह से बेकार सटीक फिटिंग बन जाती हैं। जब आप प्रशिक्षण सेट पर थोड़ा कम नुकसान उठाते हैं, तो आपको वास्तविक पूर्वानुमानित शक्ति नहीं मिलती है। आप केवल बहुत सटीक इष्टतम की तलाश कर रहे हैं लेकिन यह मदद नहीं करता है। यदि नुकसान फ़ंक्शन को सही ढंग से नियमित किया जाता है (जो ओवर-फिटिंग को रोकता है) तो आप बिल्कुल "ओवर" नहीं करते हैं, आप बस बेकार "हाइपर" -फिट। यह परीक्षण सेट पर सटीकता में एक महत्वपूर्ण परिवर्तन के रूप में दिखाता है।


1
धन्यवाद, यह बहुत समझ में आता है। तो मूल रूप से अगर एक ही राशि के अपडेट कर रहे हैं, तो बड़े बैच का आकार कम से कम उतना ही अच्छा होगा?
3

क्या आप उस पर किसी भी प्रकाशित प्रयोगों को जानने के लिए होते हैं (अपडेट की निश्चित संख्या के साथ विभिन्न बैच आकारों की तुलना)?
3

समान संख्या में अपडेट के लिए, बड़े बैच हमेशा बेहतर होते हैं। मुझे एक प्रकाशन के बारे में नहीं पता, अगर मुझे कभी कोई मिल जाए तो मैं उसे पोस्ट कर दूंगा।
बेनोइट सांचेज

मैं आपके बाकी सवाल (तालिका) पढ़ता हूं। दिलचस्प है कि यह एक परीक्षण सेट पर परिणाम दिखाता है जबकि ढाल सभ्य का उद्देश्य प्रशिक्षण सेट पर अनुकूलन करना है। यह संभव है कि छोटे बैच इष्टतम के यादृच्छिककरण के द्वारा एक विशेष प्रकार के मामूली से बचें। यह एक सूक्ष्म बात है जिसके बारे में मेरी कोई सहज पकड़ नहीं है।
बेनोइट सांचेज

लेख के अनुसार सटीकता में अंतर महत्वपूर्ण नहीं है। वे केवल यह बताना चाहते हैं कि सटीकता अनिवार्य रूप से समान है। वे मुख्य रूप से इंगित करना चाहते हैं कि छोटे बैचों के साथ एसजीडी बहुत तेज है।
बेनोइट सांचेज

4

कर्टिस व्हाइट के जवाब में जोड़ने के लिए (और कुछ और संदर्भ जोड़कर):

Yes SGD एक प्रकार के नियमितीकरण के रूप में काम करता है। यह महत्वपूर्ण है क्योंकि अन्यथा, यह समझाना कठिन है कि DNNs हमेशा ओवरफिट क्यों नहीं करते, क्योंकि वे कर सकते हैं

कारण, जैसा कि मैं समझता हूं, यह है कि SGD पैरामीटर स्पेस में 'हॉपिंग अराउंड' करता है, इसलिए प्रशिक्षण के दौरान पैरामीटर एक संकीर्ण न्यूनतम में नहीं रह सकते हैं, केवल (या करीब) व्यापक होते हैं। और ये व्यापक रूप से स्पष्ट रूप से [1] बेहतर (उर्फ, कम ओवरफिटिंग) को सामान्य करते हैं।

अधिक संदर्भ:

  • यहां बताया गया है [2] एक और पेपर जो इसे औपचारिक रूप देता है (या करने की कोशिश करता है, मैंने सब कुछ का पालन नहीं किया है, अपने आप को देखें!)
  • इस पत्र [3] का दावा है कि एक चरण है "stochastic relaxation, or random diffusion"जहां पर स्थिति में अंतर्निहित स्टोकैस्टिसिटी की ओर जाता है "maximiz[ation of] the conditional entropy of the layer"

दोनों का कहना है कि एसडब्ल्यूडी एक एन्ट्रापी नियमितीकरण शब्द से मेल खाती है।

निश्चित रूप से अन्य तरीके हो सकते हैं जिसमें बैच आकार अभिसरण को प्रभावित करता है; यह वह है जिसे मैं जानता हूं।


[१] उदाहरण: "अ बायेसियन पर्सपेक्टिव ऑन जनरलाइजेशन एंड स्टोचस्टिक ग्रेडिएंट डिसेंट", स्मिथ, ले, २०१ "। अमूर्त से: "We propose that the noise introduced by small mini-batches drives the parameters towards minima whose evidence is large."

[२] "स्टोकेस्टिक ग्रेडिएंट डीसेंट वैरिएशन इंट्रेंस प्रदर्शन करता है, गहरे नेटवर्क के लिए साइकल को सीमित करता है", चौधरी, सोआटो 2017

[३] "सूचना के माध्यम से डीप न्यूरल नेटवर्क्स का ब्लैक बॉक्स खोलना" श्वार्ट्ज-ज़िव, टीशबी, २०१ing

[४] "गहरी समझ को समझना सामान्यीकरण पर पुनर्विचार की आवश्यकता है", सी। झांग आदि २०१६


(+1) अच्छे संदर्भ। btw, [4] पर पहला लेखक सी। झांग है
user20160 3

ओह, तुम सही हो! इसे संपादित किया, सुधार के लिए धन्यवाद।
dasWesen

0

एक बहुत बड़े बैच का आकार कम से कम जब एसडब्लूएस का उपयोग करके और केआरएस का उपयोग करके प्रशिक्षण एमएलपी को रोक सकता है। क्यों, मुझे 100% यकीन नहीं है कि यह ग्रेडिएंट के औसत के साथ करना है या छोटे अपडेट स्थानीय मिनिमा से बचने की अधिक संभावना प्रदान करते हैं।

देखें यहाँ

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.