AdaGrad (Adaptive Gradient का संक्षिप्त रूप) एक अनुकूलन एल्गोरिदम है जिसका उपयोग मशीन लर्निंग और डीप लर्निंग में किया जाता है, जो प्रत्येक पैरामीटर के लिए सीखने की दर (learning rate) को व्यक्तिगत रूप से अनुकूलित करता है। मानक स्टोकेस्टिक ग्रेडिएंट डिसेंट के विपरीत, जो सभी पैरामीटरों पर एक ही सीखने की दर लागू करता है, AdaGrad प्रत्येक पैरामीटर के लिए उस पैरामीटर के ऐतिहासिक वर्गित ग्रेडिएंट्स के आधार पर अद्यतन को स्केल करता है। यह प्रति-पैरामीटर अनुकूलन एल्गोरिदम को दुर्लभ पैरामीटरों के लिए बड़े अद्यतन और लगातार पैरामीटरों के लिए छोटे अद्यतन करने की अनुमति देता है, जो विशेष रूप से स्पार्स डेटा सेटिंग्स में उपयोगी है। AdaGrad को 2011 में जॉन डूची, एलाद हज़ान और योरम सिंगर द्वारा प्रस्तुत किया गया था और यह बाद के अनुकूली अनुकूलकों जैसे RMSProp और Adam के विकास में एक आधारभूत विधि बन गया है।
AdaGrad का मुख्य विचार प्रत्येक पैरामीटर के लिए पिछले ग्रेडिएंट्स के वर्गों का एक चालू योग बनाए रखना है। प्रत्येक पुनरावृत्ति पर, एक पैरामीटर के लिए सीखने की दर को इस संचित योग के वर्गमूल से विभाजित किया जाता है। इसका मतलब है कि बड़े ऐतिहासिक ग्रेडिएंट्स वाले पैरामीटरों को छोटी प्रभावी सीखने की दरें मिलती हैं, जबकि छोटे या दुर्लभ ग्रेडिएंट्स वाले पैरामीटरों को बड़ी प्रभावी सीखने की दरें मिलती हैं। वर्गित ग्रेडिएंट्स का संचय नीरस रूप से बढ़ता है, जिससे प्रभावी सीखने की दर समय के साथ घटती है। यह गुण उत्तल सेटिंग्स में अभिसरण के लिए लाभकारी हो सकता है, लेकिन गैर-उत्तल समस्याओं में अत्यधिक आक्रामक क्षय का कारण भी बन सकता है, जो बाद के एल्गोरिदम को प्रेरित करने वाली एक सीमा है।
पृष्ठभूमि
मशीन लर्निंग में अनुकूलन में अक्सर एक उद्देश्य फ़ंक्शन को न्यूनतम करना शामिल होता है जो प्रति-उदाहरण हानि फ़ंक्शनों का योग होता है। n उदाहरणों के प्रशिक्षण सेट के लिए, अनुभवजन्य जोखिम Q(w) = (1/n) Σ Q_i(w) द्वारा दिया जाता है, जहाँ w पैरामीटर वेक्टर है और Q_i i-वें उदाहरण के लिए हानि है। मानक ग्रेडिएंट डिसेंट प्रत्येक चरण पर पूर्ण योग के ग्रेडिएंट की गणना करता है, जो n बड़ा होने पर कम्प्यूटेशनल रूप से महंगा हो सकता है। स्टोकेस्टिक ग्रेडिएंट डिसेंट (SGD) इसके बजाय एकल नमूने या मिनी-बैच का उपयोग करके ग्रेडिएंट का अनुमान लगाता है, जिससे प्रति पुनरावृत्ति कम्प्यूटेशनल लागत कम होती है लेकिन शोर उत्पन्न होता है। 1950 के दशक का रॉबिन्स-मुनरो एल्गोरिदम स्टोकेस्टिक अनुमान की नींव रखता है, और SGD बड़े डेटासेट पर अपनी दक्षता के कारण मशीन लर्निंग में एक प्रमुख विधि बन गया।
SGD में, अद्यतन नियम w := w - η ∇Q_i(w) है, जहाँ η सीखने की दर है। एक निश्चित सीखने की दर चुनना अक्सर उप-इष्टतम होता है: बहुत बड़ी दर विचलन का कारण बन सकती है, जबकि बहुत छोटी दर अभिसरण को धीमा कर देती है। AdaGrad जैसी अनुकूली विधियाँ अनुकूलन परिदृश्य की ज्यामिति के आधार पर सीखने की दर को समायोजित करके इस समस्या का समाधान करती हैं। AdaGrad की प्रेरणा इस अवलोकन से आई कि विभिन्न पैरामीटरों को अलग-अलग चरण आकारों की आवश्यकता हो सकती है, विशेष रूप से स्पार्स फीचर्स वाली समस्याओं में जहाँ कुछ पैरामीटर शायद ही कभी अद्यतन होते हैं।
एल्गोरिदम
AdaGrad SGD अद्यतन को एक विकर्ण मैट्रिक्स G_t बनाए रखकर संशोधित करता है, जहाँ प्रत्येक विकर्ण तत्व संबंधित पैरामीटर के लिए पिछले ग्रेडिएंट्स के वर्गों का योग है। समय चरण t पर, पैरामीटर w_i के लिए अद्यतन है:
w_i := w_i - (η / sqrt(G_{t,ii} + ε)) ∇Q_i(w_i),
जहाँ ε शून्य से विभाजन से बचने के लिए एक छोटा स्थिरांक है (जैसे, 1e-8)। संचित ग्रेडिएंट वर्ग G_{t,ii} = Σ_{τ=1}^{t} (∇Q_i(w_τ))^2। इसे वेक्टर रूप में लिखा जा सकता है:
w := w - η * diag(G_t + εI)^{-1/2} ∇Q(w).
व्यवहार में, एल्गोरिदम अक्सर मिनी-बैचों पर लागू किया जाता है, जहाँ ग्रेडिएंट की गणना प्रशिक्षण उदाहरणों के एक उपसमुच्चय पर की जाती है। इस प्रकार प्रति-पैरामीटर सीखने की दर η_t,i = η / sqrt(G_{t,ii} + ε) है। चूँकि G_t समय के साथ बढ़ता है, प्रभावी सीखने की दर घटती है, यह सुनिश्चित करते हुए कि एल्गोरिदम आगे बढ़ने पर छोटे कदम उठाता है। यह मोमेंटम के साथ SGD के विपरीत है, जो सुसंगत दिशाओं में त्वरण के लिए ग्रेडिएंट्स को संचित करता है।
गणितीय गुण
AdaGrad का मूल रूप से उत्तल अनुकूलन के संदर्भ में विश्लेषण किया गया था। लेखकों ने दिखाया कि उत्तल फ़ंक्शनों के लिए, AdaGrad एक पछतावा सीमा प्राप्त करता है जो ऑनलाइन लर्निंग के लिए स्पर्शोन्मुख रूप से इष्टतम है। विशेष रूप से, पछतावा, जो एल्गोरिदम की हानि और पूर्वदृष्टि में सर्वोत्तम निश्चित पैरामीटर के बीच संचयी अंतर को मापता है, AdaGrad के लिए O(√T) के रूप में बढ़ता है, जो ऑनलाइन उत्तल अनुकूलन के लिए निचली सीमा से मेल खाता है। यह एक निश्चित सीखने की दर के साथ मानक SGD पर एक सुधार है, जिसके लिए सीखने की दर अनुसूची के सावधानीपूर्वक ट्यूनिंग की आवश्यकता हो सकती है।
मुख्य अंतर्दृष्टि यह है कि AdaGrad स्वचालित रूप से फीचर स्पेस की ज्यामिति के अनुकूल हो जाता है। स्पार्स सेटिंग्स में, जहाँ कई फीचर अधिकांश उदाहरणों के लिए शून्य होते हैं, उन फीचरों के लिए संचित ग्रेडिएंट्स छोटे रहते हैं, जिससे उनके प्रकट होने पर बड़े अद्यतन की अनुमति मिलती है। यह AdaGrad को प्राकृतिक भाषा प्रसंस्करण और उच्च-आयामी स्पार्स इनपुट वाले अन्य डोमेन के लिए विशेष रूप से प्रभावी बनाता है।
हालाँकि, वर्गित ग्रेडिएंट्स का संचय नीरस रूप से बढ़ता है, जिसका अर्थ है कि सीखने की दर समय के साथ शून्य हो जाती है। गैर-उत्तल समस्याओं में, जैसे कि गहरे तंत्रिका नेटवर्क का प्रशिक्षण, यह एल्गोरिदम को समय से पहले सीखना बंद करने का कारण बन सकता है। इस सीमा ने RMSProp जैसे वेरिएंट के विकास को जन्म दिया, जो योग के बजाय वर्गित ग्रेडिएंट्स की चलती औसत का उपयोग करता है, और Adam, जो अनुकूली सीखने की दरों को मोमेंटम के साथ जोड़ता है।
अनुप्रयोग
AdaGrad को विभिन्न मशीन लर्निंग कार्यों में लागू किया गया है, विशेष रूप से स्पार्स डेटा से जुड़े कार्यों में। प्राकृतिक भाषा प्रसंस्करण में, इसका उपयोग बैग-ऑफ-वर्ड्स फीचर्स पर मॉडल प्रशिक्षण के लिए किया गया है, जहाँ प्रत्येक दस्तावेज़ को शब्द गणनाओं के एक स्पार्स वेक्टर द्वारा दर्शाया जाता है। प्रति-पैरामीटर अनुकूलन दुर्लभ शब्दों को बड़े अद्यतन प्राप्त करने की अनुमति देता है, जिससे मॉडल की दुर्लभ लेकिन सूचनात्मक फीचर्स से सीखने की क्षमता में सुधार होता है।
अनुशंसा प्रणालियों में, AdaGrad का उपयोग मैट्रिक्स फैक्टराइजेशन मॉडल को अनुकूलित करने के लिए किया गया है, जहाँ उपयोगकर्ता और आइटम एम्बेडिंग को स्पार्स इंटरैक्शन डेटा के आधार पर अद्यतन किया जाता है। उपयोगकर्ता-आइटम जोड़ों की विभिन्न आवृत्तियों को संभालने की एल्गोरिदम की क्षमता इसे ऐसी सेटिंग्स के लिए उपयुक्त बनाती है। इसके अतिरिक्त, AdaGrad को ऑनलाइन लर्निंग परिदृश्यों में नियोजित किया गया है, जहाँ डेटा क्रमिक रूप से आता है और मॉडल को जल्दी से अनुकूलित होना चाहिए।
कई डीप लर्निंग अनुप्रयोगों में अधिक उन्नत अनुकूलकों द्वारा प्रतिस्थापित किए जाने के बावजूद, AdaGrad तुलना के लिए एक बेंचमार्क बना हुआ है और अभी भी कुछ डोमेन में उपयोग किया जाता है जहाँ इसके गुण लाभकारी हैं। इसका प्रभाव बाद के अनुकूली तरीकों के डिजाइन में स्पष्ट है, जो प्रति-पैरामीटर सीखने की दरों के विचार पर आधारित हैं।
सीमाएँ और विस्तार
AdaGrad की प्राथमिक सीमा नीरस रूप से घटती सीखने की दर है। डीप लर्निंग में, जहाँ हानि परिदृश्य गैर-उत्तल है, यह धीमी अभिसरण या खराब स्थानीय न्यूनतम में फंसने का कारण बन सकता है। इस समस्या को हल करने के लिए, शोधकर्ताओं ने कई विस्तार प्रस्तावित किए हैं:
- RMSProp: जेफ्री हिंटन द्वारा अपने व्याख्यान नोट्स में प्रस्तुत, RMSProp वर्गित ग्रेडिएंट्स की एक घातीय रूप से क्षय होती औसत का उपयोग करता है, जिससे सीखने की दर अधिक लचीले ढंग से अनुकूलित होती है।
- Adam: 2014 में डिडेरिक किंगमा और जिमी बा द्वारा प्रस्तावित, Adam RMSProp की चलती औसत को मोमेंटम के साथ जोड़ता है, जो अनुकूली सीखने की दरें और मोमेंटम दोनों प्रदान करता है।
- AdaDelta: मैथ्यू ज़ीलर द्वारा विकसित, AdaDelta पिछले ग्रेडिएंट्स की एक विंडो का उपयोग करके सीखने की दर हाइपरपैरामीटर की आवश्यकता को समाप्त करता है।
ये एल्गोरिदम गहरे तंत्रिका नेटवर्क के प्रशिक्षण के लिए डिफ़ॉल्ट विकल्प बन गए हैं, लेकिन वे सभी AdaGrad द्वारा प्रस्तुत अनुकूली ग्रेडिएंट अवधारणा से अपनी जड़ें लेते हैं।
प्रभाव और विरासत
AdaGrad का मशीन लर्निंग में अनुकूलन के क्षेत्र पर स्थायी प्रभाव पड़ा है। यह प्रति-पैरामीटर सीखने की दरों का उपयोग करने वाले पहले व्यापक रूप से अपनाए गए एल्गोरिदम में से एक था, जिसने अनुकूली अनुकूलकों के एक परिवार का मार्ग प्रशस्त किया। उत्तल सेटिंग्स में इसकी सैद्धांतिक गारंटी ने अनुकूली तरीकों को समझने के लिए एक ठोस आधार प्रदान किया। एल्गोरिदम को अक्सर पाठ्यपुस्तकों और शोध पत्रों में अनुकूलन के इतिहास में एक प्रमुख विकास के रूप में उद्धृत किया जाता है।
व्यवहार में, AdaGrad आज बड़े पैमाने पर डीप लर्निंग मॉडल के प्रशिक्षण के लिए कम सामान्यतः उपयोग किया जाता है, क्योंकि Adam और इसके वेरिएंट बेहतर प्रदर्शन करते हैं। हालाँकि, यह विशिष्ट समस्याओं, जैसे स्पार्स फीचर्स वाली समस्याओं के लिए एक उपयोगी उपकरण बना हुआ है, और इसे अभी भी मशीन लर्निंग पाठ्यक्रमों में एक महत्वपूर्ण अवधारणात्मक कदम के रूप में पढ़ाया जाता है।
यह भी देखें
- stochastic-gradient-descent
- एडम ऑप्टिमाइज़र
- RMSProp
- डीप लर्निंग