पहली परत में Krizhevsky के '12 CNN को 253,440 न्यूरॉन्स कैसे मिलते हैं?


24

में एलेक्स Krizhevsky, एट अल। गहरी सजातीय तंत्रिका नेटवर्क के साथ Imagenet वर्गीकरण वे प्रत्येक परत में न्यूरॉन्स की संख्या की गणना करते हैं (नीचे आरेख देखें)।

नेटवर्क का इनपुट 150,528-आयामी है, और नेटवर्क की शेष परतों में न्यूरॉन्स की संख्या 253,440–186,624–64,896–64,896–43,264- 4096–4096-1000 द्वारा दी गई है।

सीएनएन

एक 3D दृश्य

पहले स्पष्ट होने के बाद सभी परतों के लिए न्यूरॉन्स की संख्या। न्यूरॉन्स की गणना करने के लिए एक सरल तरीका उस परत के तीन आयामों को बस गुणा करना है planes X width X height:

  • परत 2: 27x27x128 * 2 = 186,624
  • परत 3: 13x13x192 * 2 = 64,896
  • आदि।

हालांकि, पहली परत को देखते हुए:

  • परत 1: 55x55x48 * 2 = 290400

ध्यान दें कि यह कागज में निर्दिष्ट नहीं है 253,440 !

आउटपुट आकार की गणना करें

एक कनवल्शन के आउटपुट टेंसर की गणना करने का दूसरा तरीका है:

यदि इनपुट छवि 3D टेंसर है nInputPlane x height x width, तो आउटपुट इमेज का आकार nOutputPlane x owidth x oheightकहां होगा

owidth = (width - kW) / dW + 1

oheight = (height - kH) / dH + 1

( मशाल स्पाटियलवोल्यूशन डॉक्यूमेंटेशन से )

इनपुट छवि है:

  • nInputPlane = 3
  • height = 224
  • width = 224

और दृढ़ संकल्प परत है:

  • nOutputPlane = 96
  • kW = 11
  • kH = 11
  • dW = 4
  • dW = 4

(उदाहरण कर्नेल आकार 11, स्ट्राइड 4)

उन संख्याओं में प्लगिंग जो हमें मिलती है:

owidth = (224 - 11) / 4 + 1 = 54 oheight = (224 - 11) / 4 + 1 = 54

इसलिए हम 55x55कागज से मेल खाने वाले आयामों में से एक हैं । वे पैडिंग हो सकते हैं (लेकिन cuda-convnet2मॉडल स्पष्ट रूप से पैडिंग को 0 पर सेट करता है)

यदि हम 54-साइज आयाम लेते हैं तो हमें 96x54x54 = 279,936न्यूरॉन्स मिलते हैं - फिर भी बहुत सारे।

तो मेरा सवाल ये है:

पहली दृढ़ परत के लिए उन्हें 253,440 न्यूरॉन्स कैसे मिलते हैं? मुझे किसकी याद आ रही है?


क्या आपने कभी इसका हल निकाला है? बस अपनी गणना के साथ पांडित्य होना चाहिए: उल्लू और ओहीट वास्तव में 54.25 होगा। मैंने यह पता लगाने की कोशिश की, और पहले कदम के रूप में माना जाता है कि 253440 न्यूरॉन्स को 96 फिल्टर के बीच विभाजित किया गया है, जो कि फिल्टर के बिना 2640 न्यूरॉन्स की पैदावार करता है। यह एक वर्ग संख्या नहीं है। तो या तो हम दोनों को यहाँ गलतफहमी है, या लेखकों द्वारा कोई गलती हो सकती है ... क्या आपने उनसे संपर्क किया है?
anderas

मेरे साथ भी, यह मुझे बहुत भ्रमित करता है। btw सच है इनपुट 224x224x3 है? मुझे लगता है कि यह 227x227x3 होना चाहिए। देखते हैं कि हमारे पास 227x227 है, पहली बाईं ओर 5 सेल और अंतिम दाईं ओर 5 सेल आकार 11x11 के साथ कर्नेल कनवल्शन का केंद्र नहीं हो सकता है। तो कर्नेल का पहला केंद्र सेल (6,6) है और पहली पंक्ति में केंद्र कर्नेल का अंतिम भाग सेल (6x222) है। स्ट्राइड -4 के साथ हम पंक्ति-छठे पर कर्नेल का केंद्र प्राप्त करेंगे: स्तंभ पर सेल: 6,10,14, ..., 222 और कर्नेल-के केंद्र के लिए सरल सूत्रीकरण कॉलम = 6+ (k) पर है -1) * 4 ताकि कॉलम 222 k-th केंद्र = (222-6) / 4 +1 = 55 हो।

4
ध्यान दें कि 48 * 48 * 55 * 2 = 253440, इसलिए यह संभव है कि जब वे पहली परत में न्यूरॉन्स की संख्या की गणना करते हैं तो उनका टाइपो होता था (55 के बजाय 48 से गुणा)।
tsiki


@ फ़ायरबग यह [संदर्भ] टैग का एक दिलचस्प उपयोग है। मुझे लगा कि हम इसका उपयोग केवल उन सवालों के लिए करते हैं जो संदर्भ के लिए पूछते हैं । लेकिन शायद मैं गलत था। क्या आप इसे अलग तरह से इस्तेमाल करते हैं?
अमीबा का कहना है कि मोनिका

जवाबों:


8

NN पर स्टैनफ़ोर्ड नोट से:

वास्तविक दुनिया का उदाहरण। क्रिज़ेव्स्की एट अल। 2012 में इमेजनेट चुनौती जीतने वाली वास्तुकला ने आकार की छवियों को स्वीकार किया [227x227x3]। पहले संवैधानिक परत पर, यह ग्रहणशील क्षेत्र आकार F = 11 के साथ न्यूरॉन्स का उपयोग करता था, एस = 4 के बगल में और कोई शून्य पैडिंग P = 0 नहीं था। चूंकि (227 - 11) / 4 + 1 = 55, और चूंकि रूपांतरण परत में K = 96 की गहराई थी, इसलिए रूपांतरण परत की मात्रा का आकार [55x55x96] था। इस वॉल्यूम में 55 * 55 * 96 न्यूरॉन्स में से प्रत्येक इनपुट वॉल्यूम में आकार [11x11x3] के एक क्षेत्र से जुड़ा था। इसके अलावा, प्रत्येक गहराई स्तंभ में सभी 96 न्यूरॉन्स इनपुट के समान [11x11x3] क्षेत्र से जुड़े हैं, लेकिन निश्चित रूप से अलग-अलग वजन के साथ। एक तरफ मजेदार के रूप में, यदि आप वास्तविक पेपर पढ़ते हैं तो यह दावा करता है कि इनपुट चित्र 224x224 थे, जो निश्चित रूप से गलत है क्योंकि (224 - 11) / 4 + 1 स्पष्ट रूप से पूर्णांक नहीं है। इसने कन्वेनेट के इतिहास में बहुत से लोगों को भ्रमित किया है और जो कुछ हुआ उसके बारे में बहुत कम जाना जाता है। मेरा अपना सबसे अच्छा अनुमान है कि एलेक्स ने 3 अतिरिक्त पिक्सेल के शून्य-गद्दी का उपयोग किया जिसका वह कागज में उल्लेख नहीं करता है।

रेफरी: http://cs231n.github.io/convolutional-networks/

ये नोट्स स्टैनफोर्ड सीएस वर्ग CS231n के साथ हैं: दृश्य मान्यता के लिए संवादात्मक तंत्रिका नेटवर्क। जस्टिन जॉनसन के असाइनमेंट के बारे में प्रश्नों / चिंताओं / बग रिपोर्ट के लिए, या पाठ्यक्रम नोट्स के बारे में संपर्क करें


क्या उन नोटों के लेखक का नामकरण करके क्रेडिट देना संभव है?
सिल्वरफिश

लेखक नोटों में स्पष्ट रूप से स्व संदर्भित हैं, देखें cs231n.github.io
बेकन

2
यद्यपि वे स्पष्ट रूप से संदर्भित हैं यदि आप लिंक का पालन करते हैं, तो उद्धरण यहां भी दिखाई देता है, इसलिए यहां भी क्रेडिट दिया जाना चाहिए। यह आंशिक रूप से शिष्टाचार है, लेकिन यह भी क्योंकि लिंक काम करना बंद कर सकता है (जैसे यदि सामग्री हटा दी जाती है / paywalled / एक नए पते पर ले जाया जाता है)। दुर्भाग्य से हमें इस साइट पर "लिंक रोट" के साथ एक गंभीर समस्या है - जब हम सांख्यिकीय प्रश्नों के उच्च-गुणवत्ता वाले उत्तर के दीर्घकालिक भंडार के रूप में सेवा करने का इरादा रखते हैं, तो हमारे कई पुराने उत्तरों को लिंक द्वारा अप्रचलित कर दिया गया है जो अब काम नहीं करते हैं । इसलिए यह आम तौर पर यथासंभव आत्म-निहित जवाब देने की कोशिश करने के लिए सुरक्षित है।
सिल्वरफिश

0

यह कागज वास्तव में भ्रामक है। सबसे पहले, छवियों का इनपुट आकार गलत है 224x224 55 का आउटपुट नहीं देता है। वे न्यूरॉन्स केवल एक में समूहीकृत पिक्सेल की तरह हैं, इसलिए आउटपुट यादृच्छिक मूल्यों (न्यूरॉन मान) की 2 डी छवि है। तो मूल रूप से न्यूरॉन्स की संख्या = widthxheightxdepth, कोई भी रहस्य नहीं है यह पता लगाने के लिए।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.