बैच ढाल वंश बनाम स्टोचैस्टिक ग्रेडिएंट वंश


101

मान लीजिए हमारे पास लिए कुछ प्रशिक्षण सेट । यह भी मान लीजिए कि हम प्रशिक्षण सेट पर कुछ प्रकार के पर्यवेक्षित शिक्षण एल्गोरिथ्म चलाते हैं। Hypotheses को । हमें और बीच "दूरी" को कम से कम करने वाले पैरामीटर को खोजने की आवश्यकता है । आज्ञा देना(x(i),y(i))i=1,,mhθ(x(i))=θ0+θ1x(i)1++θnx(i)nθy(i)hθ(x(i))

J(θ)=12i=1m(y(i)hθ(x(i))2

फिर हम को खोजना चाहते हैं जो । वंश में हम प्रत्येक पैरामीटर को इनिशियलाइज़ करते हैं और निम्नलिखित अपडेट करते हैं:θJ(θ)

θj:=θjαθjJ(θ)

बैच ग्रेडिएंट डिसेंट और स्टोचैस्टिक ग्रेडिएंट डिसेंट के बीच मुख्य अंतर क्या है?

दोनों उपरोक्त अद्यतन नियम का उपयोग करते हैं। लेकिन क्या एक दूसरे से बेहतर है?

जवाबों:


121

बैच या स्टोकेस्टिक ग्रेडिएंट वंश की प्रयोज्यता वास्तव में अपेक्षित त्रुटि त्रुटि पर निर्भर करती है।

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

स्टोचस्टिक ग्रेडिएंट डिसेंट (SGD) एकल नमूने का उपयोग करके ढाल की गणना करता है। SGD के अधिकांश अनुप्रयोगों में वास्तव में कई नमूनों का उपयोग होता है, उन कारणों के लिए जिन्हें थोड़ा बाद में समझाया जाएगा। SGD अच्छी तरह से काम करता है (अच्छी तरह से, मुझे लगता है, लेकिन बैच मैनिफ़ेस्ट वंश से बेहतर) त्रुटि मैनिफोल्ड्स के लिए जो कि स्थानीय मैक्सिमा / मिनिमा के बहुत सारे हैं। इस मामले में, कुछ हद तक स्पष्ट ग्रेडियंट की गणना कम नमूनों का उपयोग करके स्थानीय मिनीमा से बाहर के मॉडल को एक ऐसे क्षेत्र में झटकने के लिए किया जाता है, जो उम्मीद से अधिक इष्टतम है। एकल नमूने वास्तव में शोर होते हैं, जबकि मिनीबैच शोर के औसत को थोड़ा कम करते हैं। इस प्रकार, minibatches का उपयोग करते समय झटका की मात्रा कम हो जाती है। एक अच्छा संतुलन तब होता है जब खराब स्थानीय मिनिमा से बचने के लिए मिनीबैच का आकार काफी छोटा होता है, लेकिन इतना बड़ा कि वह ' टी वैश्विक minima या बेहतर प्रदर्शन करने वाली स्थानीय minima से बचें। (संयोग से, यह मानता है कि सर्वश्रेष्ठ मिनीमा में आकर्षण का एक बड़ा और गहरा बेसिन है, और इसलिए इसमें गिरना आसान है)

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

आमतौर पर, यह कम्प्यूटेशनल लाभ SGD के कई और पुनरावृत्तियों का प्रदर्शन करके लाभ उठाया जाता है, जो पारंपरिक बैच ढाल वंश की तुलना में कई अधिक कदम बनाता है। यह आमतौर पर एक मॉडल के रूप में होता है जो कि बैच ग्रेडिएंट डीसेंट या बेहतर के माध्यम से पाया जाता है।

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


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

@Jason_L_Bens क्या आपके पास कोई संदर्भ (कागजात या ऑनलाइन ग्रंथ) है जहां मैं इन एल्गोरिदम के बारे में अधिक पढ़ सकता हूं?
user110320

1
@ user110320 मेरे सिर के ऊपर से नहीं, नहीं, हालांकि वे बहुत ही सामान्य एल्गोरिदम हैं, और इसलिए इस विषय पर एक टन का संसाधन उपलब्ध होना चाहिए, जिसमें थोड़ी खोज हो। यदि आप एक सामान्य दृष्टिकोण की तलाश में हैं, तो मैं आपको AI के लिए कुछ Yoshua Bengio के लर्निंग डीप आर्किटेक्चर पढ़ने की सलाह दूंगा। यहीं से मेरी शुरुआत हुई।
जेसन__बेंस

6

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

  1. मिनीबच क्यों काम करता है

इसके पीछे गणित यह है कि, लागत फ़ंक्शन का "सच" ढाल (सामान्यीकरण त्रुटि के लिए ढाल या असीम रूप से बड़े नमूने सेट के लिए) सही डेटा जनरेट वितरण पर ग्रेडिएंट की उम्मीद है ; नमूनों के एक बैच पर गणना की गई वास्तविक ढाल हमेशा अनुभवजन्य डेटा वितरण साथ वास्तविक ढाल के लिए एक सन्निकटन है । pdatap^data

g=Epdata(J(θ)θ)
बैच ढाल वंश आप अपने सभी डेटा नमूनों को देखते हुए संभावित "इष्टतम" ग्रेडिएंट ला सकते हैं, हालांकि यह "सच" ढाल नहीं है। एक छोटा बैच (मिनीबैच) शायद पूर्ण बैच के रूप में इष्टतम नहीं है, लेकिन वे दोनों सन्निकटन हैं - इसलिए एकल-नमूना मिनीबैच (SGD) है। उनमें से मानक त्रुटियों के बीच का अंतर मिनीबैच के आकार के व्युत्क्रमानुपाती होता है। वह है,
SE(g^(n))SE(g^(m))=mn
यानी, मानक त्रुटि में कमी नमूना आकार की वृद्धि का वर्गमूल है। उपरोक्त समीकरण मिनीबैच ग्रेडिएंट वंश के एक चरण में गणना किए गए ग्रेडिएंट के लिए है। जब आप मिनीबैच ग्रेडिएंट अपडेट के चरणों को पूरा करते हैं और सभी प्रशिक्षण नमूनों का उपयोग अंत में एक युग में करते हैं, तो आप वस्तुतः सभी दिए गए नमूनों के आधार पर ग्रेडिएंट्स के माध्य की गणना कर रहे हैं। अर्थात, मिनीबच आकार , ऊपर के समीकरणों से, हम यह निष्कर्ष निकाल सकते हैं कि, एक युग के साथ, आपके औसतन अलग-अलग मिनीबैच आकारों के साथ ग्रेडिएंटm
Ep^data(g^(m))=Ep^data(J(θ)θ)
m (एक से पूर्ण बैच के लिए) एक ही मानक त्रुटि है, और इससे भी महत्वपूर्ण बात यह है कि वे सभी "सच्चे" ग्रेडिएंट के प्रति वफादार सन्निकटन हैं, अर्थात "सच्चे" ग्रेडिएंट की सही दिशा में आगे बढ़ रहे हैं।
  1. क्यों मिनीबच बेहतर काम कर सकता है

सबसे पहले, छोटे बैच आकार के साथ कम संगणना की मांग के कारण मिनीबच तकनीकी रूप से अप्रभावी होने से कुछ सीखने की समस्या पैदा करता है।

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

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

अंत में, ग्रेडिएंट डिसेंट के साथ, आप एक कदम में वैश्विक मिनीमा तक नहीं पहुंच रहे हैं, लेकिन एर्रो मैनिफोल्ड पर पुनरावृत्ति कर रहे हैं। ग्रेडिएंट काफी हद तक आपको केवल पुनरावृति की दिशा देता है। मिनीबैच के साथ, आप बहुत तेजी से पुनरावृति कर सकते हैं। कई मामलों में, अधिक पुनरावृत्तियों, आप बेहतर बिंदु तक पहुंच सकते हैं। आप वास्तव में सभी मौसम की परवाह नहीं करते हैं, यह बिंदु वैश्विक स्तर पर या यहां तक ​​कि स्थानीय रूप से इष्टतम है। आप बस एक उचित मॉडल तक पहुंचना चाहते हैं जो आपको स्वीकार्य सामान्यीकरण त्रुटि लाता है। मिनीबैच उसे आसान बनाता है।

आपको इयान गुडफेलो, एट अल की पुस्तक "डीप लर्निंग" मिल सकती है, अगर आप इसे ध्यान से पढ़ते हैं तो इस विषय पर बहुत अच्छी चर्चा होती है।


उत्तल अनुकूलन समस्याओं के लिए, आपने जो कहा वह ठीक है। लेकिन गैर-उत्तल कार्यों पर ढाल के तरीकों का उपयोग करने के लिए, आप एक बहुत ही महत्वपूर्ण कारण से चूक गए कि SGD बैच जीडी से बेहतर है। मेरी प्रतिक्रिया देखिए datascience.stackexchange.com/questions/16807/…
horaceT

@horaceT आपकी टिप्पणी के लिए धन्यवाद। चूंकि आपने जिस बिंदु का उल्लेख किया है, उसे विवरण के साथ जेसन__बैंस द्वारा वर्णित किया गया है, मैंने दोहराने की जहमत नहीं उठाई, लेकिन पिछले तीसरे पैराग्राफ में उनके उत्तर का उल्लेख उचित सम्मान के साथ किया। धीरे-धीरे वंश अनुकूलन समस्या के लिए, गैर-उत्तल को स्थानीय मिनिमा द्वारा दर्शाया जाता है जिसमें काठी बिंदु भी शामिल है (अंतिम तीसरा पैराग्राफ देखें); और विवरण के लिए, मेरा उत्तर SGD को मिनीबैच के रूप में वर्णन करता है लेकिन 1 के बैच आकार के साथ (तीसरा पैराग्राफ देखें)।
जिओ-फेंग ली

3

मेरे लिए, बैच ढाल दुबला ढाल जैसा दिखता है। दुबले ढाल में, बैच का आकार चुना जाता है, इसलिए हर पैरामीटर जो अपडेट किया जाएगा, स्वतंत्र रूप से भी विविध है, लेकिन जरूरी नहीं कि बैच में orthogonally हो। उदाहरण के लिए, यदि बैच में 10 प्रयोग, 10 पंक्तियाँ हैं, तो स्वतंत्र कॉलम बनाना संभव है। 10 पंक्तियाँ स्वतंत्र, लेकिन ऑर्थोगोनल को सक्षम नहीं करती हैं, 512 मापदंडों का अद्यतन।2101=512

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