RAdam, जिसे Rectified Adam के नाम से भी जाना जाता है, न्यूरल नेटवर्क प्रशिक्षण के लिए एक अनुकूलन एल्गोरिदम है। इसे 2019 में Liyuan Liu, Haoming Jiang, Pengcheng He, Weizhu Chen, Xiaodong Liu, Jianfeng Gao, और Jiawei Han द्वारा पेपर "On the Variance of the Adaptive Learning Rate and Beyond" में पेश किया गया था। RAdam Adam ऑप्टिमाइज़र की एक ज्ञात समस्या को संबोधित करता है, जहाँ प्रशिक्षण के शुरुआती चरणों में अनुकूली सीखने की दर में उच्च भिन्नता हो सकती है, जिससे खराब अभिसरण या उप-इष्टतम अंतिम प्रदर्शन हो सकता है। इस भिन्नता को सुधारकर, RAdam का उद्देश्य Adam की तेज़ अभिसरण क्षमता को स्टोकेस्टिक ग्रेडिएंट डिसेंट (SGD) की स्थिरता के साथ जोड़ना है।
RAdam गहन शिक्षण में व्यापक रूप से उपयोग किया जाता है, विशेष रूप से ट्रांसफॉर्मर और बड़े भाषा मॉडल के प्रशिक्षण में, जहाँ इसने AdamW और अन्य वेरिएंट्स के साथ प्रतिस्पर्धात्मक प्रदर्शन दिखाया है। यह प्रमुख गहन शिक्षण फ्रेमवर्क, जैसे PyTorch और TensorFlow में लागू किया गया है, और कुछ प्रशिक्षण पाइपलाइनों में एक डिफ़ॉल्ट विकल्प है।
पृष्ठभूमि: Adam ऑप्टिमाइज़र और इसकी सीमाएँ
Adam ऑप्टिमाइज़र, जिसे Diederik Kingma और Jimmy Ba द्वारा 2014 में पेश किया गया था, एक लोकप्रिय अनुकूली सीखने की दर विधि है जो ग्रेडिएंट्स के पहले और दूसरे क्षणों के अनुमानों के आधार पर प्रत्येक पैरामीटर के लिए व्यक्तिगत सीखने की दरों की गणना करती है। Adam गहन न्यूरल नेटवर्क के प्रशिक्षण में अत्यधिक सफल रहा है, लेकिन इसकी ज्ञात समस्याएँ हैं। एक समस्या यह है कि प्रशिक्षण के शुरुआती चरणों में अनुकूली सीखने की दर बहुत बड़ी हो सकती है, खासकर जब दूसरे क्षण का अनुमान छोटा हो। इससे बड़े अपडेट हो सकते हैं जो मॉडल को तीव्र न्यूनतम बिंदुओं पर ले जाते हैं, जो अक्सर खराब सामान्यीकरण करते हैं। इसके अतिरिक्त, Adam को सीखने की दर और अन्य हाइपरपैरामीटरों के सावधानीपूर्वक ट्यूनिंग की आवश्यकता हो सकती है।
इन समस्याओं को संबोधित करने के लिए कई वेरिएंट प्रस्तावित किए गए हैं, जैसे AdamW, जो वेट डिके को अलग करता है, और AMSGrad, जो पिछले वर्ग ग्रेडिएंट्स का अधिकतम उपयोग करता है। हालाँकि, ये अनुकूली सीखने की दर में भिन्नता को सीधे संबोधित नहीं करते हैं।
Adam में भिन्नता की समस्या
Adam में, अनुकूली सीखने की दर की गणना पहले क्षण के अनुमान और दूसरे क्षण के अनुमान के वर्गमूल के अनुपात के रूप में की जाती है। प्रशिक्षण के शुरुआती चरणों में, दूसरे क्षण का अनुमान शून्य से शुरू होता है और पूर्वाग्रह सुधार के साथ अपडेट किया जाता है। हालाँकि, पूर्वाग्रह सुधार अभी भी अनुमान में उच्च भिन्नता छोड़ सकता है, खासकर जब क्षय दर (beta2) 1 के करीब हो। यह भिन्नता सीखने की दर को अत्यधिक उतार-चढ़ाव का कारण बनती है, जिससे अस्थिर प्रशिक्षण और खराब अभिसरण हो सकता है।
RAdam की मुख्य अंतर्दृष्टि इस भिन्नता को मापना और एक सुधार शब्द लागू करना है जो भिन्नता अधिक होने पर सीखने की दर को कम करता है, और भिन्नता घटने पर धीरे-धीरे इसे बढ़ाता है। यह रेक्टिफाइड लीनियर यूनिट (ReLU) सक्रियण के समान है, जो नकारात्मक मानों को शून्य पर क्लिप करता है।
RAdam कैसे काम करता है
RAdam अनुकूली सीखने की दर की गणना Adam के समान करता है, लेकिन एक अतिरिक्त सुधार शब्द के साथ। एल्गोरिदम ग्रेडिएंट्स के पहले क्षण (माध्य) और दूसरे क्षण (अकेंद्रित भिन्नता) को बनाए रखता है, जिन्हें क्रमशः m_t और v_t के रूप में दर्शाया जाता है। यह समय चरण t और क्षय दर beta2 को भी ट्रैक करता है।
प्रत्येक चरण में, RAdam पूर्वाग्रह-सुधारित अनुमानों की गणना करता है: m_t_hat = m_t / (1 - beta1^t) और v_t_hat = v_t / (1 - beta2^t)। फिर यह एक पैरामीटर rho_t = (1 - beta2^t) (2 / (1 - beta2) - 1) - t की गणना करता है, जो चलती औसत की प्रभावी लंबाई को मापता है। यदि rho_t एक थ्रेशोल्ड (आमतौर पर 4) से अधिक है, तो RAdam सुधार शब्द का उपयोग करता है: सीखने की दर को sqrt((rho_t - 4) (rho_t - 2) rho_t / ((rho_t - 4) (rho_t - 2) rho_t - 4 (rho_t - 2) * (rho_t - 2))) द्वारा स्केल किया जाता है। यदि rho_t 4 से कम या बराबर है, तो अपडेट को सरल बनाकर पहले क्षण का सीधे उपयोग किया जाता है, जो SGD के समान है जिसमें गति (momentum) होती है।
यह सुधार सुनिश्चित करता है कि सीखने की दर शुरुआती चरणों में बहुत बड़ी न हो, जिससे मॉडल अत्यधिक बड़े कदम न उठाए जो खराब न्यूनतम बिंदुओं तक ले जा सकते हैं।
RAdam के लाभ
RAdam Adam और अन्य ऑप्टिमाइज़र की तुलना में कई लाभ प्रदान करता है। पहला, यह सीखने की दर वार्मअप की आवश्यकता को कम करता है, जो अक्सर Adam के लिए शुरुआती अस्थिरता से बचने के लिए आवश्यक होता है। यह हाइपरपैरामीटर ट्यूनिंग को सरल बनाता है और प्रशिक्षण समय बचा सकता है। दूसरा, RAdam ने विभिन्न कार्यों, जैसे छवि वर्गीकरण और भाषा मॉडलिंग, में Adam की तुलना में बेहतर सामान्यीकरण प्रदर्शन दिखाया है। तीसरा, यह कम्प्यूटेशनल रूप से कुशल है, जो Adam अपडेट में केवल थोड़ा ओवरहेड जोड़ता है।
अनुभवजन्य अध्ययनों ने दिखाया है कि RAdam विभिन्न मॉडलों, जैसे कन्वोल्यूशनल न्यूरल नेटवर्क और ट्रांसफॉर्मर, पर अच्छा प्रदर्शन करता है। यह विशेष रूप से तब उपयोगी होता है जब छोटे बैच आकारों के साथ प्रशिक्षण दिया जाता है या जब डेटा शोरगुल वाला होता है, क्योंकि इन परिदृश्यों में ग्रेडिएंट्स की भिन्नता अधिक होती है।
व्यवहार में RAdam
RAdam लोकप्रिय गहन शिक्षण पुस्तकालयों में लागू किया गया है। PyTorch में, यह torch.optim.RAdam के रूप में उपलब्ध है। TensorFlow में, यह Keras API के माध्यम से tf.keras.optimizers.RAdam के रूप में उपलब्ध है। इसे Adam के लिए ड्रॉप-इन प्रतिस्थापन के रूप में उपयोग किया जा सकता है, समान हाइपरपैरामीटर (सीखने की दर, beta1, beta2, epsilon) के साथ। डिफ़ॉल्ट मान आमतौर पर learning_rate=0.001, beta1=0.9, beta2=0.999, epsilon=1e-8 होते हैं।
व्यवहार में, RAdam का उपयोग बड़े पैमाने के मॉडलों के प्रशिक्षण में किया गया है, जिसमें कुछ बड़े भाषा मॉडल और ट्रांसफॉर्मर शामिल हैं। उदाहरण के लिए, इसे GPT और BERT वेरिएंट्स जैसे मॉडलों के लिए कुछ प्रशिक्षण पाइपलाइनों में अपनाया गया है, जहाँ इसने AdamW की तुलना में तुलनीय या बेहतर प्रदर्शन दिखाया है। हालाँकि, AdamW अपने अलग किए गए वेट डिके के कारण लोकप्रिय बना हुआ है, जो नियमितीकरण के लिए फायदेमंद हो सकता है। कुछ चिकित्सक RAdam को वेट डिके के साथ जोड़ते हैं या इसे कोसाइन सीखने की दर अनुसूची के साथ उपयोग करते हैं।
अन्य ऑप्टिमाइज़र के साथ तुलना
RAdam की तुलना अक्सर Adam, AdamW, और गति के साथ SGD से की जाती है। Adam की तुलना में, RAdam बिना वार्मअप के अधिक स्थिर प्रशिक्षण प्रदान करता है, और अक्सर बेहतर सामान्यीकरण की ओर ले जाता है। AdamW की तुलना में, RAdam वेट डिके को अलग नहीं करता है, लेकिन इसे L2 नियमितीकरण के साथ जोड़ा जा सकता है। कुछ बेंचमार्क में, RAdam छवि वर्गीकरण जैसे कार्यों पर AdamW से बेहतर प्रदर्शन करता है, जबकि अन्य में AdamW श्रेष्ठ है। चुनाव विशिष्ट समस्या और हाइपरपैरामीटर पर निर्भर करता है।
RAdam अन्य भिन्नता-कमी तकनीकों से भी संबंधित है, जैसे ग्रेडिएंट क्लिपिंग, जिसे प्रशिक्षण को और स्थिर करने के लिए RAdam के साथ संयोजन में उपयोग किया जा सकता है। इसके अतिरिक्त, RAdam को सीखने की दर अनुसूची जैसे कोसाइन एनीलिंग या स्टेप डिके के साथ उपयोग किया जा सकता है।
विस्तार और वेरिएंट
RAdam के कई विस्तार प्रस्तावित किए गए हैं। उदाहरण के लिए, RAdam को लुकहेड के साथ जोड़ा गया है, एक तकनीक जो धीमे वजन का एक सेट बनाए रखती है, जिससे Ranger ऑप्टिमाइज़र बनता है, जिसने विभिन्न कार्यों पर मजबूत प्रदर्शन दिखाया है। एक अन्य वेरिएंट AdaBelief है, जो माध्य से विचलन का उपयोग करने के लिए दूसरे क्षण को संशोधित करता है, लेकिन RAdam तुलना के लिए एक आधार रेखा बना हुआ है।
शोध ने RAdam के सैद्धांतिक गुणों का भी पता लगाया है, जो कुछ शर्तों के तहत अभिसरण गारंटी प्रदान करते हैं। सुधार शब्द अनुकूली सीखने की दर की भिन्नता के विश्लेषण से लिया गया है, और यह दिखाया गया है कि यह सामान्यीकरण अंतर को कम करता है।
निष्कर्ष
RAdam एक मजबूत ऑप्टिमाइज़र है जो Adam में भिन्नता की समस्या को संबोधित करता है, जिससे अधिक स्थिर और बेहतर सामान्यीकरण प्रशिक्षण होता है। यह उपयोग में आसान है, व्यापक रूप से उपलब्ध है, और कई गहन शिक्षण अनुप्रयोगों में प्रभावी साबित हुआ है। हालाँकि यह हमेशा सबसे अच्छा विकल्प नहीं होता है, यह ऑप्टिमाइज़र टूलबॉक्स में एक मूल्यवान उपकरण है, विशेष रूप से बड़े मॉडलों के प्रशिक्षण के लिए जहाँ स्थिरता महत्वपूर्ण है।
आगे पढ़ने के लिए, देखें Adam, SGD वेरिएंट, और गहन शिक्षण अनुकूलन तकनीकें।