मैं समझता हूँ कि स्टोकेस्टिक ग्रेडिएंट वंश का उपयोग प्रशिक्षण डेटासेट के एक अलग नमूने के साथ प्रत्येक पुनरावृत्ति को अद्यतन करके एक तंत्रिका नेटवर्क को अनुकूलित करने के लिए किया जा सकता है। बैच का आकार कितना बड़ा होना चाहिए?
मैं समझता हूँ कि स्टोकेस्टिक ग्रेडिएंट वंश का उपयोग प्रशिक्षण डेटासेट के एक अलग नमूने के साथ प्रत्येक पुनरावृत्ति को अद्यतन करके एक तंत्रिका नेटवर्क को अनुकूलित करने के लिए किया जा सकता है। बैच का आकार कितना बड़ा होना चाहिए?
जवाबों:
जिस "नमूना आकार" के बारे में आप बात कर रहे हैं उसे बैच आकार , कहा जाता है । जब आप मिनी-बैच स्टोचस्टिक ग्रेडिएंट डिसेंट (SGD) के साथ एक तंत्रिका नेटवर्क को प्रशिक्षित करते हैं और डेटा आश्रित होता है, तो बैच आकार पैरामीटर हाइपर-मापदंडों में से एक होता है। हाइपर-पैरामीटर खोज का सबसे मूल तरीका एक जोड़ी खोजने के लिए सीखने की दर और बैच आकार पर एक ग्रिड खोज करना है जो नेटवर्क को परिवर्तित करता है।
यह समझने के लिए कि बैच का आकार क्या होना चाहिए, बैच ग्रेडिएंट डिसेंट, ऑनलाइन SGD, और मिनी-बैच SGD के बीच संबंध देखना महत्वपूर्ण है। यहां मिनी-बैच SGD में वजन अपडेट चरण के लिए सामान्य सूत्र है, जो तीनों प्रकारों का सामान्यीकरण है। [ २ ]
ध्यान दें कि 1 के साथ, नुकसान फ़ंक्शन अब एक यादृच्छिक चर नहीं है और स्टोचस्टिक सन्निकटन नहीं है।
SGD सामान्य "बैच" ग्रेडिएंट डिसेंट की तुलना में तेज़ी से कंवर्ट करता है क्योंकि यह ट्रेनिंग सेट के बेतरतीब ढंग से चुने गए सबसेट को देखने के बाद वज़न को अपडेट करता है। चलो हमारे प्रशिक्षण सेट हो सकता है और जाने मीटर ⊂ एक्स । बैच का आकार B केवल m की कार्डिनैलिटी है : B = | एम | ।
बैच ग्रैडिएंट वंश पूरे डेटासेट x के का उपयोग करके वज़न को अपडेट करता है ; जबकि मिनी-बैच m के लिए ग्रेडिएंट्स के औसत का उपयोग करके वेट अपडेट करता है । (औसत के रूप में एक राशि का विरोध एल्गोरिथ्म उन कदमों को लेने से रोकता है जो कि डेटासेट बहुत बड़े हैं। अन्यथा, आपको डेटासेट के आकार के आधार पर अपनी सीखने की दर को समायोजित करने की आवश्यकता होगी।) इस के अपेक्षित मूल्य। सीटू में प्रयुक्त ढाल का स्टोचस्टिक सन्निकटन बैच ढाल ढाल में प्रयुक्त नियतात्मक ढाल के बराबर है। ई [ ∇ एल एस जी डी ( θ , मीटर ) ] = ∇ ।
हर बार जब हम एक नमूना लेते हैं और अपने वजन को अपडेट करते हैं तो इसे मिनी-बैच कहा जाता है । हर बार जब हम संपूर्ण डेटासेट से चलते हैं, तो इसे एक युग कहा जाता है ।
सादगी के लिए हम मान सकते हैं कि टी बी से समान रूप से विभाज्य है। हालांकि, जब यह मामला नहीं है, जैसा कि अक्सर ऐसा नहीं होता है, प्रत्येक मिनी-बैच को इसके आकार के कार्य के रूप में उचित वजन सौंपा जाना चाहिए।
युगलों के साथ SGD के लिए एक पुनरावृत्ति एल्गोरिथ्म नीचे दिया गया है:
ध्यान दें: वास्तविक जीवन में हम इन प्रशिक्षण उदाहरण डेटा को मेमोरी से पढ़ रहे हैं और, आपके कंप्यूटर द्वारा किए गए कैश-प्रीचिंग और अन्य मेमोरी ट्रिक्स के कारण, मेमोरी एक्सेस के कॉइल होने पर , यानी जब आप मेमोरी पढ़ते हैं, तो आपका एल्गोरिथ्म तेजी से चलेगा क्रम में और बेतरतीब ढंग से चारों ओर कूद नहीं है। इसलिए, अधिकांश SGD कार्यान्वयन डेटासेट में फेरबदल करते हैं और फिर उदाहरणों को स्मृति में उस क्रम में लोड करते हैं जो उन्हें पढ़ा जाएगा।
उपरोक्त वर्णित वैनिला (कोई संवेग) SGD के लिए प्रमुख पैरामीटर हैं:
मैं एप्सिलॉन के बारे में सोचना चाहता हूं, जो कि एपोच काउंट से सीखने की दर तक एक फंक्शन है। इस फ़ंक्शन को लर्निंग रेट शेड्यूल कहा जाता है ।
यदि आप सीखने की दर निर्धारित करना चाहते हैं, तो बस एक स्थिर फ़ंक्शन के रूप में एप्सिलॉन को परिभाषित करें।
वेट अपडेट करने से पहले बैच का आकार निर्धारित करता है कि आप कितने उदाहरण देखते हैं। यह जितना कम होगा, प्रशिक्षण संकेत उतना अधिक होगा, जितना अधिक होगा, प्रत्येक चरण के लिए ढाल की गणना करने में उतना ही अधिक समय लगेगा।
उद्धरण और आगे पढ़ना:
For simplicity we can assume that D is evenly divisible by B
। क्या आपका मतलब यह नहीं है कि T, B द्वारा समान रूप से विभाज्य होना चाहिए?
B is typically chosen between 1 and a few hundreds, e.g. B = 32 is a good default value, with values above 10 taking advantage of the speed-up of matrix-matrix products over matrix-vector products.
(बेंगियो के 2012 के पेपर से) जोड़ सकते हैं