लीनियर रिग्रेशन: ग्रेडिएंट डिसेंट

ग्रेडिएंट डिसेंट एक ऐसी गणितीय तकनीक है जो बार-बार वेट और बायस का पता लगाती है. इससे, सबसे कम लॉस वाला मॉडल बनता है. ग्रेडिएंट डिसेंट, उपयोगकर्ता के तय किए गए कई बार के लिए, यहां दी गई प्रोसेस को दोहराकर सबसे अच्छा वेट और बायस ढूंढता है.

मॉडल, ट्रेनिंग की शुरुआत, रैंडमाइज़ किए गए वेट और शून्य के आस-पास के बायस से करता है. इसके बाद, यह इन चरणों को दोहराता है:

  1. मौजूदा वेट और बायस के साथ लॉस का हिसाब लगाएं.

  2. लॉस को कम करने के लिए, वेट और बायस को किस दिशा में ले जाना है, यह तय करना.

  3. वज़न और बायस की वैल्यू को उस दिशा में थोड़ा आगे बढ़ाएं जिससे लॉस कम हो.

  4. पहले चरण पर वापस जाएं और इस प्रोसेस को तब तक दोहराएं, जब तक मॉडल, डेटा में होने वाले नुकसान को और कम न कर दे.

नीचे दिए गए डायग्राम में, ग्रेडिएंट डिसेंट के उन चरणों के बारे में बताया गया है जिन्हें वे सबसे कम लॉस वाला मॉडल बनाने के लिए दोहराते हैं.

इमेज 12. ग्रेडिएंट डिसेंट प्रोसेस की जानकारी देने वाली इमेज.

12वीं इमेज. ग्रेडिएंट डिसेंट एक बार-बार इस्तेमाल होने वाली प्रोसेस है. यह वेट और बायस का पता लगाती है, जिससे सबसे कम लॉस वाला मॉडल बनता है.

हम ग्रेडिएंट डिसेंट के चरणों को एक छोटे डेटासेट का इस्तेमाल करके समझ सकते हैं. इसमें, कार के वजन और मील प्रति गैलन रेटिंग के सात उदाहरण शामिल हैं:

हज़ारों पाउंड (सुविधा) मील प्रति गैलन (लेबल)
3.5 18
3.69 15
3.44 18
3.43 16
4.34 15
4.42 14
2.37 24
  1. मॉडल, वेट और बायस को शून्य पर सेट करके ट्रेनिंग शुरू करता है:
  2. Weight: 0
    Bias: 0
    y=0+0(x1)
  3. मौजूदा मॉडल पैरामीटर की मदद से एमएसई लॉस का हिसाब लगाएं:
  4. Loss=(180)2+(150)2+(180)2+(160)2+(150)2+(140)2+(240)27
    Loss=303.71
  5. हर वेट और बायस के लिए, लॉस फ़ंक्शन के टेंगेंट के स्लोप का हिसाब लगाएं:
  6. Weight slope:119.7
    Bias slope:34.3

    वज़न और बायस के लिए टेंगेंट वाली लाइनों का स्लोप पाने के लिए, हम वज़न और बायस के हिसाब से, लॉस फ़ंक्शन का डेरिवेटिव लेते हैं. इसके बाद, समीकरण हल करते हैं.

    हम अनुमान लगाने के लिए, समीकरण को इस तरह लिखेंगे:
    fw,b(x)=(wx)+b.

    हम असल वैल्यू को इस तरह लिखेंगे: y.

    हम एमएसई का हिसाब इस फ़ॉर्मूला का इस्तेमाल करके लगाएंगे:
    1MMi=1(fw,b(x(i))y(i))2
    यहां i, ith ट्रेनिंग उदाहरण को दिखाता है और M, उदाहरणों की संख्या को दिखाता है.

    वज़न का डेरिवेटिव

    वेट के हिसाब से लॉस फ़ंक्शन का डेरिवेटिव इस तरह लिखा जाता है:
    w1MMi=1(fw,b(x(i))y(i))2

    इसका आकलन इस तरह किया जाता है:
    1MMi=1(fw,b(x(i))y(i))2x(i)

    सबसे पहले, हम अनुमानित हर वैल्यू में से असल वैल्यू को घटाकर उसका योग करते हैं और फिर उसे फ़ीचर वैल्यू से दोगुना करके गुणा करते हैं. इसके बाद, हम कुल वैल्यू को उदाहरणों की संख्या से भाग देते हैं. इसका नतीजा, वेट की वैल्यू के लिए टेंगेंट लाइन का स्लोप होता है.

    अगर हम इस समीकरण को वज़न और बायस को शून्य के बराबर रखकर हल करते हैं, तो हमें लाइन के स्लोप के लिए -119.7 मिलता है.

    बायस डेरिवेटिव

    बायस के हिसाब से, लॉस फ़ंक्शन का डेरिवेटिव इस तरह लिखा जाता है:
    b1MMi=1(fw,b(x(i))y(i))2

    इसका आकलन इस तरह किया जाता है:
    1MMi=1(fw,b(x(i))y(i))2

    सबसे पहले, हम अनुमानित हर वैल्यू में से असल वैल्यू को घटाकर उसका योग करते हैं और फिर उसमें दो से गुणा करते हैं. इसके बाद, हम कुल वैल्यू को उदाहरणों की संख्या से divide करते हैं. नतीजा, बायस की वैल्यू के लिए टेंगेंट वाली रेखा का स्लोप होता है.

    अगर हम इस समीकरण को वज़न और बायस को शून्य पर सेट करके हल करते हैं, तो हमें लाइन के स्लोप के लिए -34.3 मिलता है.

  7. अगला वेट और बायस पाने के लिए, नेगेटिव स्लोप की दिशा में थोड़ी सी दूरी पर जाएं. फ़िलहाल, हम अपनी तरफ़ से "छोटी रकम" को 0.01 के तौर पर तय करेंगे:
  8. New weight=old weight(small amountweight slope)
    New bias=old bias(small amountbias slope)
    New weight=0(0.01)(119.7)
    New bias=0(0.01)(34.3)
    New weight=1.2
    New bias=0.34

लॉस का हिसाब लगाने के लिए, नए वेट और बायस का इस्तेमाल करें और फिर से दोहराएं. छह बार दोहराए जाने पर, हमें ये वेट, बायस, और लॉस मिलेंगे:

इटरेशन वज़न पक्षपात लॉस (एमएसई)
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. लॉस कर्व का ग्राफ़, जिसमें पहले तेज़ गिरावट और फिर धीमी गिरावट दिख रही है.

13वीं इमेज. लॉस कर्व, जिसमें मॉडल को 1,000वें आइटरेशन के आस-पास दिख रहा है.

इस ग्राफ़ से पता चलता है कि शुरुआती कुछ इटरेटेशन के दौरान, लॉस काफ़ी कम हो जाता है. इसके बाद, 1,000वें इटरेटेशन के आस-पास, लॉस धीरे-धीरे कम हो जाता है. 1,000 बार दोहराए जाने के बाद, हम ज़्यादातर इस बात का भरोसा कर सकते हैं कि मॉडल ने काम करना शुरू कर दिया है.

नीचे दिए गए आंकड़ों में, हमने ट्रेनिंग की प्रोसेस के तीन पॉइंट पर मॉडल को दिखाया है: शुरुआत, बीच, और आखिर. ट्रेनिंग प्रोसेस के दौरान स्नैपशॉट में मॉडल की स्थिति को विज़ुअलाइज़ करने से, वज़न और बायस को अपडेट करने, लॉस को कम करने, और मॉडल के कंवरजेंस के बीच का लिंक मजबूत होता है.

आंकड़ों में, हम मॉडल को दिखाने के लिए, किसी खास आइटरेशन में मिले वेट और बायस का इस्तेमाल करते हैं. डेटा पॉइंट और मॉडल के स्नैपशॉट वाले ग्राफ़ में, मॉडल से डेटा पॉइंट तक की नीली लॉस लाइन, लॉस की रकम दिखाती हैं. लाइनें जितनी लंबी होंगी, उतना ही ज़्यादा नुकसान होगा.

नीचे दी गई इमेज में, हम देख सकते हैं कि दूसरे दोहराव के आस-पास, मॉडल का परफ़ॉर्मेंस खराब हो जाएगा. इसकी वजह यह है कि लॉस की रकम ज़्यादा है.

चौदहवां चित्र. मॉडल का लॉस कर्व और उससे जुड़ा ग्राफ़, जो डेटा पॉइंट से दूर झुकता है.

14वीं इमेज. ट्रेनिंग प्रोसेस की शुरुआत में, मॉडल का लॉस कर्व और स्नैपशॉट.

करीब 400वें दोहराव पर, हम देख सकते हैं कि ग्रेडिएंट डिसेंट ने बेहतर मॉडल बनाने के लिए, वज़न और बायस का पता लगा लिया है.

इमेज 15. मॉडल का लॉस कर्व और उससे जुड़ा ग्राफ़, जो डेटा पॉइंट को काटता है, लेकिन सबसे सही ऐंगल पर नहीं.

15वीं इमेज. ट्रेनिंग के आधे हिस्से के दौरान, मॉडल का लॉस कर्व और स्नैपशॉट.

और 1,000वें आइटरेशन के आस-पास, हम देख सकते हैं कि मॉडल एक साथ मिल गया है, जिससे कम से कम लॉस वाला मॉडल तैयार हुआ है.

इमेज 16. मॉडल का लॉस कर्व और उससे जुड़ा ग्राफ़, जो डेटा के हिसाब से सही है.

16वीं इमेज. ट्रेनिंग की प्रोसेस के आखिर में, मॉडल का लॉस कर्व और स्नैपशॉट.

एक्सरसाइज़: देखें कि आपको क्या समझ आया

लीनियर रिग्रेशन में ग्रेडिएंट डिसेंट की क्या भूमिका है?
ग्रेडिएंट डिसेंट, डेटासेट से आउटलायर हटाता है, ताकि मॉडल बेहतर अनुमान लगा सके.
ग्रेडिएंट डिसेंट एक बार-बार होने वाली प्रोसेस है, जो सबसे अच्छा वेट और बायस ढूंढती है, ताकि लॉस कम हो सके.
ग्रेडिएंट डिसेंट से यह तय करने में मदद मिलती है कि किसी मॉडल को ट्रेनिंग देते समय, किस तरह के लॉस का इस्तेमाल करना है. उदाहरण के लिए, L1 या L2.

कन्वर्ज़ेंस और कॉन्वेक्स फ़ंक्शन

लीनियर मॉडल के लिए लॉस फ़ंक्शन हमेशा एक कॉन्वेक्स सतह बनाते हैं. इस प्रॉपर्टी की वजह से, जब कोई लीनियर रिग्रेशन मॉडल एक साथ मिलता है, तो हमें पता चलता है कि मॉडल को वे वज़न और बायस मिल गए हैं जिनसे सबसे कम लॉस होता है.

अगर हम एक फ़ीचर वाले मॉडल के लिए लॉस सरफ़ेस का ग्राफ़ बनाते हैं, तो हमें उसका उत्तल आकार दिख सकता है. यहां पिछले उदाहरणों में इस्तेमाल किए गए, मील प्रति गैलन के डेटासेट का लॉस सरफ़ेस दिया गया है. वज़न x-ऐक्सिस पर, बायस y-ऐक्सिस पर, और लॉस z-ऐक्सिस पर होता है:

इमेज 17. लॉस सरफ़ेस का 3-D ग्राफ़.

17वीं इमेज. लॉस सरफ़ेस, जो इसका उत्तल आकार दिखाता है.

इस उदाहरण में, -5.44 का वेट और 35.94 का बायस, 5.54 पर सबसे कम लॉस देता है:

इमेज 18. लॉस सरफ़ेस का 3-D ग्राफ़, जिसमें सबसे नीचे (-5.44, 35.94, 5.54) है.

18वीं इमेज. लॉस सरफ़ेस, जिसमें वेट और बायस वैल्यू दिख रही हैं जिनसे सबसे कम लॉस होता है.

जब लीनियर मॉडल को कम से कम लॉस मिलता है, तब वह कंवरज करता है. इसलिए, अतिरिक्त इटरेटेशन की वजह से, ग्रेडिएंट डिसेंट सिर्फ़ वेट और बायस वैल्यू को कम से कम वैल्यू के आस-पास बहुत कम मात्रा में ले जाता है. अगर हम ग्रेडिएंट डिसेंट के दौरान, वेट और बायस पॉइंट का ग्राफ़ बनाते हैं, तो पॉइंट किसी पहाड़ी से नीचे लुढ़कती हुई गेंद की तरह दिखेंगे. आखिर में, वे उस जगह पर रुक जाएंगे जहां नीचे की ओर कोई ढलान नहीं है.

इमेज 19. ग्रेडिएंट डिसेंट पॉइंट के साथ, सबसे कम पॉइंट पर जाने वाला उत्तल 3-डी लॉस सरफ़ेस.

19वीं इमेज. ग्रेडिएंट डिसेंट पॉइंट दिखाने वाला लॉस ग्राफ़, जो ग्राफ़ पर सबसे कम बिंदु पर रुक जाता है.

ध्यान दें कि काले रंग के लॉस पॉइंट, लॉस कर्व का सटीक आकार बनाते हैं: पहले तेज़ गिरावट और फिर धीरे-धीरे गिरते हुए, लॉस के सबसे निचले बिंदु तक पहुंचना.

यह ध्यान रखना ज़रूरी है कि मॉडल को हर वेट और बायस के लिए, कम से कम वैल्यू कभी नहीं मिलती. इसके बजाय, उसे उससे काफ़ी मिलती-जुलती वैल्यू मिलती है. यह भी ध्यान रखना ज़रूरी है कि वेट और बायस के लिए कम से कम वैल्यू, शून्य लॉस से मेल नहीं खाती. यह सिर्फ़ उस पैरामीटर के लिए सबसे कम लॉस वाली वैल्यू होती है.

सबसे कम लॉस देने वाली वेट और बायस वैल्यू का इस्तेमाल करके, हम मॉडल का ग्राफ़ बना सकते हैं. इस मामले में, वेट -5.44 और बायस 35.94 है. इससे यह पता चलता है कि मॉडल, डेटा के साथ कितना सही है:

इमेज 20. 1,000 पाउंड बनाम हर गैलन में मील का ग्राफ़, जिसमें डेटा फ़िट करने वाला मॉडल है.

20वीं इमेज. सबसे कम लॉस देने वाली वेट और बायस वैल्यू का इस्तेमाल करके बनाया गया मॉडल ग्राफ़.

यह इस डेटासेट के लिए सबसे अच्छा मॉडल होगा, क्योंकि कोई भी अन्य वेट और बायस वैल्यू, कम लॉस वाला मॉडल नहीं बनाती.