टीएल; डीआर: बहुत बड़ा एक मिनी-बैच आकार आमतौर पर कम सटीकता की ओर जाता है !
उन लोगों के लिए, यहाँ एक स्पष्टीकरण है।
गति की दो धारणाएँ हैं:
- कम्प्यूटेशनल गति
- एक एल्गोरिथ्म के अभिसरण की गति
कम्प्यूटेशनल गति बस हार्डवेयर में संख्यात्मक गणना करने की गति है। जैसा कि आपने कहा, यह आमतौर पर एक बड़े मिनी-बैच आकार के साथ अधिक होता है। ऐसा इसलिए है क्योंकि रेखीय बीजगणित पुस्तकालय अधिक मेमोरी का उपयोग करने की कीमत पर, उन्हें गति देने के लिए वेक्टर और मैट्रिक्स संचालन के लिए वेक्टरकरण का उपयोग करते हैं। लाभ एक बिंदु तक महत्वपूर्ण हो सकता है। मेरे अनुभव से, एक बिंदु है जिसके बाद गति में केवल सीमांत लाभ हैं, यदि कोई हो। यह बिंदु डेटा सेट, हार्डवेयर और एक पुस्तकालय पर निर्भर करता है जिसका उपयोग संख्यात्मक अभिकलन (हुड के तहत) के लिए किया जाता है।
लेकिन, यह मत भूलो कि गति की दूसरी धारणा भी है, जो हमें बताती है कि हमारा एल्गोरिदम कितनी जल्दी परिवर्तित होता है।
सबसे पहले, यह हमारे एल्गोरिथ्म को अभिसरण करने के लिए क्या मतलब है? ठीक है, यह निर्धारित करने और तय करने के लिए है कि जब हम एक सटीकता, या एक त्रुटि से संतुष्ट हैं, तो हम सत्यापन सेट पर गणना करते हैं। हम या तो इसे पहले से परिभाषित कर सकते हैं और उस बिंदु पर आने के लिए एल्गोरिथ्म की प्रतीक्षा कर सकते हैं, या हम प्रशिक्षण प्रक्रिया की निगरानी कर सकते हैं और इसे रोकने का फैसला कर सकते हैं जब सत्यापन त्रुटि काफी बढ़ जाती है (मॉडल डेटा सेट को ओवरफिट करना शुरू कर देता है)। यदि हम मिनी बैचों के साथ काम करते हैं, तो हम वास्तव में इसे तुरंत दूर नहीं रोक सकते हैं, यदि हम छोटे बैचों के साथ काम करते हैं, क्योंकि हम स्टोचस्टिक ग्रेडिएंट डिसेंट, एसडब्ल्यूई का उपयोग करते हैं। (पूर्ण बैच) ग्रेडिएंट डिसेंट के मामले में, प्रत्येक युग के बाद, एल्गोरिथ्म एक न्यूनतम में बस जाएगा, चाहे वह स्थानीय हो या वैश्विक। SGD कभी भी न्यूनतम में नहीं बसता है। यह चारों ओर दोलन करता रहता है। यह अनिश्चित काल तक चल सकता है,
अब, उस सिद्धांत के बाद, एक "पकड़" है जिस पर हमें ध्यान देने की आवश्यकता है। छोटे बैच आकार का उपयोग करते समय, त्रुटि की गणना से अधिक शोर होता है जब हम बड़े बैच आकार का उपयोग करते हैं। एक कहेंगे, अच्छा, यह बुरा है, है न? बात यह है, कि शोर एल्गोरिदम को एक खराब स्थानीय न्यूनतम से बाहर निकलने में मदद कर सकता है और बेहतर स्थानीय न्यूनतम, या उम्मीद है कि वैश्विक न्यूनतम खोजने की अधिक संभावना है।
इस प्रकार, यदि हम एक बड़े बैच के बजाय छोटे बैच आकार का उपयोग करके अधिक तेजी से एक बेहतर समाधान पा सकते हैं, तो बस "अवांछित" शोर की मदद से, हम अपने एल्गोरिथ्म को संतोषजनक खोजने में लगने वाले कुल समय के बीच ट्यून कर सकते हैं। समाधान और एक उच्च सटीकता।
मैं जो कहना चाहता हूं, वह किसी सटीकता (या त्रुटि) के लिए है, छोटे बैच आकार के कारण कुल प्रशिक्षण समय हो सकता है, लंबे समय तक नहीं, जैसा कि कई लोग मानते हैं।
या, यदि हम पहले की तरह ही प्रशिक्षण का समय रखने का निर्णय लेते हैं, तो हमें एक छोटे बैच आकार के साथ थोड़ी अधिक सटीकता मिल सकती है, और हम सबसे अधिक संभवतया करेंगे, खासकर यदि हमने अपनी सीखने की दर को उचित रूप से चुना है।
यदि आपके पास समय है, तो इस पेपर की जांच करें:
विशेष रूप से इमेजनेट पर सीएनएन अग्रिमों का व्यवस्थित मूल्यांकन , "3.7। बैच आकार और सीखने की दर" की जांच करें, और चित्रा 8. आप देखेंगे कि बड़े मिनी-बैच आकार एक बेहतर सटीकता की ओर ले जाते हैं। , भले ही ट्यूनिंग सीखने की दर एक अनुमानी के लिए।
सामान्य तौर पर, 32 का बैच आकार एक अच्छा प्रारंभिक बिंदु है, और आपको 64, 128 और 256 के साथ भी प्रयास करना चाहिए। कुछ डेटा सेट के लिए अन्य मान (कम या अधिक) ठीक हो सकते हैं, लेकिन दी गई सीमा आमतौर पर सबसे अच्छी होती है के साथ प्रयोग करना शुरू करें। हालांकि, 32 से कम, यह काफी कम कम्प्यूटेशनल गति के कारण धीमा हो सकता है, क्योंकि पूर्ण सीमा तक वैश्वीकरण का शोषण नहीं करता है। यदि आपको "मेमोरी से बाहर" त्रुटि मिलती है, तो आपको वैसे भी मिनी-बैच आकार को कम करने का प्रयास करना चाहिए।
तो, यह केवल सबसे बड़े संभव मिनी-बैच आकार का उपयोग करने के बारे में नहीं है जो स्मृति में फिट बैठता है।
अपने प्रश्न का निष्कर्ष निकालने, और जवाब देने के लिए, एक छोटा मिनी-बैच आकार (बहुत छोटा नहीं) आमतौर पर न केवल एक प्रशिक्षण एल्गोरिथ्म के पुनरावृत्तियों की एक बड़ी संख्या की ओर जाता है, बल्कि एक बड़े बैच के आकार की तुलना में, लेकिन समग्र रूप से उच्च सटीकता के लिए भी, अर्थात एक तंत्रिका नेटवर्क जो बेहतर प्रदर्शन करता है, प्रशिक्षण समय की एक ही मात्रा में, या उससे कम।
यह मत भूलो कि उच्च शोर एक खराब स्थानीय न्यूनतम से बाहर कूदने में मदद कर सकता है, बल्कि इसमें फंसने से छोड़ सकता है।