स्पार्सिटी के लिए रेगुलराइज़ेशन: L1 रेगुलराइज़ेशन

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

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

उदाहरण के लिए, एक ऐसा हाउसिंग डेटा सेट मान लें जो सिर्फ़ कैलिफ़ोर्निया ही नहीं, बल्कि पूरी दुनिया को कवर करता हो. मिनट के लेवल पर ग्लोबल अक्षांश (हर डिग्री के लिए 60 मिनट) को बकेट में रखने से, स्पैर्स एन्कोडिंग में करीब 10,000 डाइमेंशन मिलते हैं. मिनट के लेवल पर ग्लोबल देशांतर से करीब 20,000 डाइमेंशन मिलते हैं. इन दो सुविधाओं वाले फ़ीचर क्रॉस से, करीब 2,00,000,000 डाइमेंशन मिलेंगे. उनमें से कई डाइमेंशन, सीमित तौर पर रहने वाले इलाकों (उदाहरण के लिए, महासागर के बीच) को दिखाते हैं. इस डेटा का इस्तेमाल बेहतर तरीके से सामान्य बनाने के लिए करना मुश्किल होगा. इन ग़ैर-ज़रूरी डाइमेंशन को सेव करने में, रैम से होने वाले खर्च को चुकाना बचका सकता है. इसलिए, बिना मतलब वाले डाइमेंशन के वेट को सिर्फ़ 0 तक कम करने के लिए बढ़ावा देना बेहतर होगा. इससे हमें अनुमान के समय, इन मॉडल कोऐफ़िशिएंट के स्टोरेज की कीमत को चुकाने से बचने में मदद मिलेगी.

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

क्या L2 के रेगुलराइज़ेशन से यह टास्क पूरा होगा? माफ़ करें, ऐसा नहीं है. L2 रेगुलराइज़ेशन से, वज़न को छोटा रखने में मदद मिलती है, लेकिन यह वैल्यू को 0.0 पर ज़बरदस्ती नहीं लाती.

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

हालांकि, रेगुलराइज़ेशन की एक ऐसी शर्त है जिसे L1 रेगुलराइज़ेशन कहते हैं. यह L0 का अनुमान होता है, लेकिन इसका फ़ायदा कन्वेक्स होने का होता है और इस तरह से कैलकुलेट करने में आसानी होती है. इसलिए, हम L1 रेगुलराइज़ेशन का इस्तेमाल कर सकते हैं, ताकि हमारे मॉडल में कई बिना कोई जानकारी वाले गुणांक सिर्फ़ 0 हों. इससे, अनुमान के हिसाब से रैम की बचत हो सकेगी.

L1 बनाम L2 रेगुलराइज़ेशन.

L2 और L1 मोटाई को अलग-अलग तरीके से दंडित किया जाता है:

  • L2 से वज़न2 पर जुर्माना लगता है.
  • L1 पेनल्टी |वज़न|.

इस वजह से, L2 और L1 के अलग-अलग डेरिवेटिव हैं:

  • L2 का डेरिवेटिव 2 * वज़न होता है.
  • L1 का डेरिवेटिव k होता है. यह एक कॉन्सटेंट होता है, जिसकी वैल्यू वज़न से अलग होती है.

L2 के डेरिवेटिव को एक ऐसे बल के तौर पर देखा जा सकता है जो हर बार वज़न का x% हटा देता है. जैसा कि ज़ेनो को पता है कि भले ही आप अरबों बार x प्रतिशत भी हटा दें, लेकिन यह संख्या कभी शून्य तक नहीं पहुंचेगी. (ज़ेनो को फ़्लोटिंग-पॉइंट पर सटीक जानकारी देने की सीमाओं के बारे में ज़्यादा जानकारी नहीं थी, जो शायद सटीक तौर पर शून्य जनरेट कर सकती थी.) किसी भी दर पर, L2 आम तौर पर वज़न को शून्य नहीं करता.

L1 के डेरिवेटिव को एक ऐसे बल के तौर पर देखा जा सकता है जो वज़न में से कुछ स्थिरांक को हर बार घटाता है. हालांकि, ऐब्सलूट वैल्यू की वजह से L1 में 0 पर असंतत बना होता है, जिससे 0 को पार करने पर मिलने वाले घटाव के नतीजे शून्य हो जाते हैं. उदाहरण के लिए, अगर घटाव करने पर मोटाई को +0.1 से -0.2 कर दिया जाएगा, तो L1 वज़न को ठीक 0 पर सेट कर देगा. यूरेका, L1 ने वज़न कम किया.

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

ध्यान दें कि यह विवरण एक-आयामी मॉडल के लिए सही है.

नीचे दिए गए 'चलाएं' बटन () पर क्लिक करें. इससे आपको वज़न के नेटवर्क पर, L1 और L2 रेगुलराइज़ेशन के असर की तुलना करनी है.