ग्रेडिएंट डिसेंट एक गणितीय तकनीक है. इसकी मदद से, बार-बार उन वेट और बायस का पता लगाया जाता है जिनसे सबसे कम नुकसान वाला मॉडल बनाया जाता है. ग्रेडिएंट डिसेंट, उपयोगकर्ता के तय किए गए कई बार के लिए, यहां दी गई प्रोसेस को दोहराकर सबसे अच्छा वेट और बायस ढूंढता है.
यह मॉडल, किसी भी क्रम में वज़न और पक्षपात को शून्य के करीब दिखाकर ट्रेनिंग शुरू करता है. इसके बाद, यह तरीका दोहराता है:
मौजूदा वज़न और पूर्वाग्रह की मदद से नुकसान की गणना करें.
लॉस को कम करने वाले वेट और बायस को आगे बढ़ाने की दिशा तय करना.
वज़न और बायस की वैल्यू को उस दिशा में थोड़ा आगे बढ़ाएं जिससे लॉस कम हो.
पहले चरण पर वापस जाएं और इस प्रोसेस को तब तक दोहराएं, जब तक मॉडल, डेटा में होने वाले नुकसान को और कम न कर दे.
नीचे दिए गए डायग्राम में, ग्रेडिएंट डिसेंट के उन चरणों के बारे में बताया गया है जिन्हें वे सबसे कम लॉस वाला मॉडल बनाने के लिए दोहराते हैं.
12वीं इमेज. ग्रेडिएंट डिसेंट एक बार-बार इस्तेमाल होने वाली प्रोसेस है. इसमें वेट और बायस का पता लगाया जाता है, जिससे सबसे कम लॉस वाला मॉडल बनता है.
ग्रेडिएंट डिसेंट के पीछे के गणित के बारे में ज़्यादा जानने के लिए, प्लस आइकॉन पर क्लिक करें.
हम ग्रेडिएंट डिसेंट के चरणों को एक छोटे डेटासेट का इस्तेमाल करके समझ सकते हैं. इसमें, कार के वजन और मील प्रति गैलन रेटिंग के सात उदाहरण शामिल हैं:
1,000 सेकंड में पाउंड (सुविधा) | माइल प्रति गैलन (लेबल) |
---|---|
3.5 | 18 |
3.69 | 15 |
3.44 | 18 |
3.43 | 16 |
4.34 | 15 |
4.42 | 14 |
2.37 | 24 |
- यह मॉडल, वज़न और पक्षपात को शून्य पर सेट करके ट्रेनिंग शुरू करता है:
- मौजूदा मॉडल पैरामीटर की मदद से एमएसई लॉस का हिसाब लगाएं:
- हर वेट और बायस के लिए, लॉस फ़ंक्शन के टेंगेंट के स्लोप का हिसाब लगाएं:
- अगला वेट और बायस पाने के लिए, नेगेटिव स्लोप की दिशा में थोड़ी सी दूरी पर जाएं. फ़िलहाल, हम अपनी तरफ़ से "छोटी रकम" को 0.01 के तौर पर तय करेंगे:
ढलान का हिसाब लगाने के बारे में जानने के लिए, प्लस आइकॉन पर क्लिक करें.
वज़न और बायस के लिए टेंगेंट वाली लाइनों का स्लोप पाने के लिए, हम वज़न और बायस के हिसाब से, लॉस फ़ंक्शन का डेरिवेटिव लेते हैं. इसके बाद, समीकरण हल करते हैं.
हम अनुमान लगाने के लिए, समीकरण को इस तरह लिखेंगे:
$ f_{w,b}(x) = (w*x)+b $.
हम असल वैल्यू को इस तरह लिखेंगे: $ y $.
हम एमएसई का हिसाब इस फ़ॉर्मूला का इस्तेमाल करके लगाएंगे:
$ \frac{1}{M} \sum_{i=1}^{M} (f_{w,b}(x_{(i)}) - y_{(i)})^2 $
यहां $i$, $ith$ ट्रेनिंग उदाहरण को दिखाता है और $M$, उदाहरणों की संख्या को दिखाता है.
वेट के हिसाब से लॉस फ़ंक्शन का डेरिवेटिव इस तरह लिखा जाता है:
$ \frac{\partial }{\partial w} \frac{1}{M} \sum_{i=1}^{M} (f_{w,b}(x_{(i)}) - y_{(i)})^2 $
और इसका आकलन करता है:
$ \frac{1}{M} \sum_{i=1}^{M} (f_{w,b}(x_{(i)}) - y_{(i)}) * 2x_{(i)} $
सबसे पहले, हम हर अनुमानित वैल्यू में से असल वैल्यू को घटाकर जोड़ते हैं. इसके बाद, उसे सुविधा की वैल्यू से दो गुना से गुणा करते हैं. इसके बाद, हम कुल वैल्यू को उदाहरणों की संख्या से भाग देते हैं. नतीजा, वज़न की वैल्यू और लाइन टैंजेंट का स्लोप है.
अगर इस समीकरण को वज़न और बायस को शून्य के बराबर रखकर हल किया जाता है, तो हमें लाइन के स्लोप के लिए -119.7 मिलता है.
बायस डेरिवेटिव
बायस के हिसाब से, लॉस फ़ंक्शन का डेरिवेटिव इस तरह लिखा जाता है:
$ \frac{\partial }{\partial b} \frac{1}{M} \sum_{i=1}^{M} (f_{w,b}(x_{(i)}) - y_{(i)})^2 $
इसका आकलन इस तरह किया जाता है:
$ \frac{1}{M} \sum_{i=1}^{M} (f_{w,b}(x_{(i)}) - y_{(i)}) * 2 $
सबसे पहले, हम हर अनुमानित वैल्यू से असल वैल्यू को घटाकर जोड़ते हैं. इसके बाद, उसे दो से गुणा करते हैं. इसके बाद, हम कुल वैल्यू को उदाहरणों की संख्या से divide करते हैं. इसका नतीजा यह होता है कि टैंजेंट लाइन का स्लोप, बायस की वैल्यू के लिए टैंजेंट है.
अगर हम इस समीकरण को वज़न और बायस को शून्य पर सेट करके हल करते हैं, तो हमें लाइन के स्लोप के लिए -34.3 मिलता है.
लॉस का हिसाब लगाने के लिए, नए वेट और बायस का इस्तेमाल करें और फिर से दोहराएं. छह बार दोहराए जाने पर, हमें ये वेट, बायस, और लॉस मिलेंगे:
इटरेशन | वज़न | पक्षपात | लॉस (एमएसई) |
---|---|---|---|
1 | 0 | 0 | 303.71 |
2 | 1.2 | 0.34 | 170.67 |
3 | 2.75 | 0.59 | 67.3 |
4 | 3.17 | 0.72 | 50.63 |
5 | 3.47 | 0.82 | 42.1 |
6 | 3.68 | 0.9 | 37.74 |
आप देख सकते हैं कि प्रत्येक अपडेट किए गए वज़न और पूर्वाग्रह के साथ घटती कमी कम होती जा रही है. इस उदाहरण में, हमने छह बार दोहराने के बाद रुक दिया. आम तौर पर, कोई मॉडल तब तक ट्रेनिंग लेता है, जब तक वह कन्वर्ज़ हो नहीं जाता. जब कोई मॉडल एक साथ काम करता है, तो अतिरिक्त दोहराव से लागत में ज़्यादा कमी नहीं आती, क्योंकि ग्रेडिएंट डिसेंट से वेट और बायस मिलते हैं, जो लागत को कम से कम कर देते हैं.
अगर मॉडल, कॉन्वर्जेंस के बाद भी ट्रेनिंग जारी रखता है, तो लॉस में थोड़ी-थोड़ी कमी या बढ़ोतरी होने लगती है. ऐसा इसलिए होता है, क्योंकि मॉडल पैरामीटर को उनकी सबसे कम वैल्यू के आस-पास लगातार अपडेट करता रहता है. इससे, इस बात की पुष्टि करना मुश्किल हो सकता है कि मॉडल असल में एक साथ काम कर रहा है या नहीं. इस बात की पुष्टि करने के लिए कि मॉडल एक हो गया है, आपको तब तक ट्रेनिंग जारी रखनी होगी, जब तक कि समस्या स्थिर नहीं हो जाती.
मॉडल कन्वर्ज़न और लॉस कर्व
किसी मॉडल को ट्रेनिंग देते समय, अक्सर लॉस कर्व देखा जाता है. इससे यह पता चलता है कि मॉडल कन्वर्ज़ हो गया है या नहीं. लॉस कर्व से पता चलता है कि मॉडल ट्रेन के ट्रेनिंग के दौरान, लॉस में क्या बदलाव होता है. आम तौर पर, लॉस कर्व कुछ ऐसा दिखता है. नुकसान y-ऐक्सिस पर है और x-ऐक्सिस पर दोहराव है:
13वीं इमेज. लॉस कर्व, जिसमें मॉडल को 1,000वें आइटरेशन के आस-पास दिख रहा है.
इस ग्राफ़ से पता चलता है कि शुरुआती कुछ दोहरावों के दौरान, नुकसान काफ़ी कम हो जाता है. इसके बाद, धीरे-धीरे यह 1,000वें दोहराव के आस-पास स्थिर हो जाता है. 1,000 बार दोहराए जाने के बाद, हम ज़्यादातर इस बात का भरोसा कर सकते हैं कि मॉडल ने काम करना शुरू कर दिया है.
नीचे दिए गए आंकड़ों में, हमने ट्रेनिंग की प्रोसेस के तीन पॉइंट पर मॉडल को दिखाया है: शुरुआत, बीच, और आखिर. ट्रेनिंग प्रोसेस के दौरान स्नैपशॉट में मॉडल की स्थिति को विज़ुअलाइज़ करने से, वज़न और बायस को अपडेट करने, लॉस को कम करने, और मॉडल के कंवरजेंस के बीच का लिंक मजबूत होता है.
आंकड़ों में, हम इस मॉडल को दिखाने के लिए, एक खास दोहराव पर आधारित वज़न और पूर्वाग्रह का इस्तेमाल करते हैं. डेटा पॉइंट और मॉडल के स्नैपशॉट वाले ग्राफ़ में, मॉडल से डेटा पॉइंट तक की नीली लॉस लाइन, लॉस की रकम दिखाती हैं. लाइनों की लंबाई जितनी ज़्यादा होगी, उतना ही ज़्यादा नुकसान होगा.
नीचे दी गई इमेज में, हम देख सकते हैं कि दूसरे दोहराव के आस-पास, ज़्यादा लॉस की वजह से मॉडल का अनुमान लगाने का तरीका अच्छा नहीं होगा.
14वीं इमेज. ट्रेनिंग प्रोसेस की शुरुआत में, मॉडल का लॉस कर्व और स्नैपशॉट.
करीब 400वें दोहराव पर, हम देख सकते हैं कि ग्रेडिएंट डिसेंट ने बेहतर मॉडल बनाने के लिए, वज़न और बायस का पता लगाया है.
15वीं इमेज. ट्रेनिंग के दौरान, रास्ते के बीच में मॉडल के बारे में लॉस कर्व और स्नैपशॉट.
और 1,000वें आइटरेशन के आस-पास, हम देख सकते हैं कि मॉडल एक साथ मिल गया है, जिससे कम से कम लॉस वाला मॉडल तैयार हुआ है.
16वीं इमेज. ट्रेनिंग प्रोसेस के आखिर में, मॉडल का लॉस कर्व और स्नैपशॉट.
एक्सरसाइज़: देखें कि आपको क्या समझ आया
अभिसरण और उत्तल फलन
लीनियर मॉडल के लिए लॉस फ़ंक्शन, हमेशा एक कॉन्वेक्स सतह बनाते हैं. इस प्रॉपर्टी की वजह से, जब कोई लीनियर रिग्रेशन मॉडल एक साथ मिलता है, तो हमें पता चलता है कि मॉडल को वे वज़न और बायस मिल गए हैं जिनसे सबसे कम लॉस होता है.
अगर हम एक फ़ीचर वाले मॉडल के लिए लॉस सरफ़ेस का ग्राफ़ बनाते हैं, तो हमें उसका उत्तल आकार दिख सकता है. यहां पिछले उदाहरणों में इस्तेमाल किए गए, मील प्रति गैलन के डेटासेट का लॉस सरफ़ेस दिया गया है. वज़न x-ऐक्सिस पर, बायस y-ऐक्सिस पर, और लॉस z-ऐक्सिस पर होता है:
17वीं इमेज. लॉस सरफ़ेस, जो इसका उत्तल आकार दिखाता है.
इस उदाहरण में, -5.44 का वेट और 35.94 का पूर्वाग्रह सबसे कम नुकसान 5.54 पर मिलता है:
आकृति 18. लॉस सरफ़ेस, जिसमें वेट और बायस वैल्यू दिख रही हैं जिनसे सबसे कम लॉस होता है.
जब लीनियर मॉडल को कम से कम लॉस मिलता है, तब वह कंवरज करता है. इसलिए, अतिरिक्त दोहरावों की वजह से, ग्रेडिएंट ढलान में सिर्फ़ वज़न और बायस वैल्यू को बहुत कम वैल्यू के आस-पास ट्रांसफ़र करना पड़ता है. अगर हम ग्रेडिएंट डिसेंट के दौरान, वेट और बायस पॉइंट का ग्राफ़ बनाते हैं, तो पॉइंट किसी पहाड़ी से नीचे लुढ़कती हुई गेंद की तरह दिखेंगे. आखिर में, वे उस जगह पर रुक जाएंगे जहां नीचे की ओर कोई ढलान नहीं है.
19वीं इमेज. ग्रेडिएंट डिसेंट पॉइंट दिखाने वाला लॉस ग्राफ़, जो ग्राफ़ पर सबसे कम बिंदु पर रुक जाता है.
ध्यान दें कि काले रंग के लॉस पॉइंट, लॉस कर्व का सटीक आकार बनाते हैं: पहले तेज़ गिरावट आती है और फिर धीरे-धीरे गिरावट आती है, जब तक कि वे लॉस प्लैटफ़ॉर्म पर सबसे निचले बिंदु तक नहीं पहुंच जाते.
यह ध्यान रखना ज़रूरी है कि मॉडल को हर वेट और बायस के लिए, कम से कम वैल्यू कभी नहीं मिलती. इसके बजाय, उसे उससे काफ़ी मिलती-जुलती वैल्यू मिलती है. यह भी ध्यान रखना ज़रूरी है कि वेट और बायस के लिए कम से कम वैल्यू, शून्य लॉस से मेल नहीं खाती. यह सिर्फ़ उस पैरामीटर के लिए सबसे कम लॉस वाली वैल्यू होती है.
सबसे कम लॉस देने वाली वेट और बायस वैल्यू का इस्तेमाल करके, हम मॉडल का ग्राफ़ बना सकते हैं. इस मामले में, वेट -5.44 और बायस 35.94 है. इससे यह पता चलता है कि मॉडल, डेटा के साथ कितना सही है:
इमेज 20. मॉडल को, वज़न और पक्षपात की उन वैल्यू का इस्तेमाल करके ग्राफ़ पर दिखाया गया है जिनसे सबसे कम नुकसान होता है.
यह इस डेटासेट के लिए सबसे अच्छा मॉडल होगा, क्योंकि वज़न और पक्षपात की कोई भी अन्य वैल्यू, कम नुकसान वाला मॉडल नहीं बनाती है.