लीनियर रिग्रेशन: हाइपर पैरामीटर

हाइपरपैरामीटर ऐसे वैरिएबल होते हैं जो ट्रेनिंग के अलग-अलग पहलुओं को कंट्रोल करते हैं. आम तौर पर इस्तेमाल होने वाले तीन हाइपरपैरामीटर ये हैं:

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

सीखने की दर

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

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

पुराने मॉडल के पैरामीटर और नए मॉडल के पैरामीटर के बीच का अंतर, लॉस फ़ंक्शन के स्लोप के अनुपात में होता है. उदाहरण के लिए, अगर स्लोप बड़ा है, तो मॉडल बड़ा कदम उठाता है. अगर छोटा है, तो एक छोटा कदम उठाएं. उदाहरण के लिए, अगर ग्रेडिएंट का मैग्निट्यूड 2.5 है और लर्निंग रेट 0.01 है, तो मॉडल पैरामीटर को 0.025 से बदल देगा.

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

इमेज 21. लॉस कर्व, जो पहले ज़्यादा ढलान दिखाता है और फिर सपाट हो जाता है.

इमेज 21. लॉस ग्राफ़, जिसमें एक ऐसा मॉडल दिखाया गया है जिसे लर्निंग रेट की मदद से ट्रेन किया गया है, जो तेज़ी से एक साथ मिल जाता है.

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

इमेज 22. हानि का कर्व जो करीब 45-डिग्री का ढलान दिखाता है.

22वीं इमेज. लॉस ग्राफ़, जिसमें एक ऐसे मॉडल को दिखाया गया है जिसे ट्रेनिंग दी गई है. साथ ही, इस मॉडल को सीखने की दर कम है.

बहुत ज़्यादा लर्निंग रेट कभी भी एक जैसा नहीं होता, क्योंकि हर बार दोहराए जाने पर, लॉस या तो एक ही जगह पर बने रहता है या लगातार बढ़ता रहता है. इमेज 23 में, लॉस कर्व से पता चलता है कि हर बार दोहराए जाने पर, मॉडल में लॉस कम होता है और फिर बढ़ता है. इमेज 24 में, बाद के दोहरावों में लॉस बढ़ता है:

इमेज 23. लॉस कर्व, जो ऊपर-नीचे की ओर झिरी वाली लाइन दिखाता है.

23वीं इमेज. लॉस ग्राफ़, जिसमें बहुत ज़्यादा लर्निंग रेट के साथ ट्रेन किया गया मॉडल दिखाया गया है. इसमें, लॉस कर्व में काफ़ी उतार-चढ़ाव होता है और कई बार ऊपर-नीचे होता है.

इमेज 24. लॉस कर्व, जो बाद के इंटरेशन में लॉस बढ़ने को दिखाता है

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

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

लर्निंग रेट कितना होना चाहिए?
सीखने की सही दर किसी समस्या पर निर्भर करती है.
हर मॉडल और डेटासेट के लिए, लर्निंग रेट अलग-अलग होगा.
0.01
1.0

बैच का साइज़

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

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

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

    नीचे दी गई इमेज में देखें कि कैसे लॉस में थोड़ा उतार-चढ़ाव होता है, क्योंकि यह मॉडल, SGD का इस्तेमाल करके अपने वज़न और बायस को अपडेट करता है. इससे लॉस ग्राफ़ खराब हो सकता है:

    इमेज 25. ज़्यादा गिरावट वाला कर्व, जो धीरे-धीरे कम हो जाता है. हालांकि, इसमें कई छोटे-छोटे उतार-चढ़ाव होते हैं.

    25वीं इमेज. स्टोकेस्टिक ग्रेडिएंट डिसेंट (एसजीडी) की मदद से ट्रेन किया गया मॉडल, जिसमें लॉस कर्व में गड़बड़ी दिख रही है.

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

  • मिनी-बैच स्टोकेस्टिक ग्रेडिएंट डिसेंट (मिनी-बैच एसजीडी): मिनी-बैच स्टोकेस्टिक ग्रेडिएंट डिसेंट, फ़ुल-बैच और एसजीडी के बीच का एक समझौता है. $ N $ वाले डेटा पॉइंट की संख्या के लिए, बैच का साइज़ 1 से ज़्यादा और $ N $ से कम हो सकता है. मॉडल बिना किसी क्रम के हर बैच में शामिल उदाहरण चुनता है, उनके ग्रेडिएंट का औसत लेता है, और फिर हर बार एक बार वज़न और बायस को अपडेट करता है.

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

    इमेज 26. ज़्यादा गिरावट वाला कर्व, जो धीरे-धीरे सपाट होने लगता है. साथ ही, कन्वर्ज़न के आस-पास बहुत कम उतार-चढ़ाव होते हैं.

    26वीं इमेज. इस मॉडल को मिनी-बैच SGD से ट्रेनिंग दी गई है.

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

युग (एपक)

ट्रेनिंग के दौरान, एपिक का मतलब है कि मॉडल ने ट्रेनिंग सेट में मौजूद हर उदाहरण को एक बार प्रोसेस किया है. उदाहरण के लिए, अगर 1,000 उदाहरणों वाला ट्रेनिंग सेट और 100 उदाहरणों वाला मिनी-बैच दिया गया है, तो एक एपिसोड पूरा करने में मॉडल को 10 iterations लगेंगे.

आम तौर पर, ट्रेनिंग के लिए कई एपिसोड की ज़रूरत होती है. इसका मतलब है कि सिस्टम को ट्रेनिंग सेट में मौजूद हर उदाहरण को कई बार प्रोसेस करना होगा.

एपिसोड की संख्या एक ऐसा हाइपरपैरामीटर है जिसे मॉडल को ट्रेनिंग देने से पहले सेट किया जाता है. कई मामलों में, आपको यह एक्सपेरिमेंट करना होगा कि मॉडल को एक साथ काम करने में कितने एपिसोड लगते हैं. आम तौर पर, ज़्यादा से ज़्यादा युगों से बेहतर मॉडल बनता है. हालांकि, ट्रेनिंग में ज़्यादा समय भी लगता है.

इमेज 27. एक पूरा बैच, पूरा डेटासेट होता है, मिनी बैच, डेटासेट का सबसेट होता है, और epoch का मतलब है कि दस मिनी बैच.

27वीं इमेज. पूरा बैच बनाम छोटा बैच.

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

बैच का टाइप वेट और बायस अपडेट कब होते हैं
पूरा बैच मॉडल, डेटासेट में मौजूद सभी उदाहरणों को देखने के बाद. उदाहरण के लिए, अगर किसी डेटासेट में 1,000 उदाहरण हैं और मॉडल को 20 एपिसोड के लिए ट्रेन किया जाता है, तो मॉडल हर एपिसोड में एक बार, वेट और बायस को 20 बार अपडेट करता है.
स्टोकेस्टिक ग्रेडिएंट डिसेंट डेटासेट का एक उदाहरण देखने के बाद. उदाहरण के लिए, अगर किसी डेटासेट में 1,000 उदाहरण हैं और उसे 20 एपिसोड के लिए ट्रेन किया जाता है, तो मॉडल वेट और बायस को 20,000 बार अपडेट करता है.
मिनी-बैच स्टोकेस्टिक ग्रेडिएंट डिसेंट इसके बाद, मॉडल हर बैच में दिए गए उदाहरणों पर गौर करता है. उदाहरण के लिए, अगर किसी डेटासेट में 1,000 उदाहरण शामिल हैं और बैच का साइज़ 100 है और मॉडल 20 epoch के लिए ट्रेनिंग देता है, तो मॉडल वेट और पूर्वाग्रह को 200 बार अपडेट करता है.

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

1. मिनी-बैच SGD का इस्तेमाल करते समय, बैच का सबसे अच्छा साइज़ क्या होगा?
यह निर्भर करता है
बैच का सही साइज़, डेटासेट और उपलब्ध कंप्यूट संसाधनों पर निर्भर करता है
हर बैच में 10 उदाहरण
हर बैच में 100 उदाहरण
2. इनमें से कौनसी बात सही है?
बड़े बैच, ऐसे डेटा के लिए सही नहीं हैं जिसमें कई आउटलायर हैं.
यह स्टेटमेंट गलत है. एक साथ ज़्यादा ग्रेडिएंट का औसत निकालने से, बड़े बैच साइज़ की मदद से, डेटा में आउटलायर होने के नकारात्मक असर को कम किया जा सकता है.
लर्निंग रेट को दोगुना करने से, ट्रेनिंग की प्रोसेस धीमी हो सकती है.
यह बात सही है. लर्निंग रेट को दोगुना करने पर, बहुत ज़्यादा लर्निंग रेट हो सकता है. इस वजह से, वज़न "बाउंस" कर सकते हैं. इससे, एल्गोरिदम के एक नतीजे पर पहुंचने में ज़्यादा समय लग सकता है. हमेशा की तरह, सबसे अच्छे हाइपरपैरामीटर आपके डेटासेट और उपलब्ध कंप्यूट संसाधनों पर निर्भर करते हैं.