आसानी से रेगुलराइज़ेशन: L2 रेगुलराइज़ेशन

यहां दिए गए सामान्य कर्व पर ध्यान दें. इसमें ट्रेनिंग सेट और पुष्टि किए जाने के सेट, दोनों के लिए ट्रेनिंग के दोहराव की संख्या से होने वाले नुकसान को दिखाया जाता है.

ट्रेनिंग सेट के लिए, ऐप्लिकेशन के खोने का फ़ंक्शन धीरे-धीरे कम होता जा रहा है. इसके उलट, पुष्टि करने के सेट के लिए 'लॉस' फ़ंक्शन कम हो जाता है, लेकिन फिर बढ़ने लगता है.

पहली इमेज. ट्रेनिंग सेट और पुष्टि करने के सेट में कमी.

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

दूसरे शब्दों में, सिर्फ़ नुकसान को कम करने के मकसद से (प्रयोग के तौर पर होने वाले जोखिम कम करने के मकसद से):

$$\text{minimize(Loss(Data|Model))}$$

अब हम हानि+जटिलता को कम करेंगे, जिसे संरचना जोखिम कम करने कहा जाता है:

$$\text{minimize(Loss(Data|Model) + complexity(Model))}$$

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

मशीन लर्निंग क्रैश कोर्स दो सामान्य (और कुछ हद तक संबंधित) तरीकों पर फ़ोकस करता है, ताकि मॉडल की जटिलता पर विचार किया जा सके:

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

अगर मॉडल की जटिलता, मोटाई का फ़ंक्शन है, तो ज़्यादा निरपेक्ष मान वाली सुविधा की मोटाई, कम निरपेक्ष मान वाली सुविधा की मोटाई से ज़्यादा जटिल होती है.

हम L2 रेगुलराइज़ेशन फ़ॉर्मूला का इस्तेमाल करके, जटिलता का पता लगा सकते हैं. इसमें रेगुलराइज़ेशन की शर्त को, सभी सुविधाओं के वेट के स्क्वेयर के कुल योग के रूप में तय किया जाता है:

$$L_2\text{ regularization term} = ||\boldsymbol w||_2^2 = {w_1^2 + w_2^2 + ... + w_n^2}$$

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

उदाहरण के लिए, एक लीनियर मॉडल जिसका वज़न नीचे दिया गया है:

$$\{w_1 = 0.2, w_2 = 0.5, w_3 = 5, w_4 = 1, w_5 = 0.25, w_6 = 0.75\}$$

L2 की रेगुलराइज़ेशन की शर्त 26.915 है:

$$w_1^2 + w_2^2 + \boldsymbol{w_3^2} + w_4^2 + w_5^2 + w_6^2$$ $$= 0.2^2 + 0.5^2 + \boldsymbol{5^2} + 1^2 + 0.25^2 + 0.75^2$$ $$= 0.04 + 0.25 + \boldsymbol{25} + 1 + 0.0625 + 0.5625$$ $$= 26.915$$

हालांकि, 25 के स्क्वेयर वैल्यू वाला \(w_3\) (ऊपर दिए गए बोल्ड किया गया है), काफ़ी हद तक मुश्किल है. सभी पांच अन्य वेट के स्क्वेयर का योग, L2 रेगुलराइज़ेशन की अवधि में सिर्फ़ 1.915 जुड़ता है.