ठूंठ ग्रेडिएंट डिसेंट क्या है? - यूनाइट.एआई
हमसे जुडे
एआई मास्टरक्लास:

एआई 101

ग्रेडिएंट डिसेंट क्या है?

mm
Updated on

ग्रेडिएंट डिसेंट क्या है?

यदि आपने पढ़ा है कि तंत्रिका नेटवर्क को कैसे प्रशिक्षित किया जाता है, तो आप लगभग निश्चित रूप से पहले "ग्रेडिएंट डिसेंट" शब्द से परिचित हुए होंगे। ढतला हुआ वंश तंत्रिका नेटवर्क के प्रदर्शन को अनुकूलित करने, नेटवर्क की हानि/त्रुटि दर को कम करने की प्राथमिक विधि है। हालाँकि, मशीन लर्निंग में नए लोगों के लिए ग्रेडिएंट डिसेंट को समझना थोड़ा कठिन हो सकता है, और यह लेख आपको ग्रेडिएंट डिसेंट कैसे संचालित होता है, इसके बारे में एक सभ्य अंतर्ज्ञान देने का प्रयास करेगा।

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

स्नातक क्या हैं?

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

तीव्र ढलान का मतलब है कि त्रुटि में बड़ी कमी की जा रही है और मॉडल तेजी से सीख रहा है, जबकि यदि ढलान शून्य है तो मॉडल पठार पर है और सीख नहीं रहा है। हम अपने मॉडल के लिए एक ढाल, गति की दिशा (नेटवर्क के मापदंडों में परिवर्तन) की गणना करके ढलान को कम त्रुटि की ओर ले जा सकते हैं।

आइए रूपक को थोड़ा सा बदलें और पहाड़ियों और घाटियों की एक श्रृंखला की कल्पना करें। हम पहाड़ी के नीचे जाना चाहते हैं और घाटी का वह हिस्सा ढूंढना चाहते हैं जो सबसे कम नुकसान दर्शाता है। जब हम पहाड़ी की चोटी से शुरुआत करते हैं तो हम पहाड़ी से नीचे बड़े कदम उठा सकते हैं और आश्वस्त हो सकते हैं कि हम घाटी के सबसे निचले बिंदु की ओर जा रहे हैं।

हालाँकि, जैसे-जैसे हम घाटी में सबसे निचले बिंदु के करीब पहुँचते हैं, हमारे कदम छोटे होने होंगे, अन्यथा हम वास्तविक सबसे निचले बिंदु से आगे निकल सकते हैं। इसी तरह, यह संभव है कि नेटवर्क के वजन को समायोजित करते समय, समायोजन वास्तव में इसे सबसे कम नुकसान के बिंदु से दूर ले जा सकता है, और इसलिए समय के साथ समायोजन छोटा होना चाहिए। सबसे कम नुकसान वाले बिंदु की ओर पहाड़ी से उतरने के संदर्भ में, ढाल एक वेक्टर/निर्देश है जो यह बताता है कि हमें कौन सा रास्ता अपनाना चाहिए और हमारे कदम कितने बड़े होने चाहिए।

अब हम जानते हैं कि ग्रेडिएंट निर्देश हैं जो हमें बताते हैं कि किस दिशा में आगे बढ़ना है (कौन से गुणांक अपडेट किए जाने चाहिए) और हमें कितने बड़े कदम उठाने चाहिए (कितना गुणांक अपडेट किया जाना चाहिए), हम यह पता लगा सकते हैं कि ग्रेडिएंट की गणना कैसे की जाती है।

ग्रेडिएंट और ग्रेडिएंट डिसेंट की गणना

ग्रेडिएंट डिसेंट उच्च हानि के स्थान पर शुरू होता है और कई पुनरावृत्तियों के माध्यम से, सबसे कम नुकसान की दिशा में कदम उठाता है, जिसका लक्ष्य इष्टतम वजन विन्यास ढूंढना है। फोटो: विकीमीडिया कॉमन्स के माध्यम से रोमेन सीजी, सीसीवाई बाय एसए 3.0 (https://commons.wikimedia.org/wiki/File:Gradient_descent_method.png)

ग्रेडिएंट डिसेंट को अंजाम देने के लिए, सबसे पहले ग्रेडिएंट की गणना की जानी चाहिए। क्रम में ग्रेडिएंट की गणना करने के लिए, हमें हानि/लागत फलन जानने की आवश्यकता है। हम व्युत्पन्न निर्धारित करने के लिए लागत फ़ंक्शन का उपयोग करेंगे। कैलकुलस में, व्युत्पन्न किसी दिए गए बिंदु पर किसी फ़ंक्शन के ढलान को संदर्भित करता है, इसलिए हम मूल रूप से केवल पहाड़ी के ढलान की गणना कर रहे हैं हानि समारोह. हम हानि फ़ंक्शन के माध्यम से गुणांक चलाकर हानि का निर्धारण करते हैं। यदि हम हानि फ़ंक्शन को "एफ" के रूप में दर्शाते हैं, तो हम बता सकते हैं कि हानि की गणना के लिए समीकरण इस प्रकार है (हम केवल हमारे चुने हुए लागत फ़ंक्शन के माध्यम से गुणांक चला रहे हैं):

हानि = f(गुणांक)

फिर हम व्युत्पन्न की गणना करते हैं, या ढलान निर्धारित करते हैं। हानि का व्युत्पन्न प्राप्त करने से हमें यह पता चल जाएगा कि ढलान किस दिशा में ऊपर या नीचे है, जिससे हमें अपने गुणांकों को समायोजित करने के लिए उचित संकेत मिलेगा। हम उपयुक्त दिशा को "डेल्टा" के रूप में प्रस्तुत करेंगे।

डेल्टा = व्युत्पन्न_फ़ंक्शन(नुकसान)

हमने अब यह निर्धारित कर लिया है कि कौन सी दिशा सबसे कम नुकसान के बिंदु की ओर ढलान पर है। इसका मतलब है कि हम तंत्रिका नेटवर्क मापदंडों में गुणांक को अपडेट कर सकते हैं और उम्मीद है कि नुकसान को कम कर सकते हैं। हम पिछले गुणांकों के आधार पर गुणांकों को दिशा (डेल्टा) और एक तर्क द्वारा निर्धारित मूल्य में उचित परिवर्तन को घटाकर अद्यतन करेंगे जो परिवर्तन के परिमाण (हमारे कदम के आकार) को नियंत्रित करता है। अद्यतन के आकार को नियंत्रित करने वाले तर्क को "" कहा जाता हैसीखने की दर” और हम इसे “अल्फा” के रूप में प्रस्तुत करेंगे।

गुणांक = गुणांक - (अल्फा * डेल्टा)

हम तब तक इस प्रक्रिया को दोहराते हैं जब तक कि नेटवर्क न्यूनतम हानि के बिंदु के आसपास एकत्रित न हो जाए, जो शून्य के करीब होना चाहिए।

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

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

ग्रेडिएंट डिसेंट के प्रकार

अब जब हम समझ गए हैं कि ग्रेडिएंट डिसेंट सामान्य तौर पर कैसे काम करता है, तो आइए कुछ अलग चीज़ों पर एक नज़र डालें ग्रेडिएंट डिसेंट के प्रकार.

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

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

मिनी-बैच ग्रेडिएंट डिसेंट: मिनी-बैच ग्रेडिएंट डिसेंट संपूर्ण प्रशिक्षण डेटासेट को उपखंडों में विभाजित करके संचालित होता है। यह छोटे मिनी-बैच बनाता है जो नेटवर्क के माध्यम से चलाए जाते हैं, और जब मिनी-बैच का उपयोग त्रुटि की गणना करने के लिए किया जाता है तो गुणांक अपडेट किए जाते हैं। मिनी-बैच ग्रेडिएंट डिसेंट स्टोचैस्टिक ग्रेडिएंट डिसेंट और बैच ग्रेडिएंट डिसेंट के बीच एक मध्य मैदान पर हमला करता है। मॉडल को बैच ग्रेडिएंट डिसेंट के मामले की तुलना में अधिक बार अपडेट किया जाता है, जिसका अर्थ है मॉडल के इष्टतम मापदंडों पर थोड़ा तेज और अधिक मजबूत अभिसरण। यह स्टोचैस्टिक ग्रेडिएंट डिसेंट की तुलना में अधिक कम्प्यूटेशनल रूप से कुशल है

विशेषज्ञता वाले ब्लॉगर और प्रोग्रामर मशीन लर्निंग और गहरी सीख विषय। डैनियल को उम्मीद है कि वह दूसरों को सामाजिक भलाई के लिए एआई की शक्ति का उपयोग करने में मदद करेगा।