WaveNet ไม่ใช่การโน้มน้าวใจจริง ๆ ใช่ไหม?


10

ในกระดาษWaveNetเมื่อเร็ว ๆ นี้ผู้เขียนอ้างถึงรูปแบบของพวกเขาว่ามีชั้นซ้อนทับของความเชื่อมั่นที่ขยาย พวกเขายังจัดทำแผนภูมิต่อไปนี้เพื่ออธิบายความแตกต่างระหว่างการโน้มน้าวแบบ 'ปกติ' และการโน้มน้าวแบบขยาย

Convolutions ทั่วไปดูเหมือนว่า Convolutions ที่ไม่พอง นี่คือ convolutions ที่มีขนาดฟิลเตอร์ที่ 2 และ stride ที่ 1 ซ้ำเป็น 4 เลเยอร์

จากนั้นพวกเขาแสดงสถาปัตยกรรมที่ใช้โดยแบบจำลองของพวกเขาซึ่งพวกเขาเรียกว่า convolutions ที่ขยาย ดูเหมือนว่านี้ WaveNet Dilated Convolutions พวกเขาบอกว่าแต่ละชั้นมีการเจือจางที่เพิ่มขึ้นของ (1, 2, 4, 8) แต่สำหรับฉันแล้วนี่ดูเหมือนการบิดปกติที่มีขนาดฟิลเตอร์ที่ 2 และ stride ที่ 2 ซ้ำเป็น 4 เลเยอร์

ตามที่ฉันเข้าใจแล้วการบิดแบบขยายที่มีขนาดตัวกรองเป็น 2 ก้าว 1 และเพิ่มการเจือจางที่ (1, 2, 4, 8) จะมีลักษณะเช่นนี้ Convil Dilated จริง

ในไดอะแกรม WaveNet ไม่มีตัวกรองใด ๆ ข้ามอินพุตที่มีอยู่ ไม่มีหลุม ในแผนภาพของฉันตัวกรองแต่ละตัวข้ามอินพุตที่มีอยู่ (d - 1) นี่คือวิธีการขยายที่ควรจะทำงานไม่?

ดังนั้นคำถามของฉันคือข้อใดของข้อเสนอต่อไปนี้ที่ถูกต้อง?

  1. ฉันไม่เข้าใจการขยายและ / หรือการโน้มน้าวใจเป็นประจำ
  2. Deepmind ไม่ได้ใช้การโน้มน้าวแบบขยาย แต่เป็นการบิดอย่างมาก แต่ใช้การขยายคำไปในทางที่ผิด
  3. Deepmind ใช้การแปลงแบบขยาย แต่ไม่ได้ใช้แผนภูมิอย่างถูกต้อง

ฉันไม่คล่องพอในรหัส TensorFlow เพื่อทำความเข้าใจว่ารหัสของพวกเขาทำอะไร แต่ฉันโพสต์คำถามที่เกี่ยวข้องใน Stack Exchangeซึ่งมีบิตของรหัสที่สามารถตอบคำถามนี้ได้


ฉันพบคำถามและคำตอบของคุณด้านล่างค่อนข้างน่าสนใจ เนื่องจากกระดาษ WaveNet ไม่ได้อธิบายว่าความเท่าเทียมกันของอัตราการก้าวย่างและการขยายผมจึงตัดสินใจสรุปแนวคิดหลัก ๆ ในบล็อกโพสต์: theblog.github.io/post/ ......คุณอาจพบว่ามันน่าสนใจถ้าคุณยังทำงานกับระบบประสาทอัตโนมัติ เครือข่าย
Kilian Batzner

คำตอบ:


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."

อนิเมชั่นแสดงให้เห็นถึงความก้าวหน้าอย่างถาวรและปัจจัยการขยายเพิ่มขึ้นในแต่ละชั้น Animated Fig. 3 จากบล็อกโพสต์ wavenet ของ Google


6

เพนนีเพิ่งตกอันนี้สำหรับฉัน จากข้อเสนอ 3 ข้อนั้นถูกต้องคือ 4: ฉันไม่เข้าใจกระดาษ WaveNet

ปัญหาของฉันคือการที่ฉันตีความแผนภาพ WaveNet ว่าครอบคลุมกลุ่มตัวอย่างเดียวเพื่อใช้กับกลุ่มตัวอย่างที่แตกต่างกันซึ่งจัดเรียงในโครงสร้าง 2D โดยมี 1 มิติคือขนาดตัวอย่างและอีกกลุ่มเป็นจำนวนแบตช์

อย่างไรก็ตาม WaveNet กำลังเรียกใช้ตัวกรองทั้งหมดในซีรีย์ 1D ที่มี stride เท่ากับ 1 ซึ่งเห็นได้ชัดว่ามีหน่วยความจำที่ต่ำกว่ามาก แต่ก็ทำสิ่งเดียวกันได้สำเร็จ

หากคุณพยายามทำแบบเดียวกันโดยใช้โครงสร้างแบบ strided ขนาดของเอาต์พุตจะผิด

ดังนั้นเพื่อสรุปการทำแบบ strides ด้วยโครงสร้างชุดตัวอย่าง x แบบ 2 มิติให้รูปแบบเดียวกัน แต่ด้วยการใช้หน่วยความจำที่สูงขึ้นมาก

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.