कंवोल्यूशनल न्यूरल नेटवर्क्स में फीचर मैप आकार
सूत्र:outputSize = (inputSize - kernelSize + 2 * padding) / stride + 1
कन्वोल्यूशनल न्यूरल नेटवर्क में फ़ीचर मैप साइज़ को समझना
कन्वोल्यूशनल न्यूरल नेटवर्क (CNN) डीप लर्निंग के क्षेत्र में एक आधारशिला बन गए हैं, खास तौर पर इमेज और वीडियो पहचान से जुड़े कार्यों के लिए। CNN आर्किटेक्चर का एक महत्वपूर्ण पहलू फ़ीचर मैप साइज़ है, जो प्रत्येक कन्वोल्यूशनल लेयर पर परिवर्तन से गुजरता है। यह जानना कि इसकी गणना कैसे की जाती है, प्रभावी मॉडल बनाने के लिए मौलिक है।
सूत्र
CNN में कन्वोल्यूशनल लेयर के बाद फीचर मैप का आकार निम्नलिखित सूत्र का उपयोग करके निर्धारित किया जाता है:
outputSize = (inputSize - kernelSize + 2 * padding) / stride + 1
यहां शामिल प्रत्येक पैरामीटर का विवरण दिया गया है:
inputSize
: इनपुट फीचर मैप का आकार (पिक्सल में मापा जाता है)।kernelSize
: कन्वोल्यूशनल कर्नेल का आकार (पिक्सल में मापा जाता है)।padding
: इनपुट की सीमा में जोड़े गए शून्य-पिक्सल की संख्या (पिक्सल में मापा जाता है)।stride
: पिक्सेल जिसके द्वारा कर्नेल इनपुट फ़ीचर मैप पर चलता है (पिक्सेल में मापा जाता है)।
इनपुट और आउटपुट
इनपुट
inputSize
: पूर्णांक, पिक्सेल की संख्या (px)।kernelSize
: पूर्णांक, पिक्सेल की संख्या (px)।padding
: पूर्णांक, पिक्सेल की संख्या (px)।stride
: पूर्णांक, पिक्सेल की संख्या (px)।
आउटपुट
outputSize
: पूर्णांक, पिक्सेल की संख्या (px)।
वास्तविक जीवन का उदाहरण
एक लोकप्रिय उपयोग के मामले पर विचार करें जहां आपके पास 224x224 पिक्सेल आकार की एक इनपुट छवि है। आप 3x3 के कर्नेल आकार, 1 की पैडिंग और 1 की स्ट्राइड के साथ एक कन्वोल्यूशनल लेयर लागू करते हैं। यहाँ बताया गया है कि आप फ़ीचर मैप आकार की गणना कैसे करते हैं:
inputSize: 224, kernelSize: 3, padding: 1, stride: 1
इन मानों को हमारे फ़ॉर्मूले में प्लग करना:
outputSize = (224 - 3 + 2 * 1) / 1 + 1 = 224
परिणामी फ़ीचर मैप अभी भी 224x224 पिक्सेल होगा।
डेटा सत्यापन
इस गणना के काम करने के लिए, सभी इनपुट पैरामीटर शून्य से अधिक होने चाहिए। इसके अलावा, सुनिश्चित करें कि स्ट्राइड एक पूर्णांक है जो संशोधित इनपुट आकार (इनपुटसाइज़ - कर्नेलसाइज़ + 2 * पैडिंग) को समान रूप से विभाजित करता है, अन्यथा फ़ीचर मैप का आकार पूर्णांक नहीं होगा और सूत्र टूट जाएगा।
उदाहरण मान:
inputSize
= 32kernelSize
= 5padding
= 2स्ट्राइड
= 1outputSize
= परिणामी फ़ीचर मैप आकार
आउटपुट:
outputSize
= 32
सारांश
गणना करना कन्वोल्यूशनल न्यूरल नेटवर्क में फ़ीचर मैप का आकार मॉडल आर्किटेक्चर और ऑप्टिमाइज़ेशन के लिए महत्वपूर्ण है। सूत्र (इनपुटसाइज़ - कर्नेलसाइज़ + 2 * पैडिंग) / स्ट्राइड + 1 को समझकर और सही तरीके से इस्तेमाल करके, डेटा वैज्ञानिक और इंजीनियर अधिक कुशल नेटवर्क डिज़ाइन कर सकते हैं, जिससे प्रदर्शन और प्रभावकारिता में सुधार होगा।
अक्सर पूछे जाने वाले प्रश्न (FAQ)
पैडिंग का उपयोग क्यों किया जाता है?
पैडिंग आउटपुट फ़ीचर मैप के स्थानिक आयामों को नियंत्रित करने में मदद करता है। यह विशेष रूप से तब उपयोगी होता है जब आप आउटपुट में इनपुट आकार को संरक्षित करना चाहते हैं।
क्या होता है अगर स्ट्राइड एक से अधिक है?
जब स्ट्राइड एक से अधिक होता है, तो कर्नेल इनपुट में पिक्सेल को छोड़ देता है, जिससे आउटपुट फ़ीचर मैप छोटा हो जाता है। इससे कम्प्यूटेशनल लोड कम हो जाता है।
क्या यह सूत्र केवल वर्गाकार इनपुट पर ही लागू होता है?
नहीं, सूत्र को प्रत्येक आयाम (ऊंचाई और चौड़ाई) पर अलग-अलग समान तर्क लागू करके गैर-वर्गाकार इनपुट के लिए समायोजित किया जा सकता है।
इन दिशानिर्देशों का पालन करके और प्रत्येक पैरामीटर को समझकर, आप कन्वोल्यूशनल न्यूरल नेटवर्क की पूरी क्षमता का दोहन कर सकते हैं और अपने डीप लर्निंग मॉडल को कुशलतापूर्वक अनुकूलित कर सकते हैं।
Tags: डीप लर्निंग, छवि पहचान, मशीन लर्निंग