मॉडल डिस्टिलेशन और प्रूनिंग न्यूरल नेटवर्क मॉडल को संपीड़ित करने की दो महत्वपूर्ण तकनीकें हैं। वे पैरामीटरों की संख्या और गणना की जटिलता घटाकर मॉडल की कार्यकुशलता और प्रदर्शन बढ़ा सकती हैं। नीचे इन दोनों तकनीकों का विस्तृत परिचय है।
मॉडल डिस्टिलेशन
मॉडल डिस्टिलेशन में छोटे मॉडल को बड़े मॉडल के पूर्वानुमान दोहराने के लिए प्रशिक्षित किया जाता है। बड़े मॉडल को “शिक्षक मॉडल” और छोटे को “छात्र मॉडल” कहा जाता है। शिक्षक में आम तौर पर अधिक पैरामीटर और अधिक जटिलता होती है, इसलिए वह प्रशिक्षण तथा परीक्षण डेटा को बेहतर ढंग से फ़िट कर सकता है। डिस्टिलेशन में छात्र को शिक्षक के पूर्वानुमान व्यवहार की नकल करना सिखाया जाता है, ताकि छोटे आकार में मिलते-जुलते प्रदर्शन तक पहुँचा जा सके।
मॉडल डिस्टिलेशन के चरण इस प्रकार हैं:
1. शिक्षक मॉडल का प्रशिक्षण: बैकप्रोपेगेशन और स्टोकैस्टिक ग्रेडिएंट डिसेंट जैसे सामान्य तरीकों से बड़े डीप न्यूरल नेटवर्क को प्रशिक्षित करें, ताकि वह प्रशिक्षण डेटा पर अच्छा प्रदर्शन करे।
2. सॉफ़्ट लेबल बनाना: शिक्षक मॉडल से प्रशिक्षण डेटा के पूर्वानुमान लें और उसके आउटपुट को सॉफ़्ट लेबल के रूप में इस्तेमाल करें। यह विचार पारंपरिक हार्ड लेबल, अर्थात वन-हॉट एन्कोडिंग, से विकसित हुआ है। सॉफ़्ट लेबल अधिक सतत जानकारी देते हैं और अलग-अलग वर्गों के संबंध बेहतर ढंग से बताते हैं।
3. छात्र मॉडल का प्रशिक्षण: सॉफ़्ट लेबल को लक्ष्य बनाकर छोटे डीप न्यूरल नेटवर्क को प्रशिक्षण डेटा पर अच्छा प्रदर्शन करने के लिए प्रशिक्षित करें। छात्र के इनपुट और आउटपुट शिक्षक जैसे ही होते हैं, लेकिन उसके पैरामीटर और संरचना अधिक सरल तथा छोटे होते हैं।
डिस्टिलेशन का लाभ यह है कि छोटा मॉडल अपना प्रदर्शन बनाए रखते हुए कम गणना और कम संग्रहण स्थान में काम कर सकता है।इसके अलावा, सॉफ़्ट लेबल अधिक सतत जानकारी देकर छात्र को अलग-अलग वर्गों के संबंध बेहतर सीखने में मदद करते हैं। मॉडल डिस्टिलेशन का उपयोग प्राकृतिक भाषा प्रसंस्करण, कंप्यूटर विज़न और वाक् पहचान जैसे कई क्षेत्रों में व्यापक रूप से होता है।
मॉडल प्रूनिंग
मॉडल प्रूनिंग में अनावश्यक न्यूरॉन और कनेक्शन हटाकर न्यूरल नेटवर्क को छोटा किया जाता है। ऐसे मॉडल में अक्सर बहुत-से पैरामीटर और अतिरिक्त कनेक्शन होते हैं, जिनका प्रदर्शन पर खास असर नहीं होता, लेकिन वे गणना की जटिलता और संग्रहण की ज़रूरत बहुत बढ़ा देते हैं। प्रूनिंग इन्हें हटाकर प्रदर्शन बनाए रखते हुए मॉडल का आकार और गणना की जटिलता घटाती है।
मॉडल प्रूनिंग के चरण ये हैं:
1. मूल मॉडल का प्रशिक्षण: बैकप्रोपेगेशन और स्टोकैस्टिक ग्रेडिएंट डिसेंट जैसे सामान्य तरीकों से बड़े डीप न्यूरल नेटवर्क को प्रशिक्षण डेटा पर अच्छा प्रदर्शन करने के लिए प्रशिक्षित करें।
2. न्यूरॉनों का महत्व आँकना: L1 रेग्युलराइज़ेशन, हेसियन मैट्रिक्स या टेलर विस्तार जैसे तरीकों से हर न्यूरॉन का अंतिम आउटपुट में योगदान आँकें। कम महत्व वाले न्यूरॉन अनुपयोगी माने जा सकते हैं।
3. अनुपयोगी न्यूरॉन और कनेक्शन हटाना: महत्व के आधार पर अनावश्यक न्यूरॉन और कनेक्शन हटाएँ। यह उनके वज़न शून्य करके या संबंधित न्यूरॉन तथा कनेक्शन मिटाकर किया जा सकता है।
प्रूनिंग का लाभ यह है कि यह मॉडल का आकार और गणना की जटिलता प्रभावी ढंग से घटाकर प्रदर्शन बढ़ाती है।प्रूनिंग ओवरफ़िटिंग घटाने और मॉडल की सामान्यीकरण क्षमता सुधारने में भी मदद कर सकती है। इसका उपयोग प्राकृतिक भाषा प्रसंस्करण, कंप्यूटर विज़न और वाक् पहचान जैसे कई क्षेत्रों में व्यापक है।
अंततः, दोनों तकनीकें न्यूरल नेटवर्क संपीड़न के लिए हैं, लेकिन उनके तरीके और उद्देश्य कुछ अलग हैं। डिस्टिलेशन शिक्षक के पूर्वानुमान व्यवहार से छात्र को प्रशिक्षित करने पर केंद्रित है; प्रूनिंग अनुपयोगी पैरामीटर और कनेक्शन हटाकर मॉडल को संपीड़ित करती है।