वेवनेट वास्तव में एक पतला दृढ़ संकल्प नहीं है, क्या यह है?


10

हाल ही के वेवनेट पेपर में, लेखक अपने मॉडल का संदर्भ देते हैं, जिसमें पतले संकल्पों की परतें होती हैं। वे निम्नलिखित चार्ट भी बनाते हैं, जो 'नियमित' संकल्पों और पतले संकल्पों के बीच के अंतर को समझाते हैं।

नियमित रूप से दृढ़ संकल्प ऐसा दिखता है कि गैर पतला संकल्प यह 2 के फिल्टर आकार और 1 के स्ट्राइड के साथ एक दृढ़ संकल्प है, जिसे 4 परतों के लिए दोहराया गया है।

वे तब अपने मॉडल द्वारा उपयोग की जाने वाली एक वास्तुकला दिखाते हैं, जिसे वे पतले संकल्प के रूप में संदर्भित करते हैं। यह इस तरह दिख रहा है। वेवनेट दिल से बातचीत वे कहते हैं कि प्रत्येक परत में (1, 2, 4, 8) के फैलाव हैं। लेकिन मेरे लिए यह 2 के फिल्टर आकार और 2 के स्ट्राइड के साथ नियमित रूप से दृढ़ संकल्प की तरह दिखता है, 4 परतों के लिए दोहराया गया।

जैसा कि मैं इसे समझता हूं, 2 के फिल्टर आकार, 1 के स्ट्राइड और (1, 2, 4, 8) के बढ़ते फैलाव के साथ एक पतला कनवल्शन, इस तरह दिखेगा। वास्तविक पतला रूपांतरण

WaveNet आरेख में, कोई भी फ़िल्टर उपलब्ध इनपुट पर नहीं छोड़ता है। कोई छेद नहीं हैं। मेरे आरेख में, प्रत्येक फ़िल्टर उपलब्ध जानकारी (d - 1) से अधिक छोड़ देता है। यह है कि कैसे काम नहीं करना चाहिए?

तो मेरा प्रश्न यह है कि निम्नलिखित प्रस्तावों में से कौन सा (यदि कोई है) सही है?

  1. मैं पतला और / या नियमित रूप से दृढ़ संकल्प नहीं समझता।
  2. दीपमिन्द ने वास्तव में एक पतले कनवल्शन को लागू नहीं किया, बल्कि एक संलिप्त दोष है, लेकिन शब्द विचलन का दुरुपयोग किया।
  3. दीपमिन्द ने एक पतला कनवल्शन लागू किया, लेकिन चार्ट को सही ढंग से लागू नहीं किया।

मैं TensorFlow कोड में पर्याप्त धाराप्रवाह नहीं हूं यह समझने के लिए कि उनका कोड वास्तव में क्या कर रहा है, लेकिन मैंने स्टैक एक्सचेंज पर संबंधित प्रश्न पोस्ट किया था , जिसमें बिट कोड शामिल है जो इस प्रश्न का उत्तर दे सकता है।


मुझे आपका प्रश्न और उत्तर काफी दिलचस्प लगा। चूंकि वेवनेट पेपर स्ट्राइड और डाइल्यूशन रेट के उस समतुल्यता की व्याख्या नहीं करता है, इसलिए मैंने एक ब्लॉग पोस्ट में प्रमुख अवधारणाओं को संक्षेप में प्रस्तुत करने का फैसला किया: theblog.github.io/post/ ... यदि आप अभी भी ऑटोरेस्प्रेसिव न्यूरल के साथ काम कर रहे हैं तो आपको यह दिलचस्प लग सकता है। नेटवर्क
सिलियन बैट्ज़नर

जवाबों:


9

Wavenet के पेपर से:

"A dilated convolution (also called a trous, or convolution with 
holes) is a convolution where the filter is applied over an area larger 
than its length by skipping input values with a certain step. It is 
equivalent to a convolution with a larger filter derived from the 
original filter by dilating it with zeros, but is significantly more 
efficient. A dilated convolution  effectively allows the network to 
operate on a coarser scale than with a normal convolution. This is 
similar to pooling or strided  convolutions, but 
here the output has the same size as the input. As a special case, 
dilated convolution with dilation 1 yields the standard convolution. 
Fig. 3 depicts dilated causal convolutions for dilations 1, 2, 4, and 
8."

एनिमेशन प्रत्येक परत पर बढ़ते एक और फैलाव कारक को तय करता है। Google के wavenet ब्लॉग पोस्ट से एनिमेटेड छवि 3


6

पैसा सिर्फ मेरे लिए इस एक पर गिरा दिया। उन 3 प्रस्तावों में से एक सही 4 है: मुझे वेवनेट पेपर समझ में नहीं आया।

मेरी समस्या यह थी कि मैं एक नमूने को कवर करने के रूप में वेवनेट आरेख की व्याख्या कर रहा था, एक 2 डी संरचना में व्यवस्थित विभिन्न नमूनों पर चलने के लिए जिसमें 1 आयाम नमूना आकार और दूसरा बैच काउंट होने का था।

हालांकि, वेवनेट सिर्फ 1 डी टाइम सीरीज़ पर पूरे फिल्टर को 1 के स्ट्राइड के साथ चला रहा है। यह स्पष्ट रूप से बहुत कम मेमोरी फुटप्रिंट है, लेकिन एक ही चीज को पूरा करता है।

यदि आपने एक तार वाली संरचना का उपयोग करके एक ही चाल करने की कोशिश की, तो आउटपुट आयाम गलत होगा।

तो संक्षेप में, यह एक 2D नमूना x बैच संरचना के साथ तार वाला तरीका करने से एक ही मॉडल देता है, लेकिन बहुत अधिक मेमोरी उपयोग के साथ।

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