Dalam makalah WaveNet baru-baru ini , penulis merujuk pada model mereka yang memiliki tumpukan lapisan konvolusi melebar. Mereka juga menghasilkan bagan berikut, menjelaskan perbedaan antara konvolusi 'reguler' dan konvolusi dilatasi.
Konvolusi reguler terlihat seperti Ini adalah konvolusi dengan ukuran filter 2 dan langkah 1, diulang untuk 4 layer.
Mereka kemudian menunjukkan arsitektur yang digunakan oleh model mereka, yang mereka sebut sebagai pelebaran konvolusi. Ini terlihat seperti ini. Mereka mengatakan bahwa setiap lapisan memiliki pelebaran yang meningkat (1, 2, 4, 8). Tetapi bagi saya ini terlihat seperti konvolusi biasa dengan ukuran filter 2 dan langkah 2, diulang untuk 4 lapisan.
Seperti yang saya pahami, konvolusi melebar, dengan ukuran filter 2, langkah 1, dan peningkatan dilatasi (1, 2, 4, 8), akan terlihat seperti ini.
Dalam diagram WaveNet, tidak ada filter yang melewatkan input yang tersedia. Tidak ada lubang. Dalam diagram saya, setiap filter melewatkan input yang tersedia (d - 1). Ini adalah bagaimana pelebaran seharusnya tidak bekerja?
Jadi pertanyaan saya adalah, mana (jika ada) dari proposisi berikut ini yang benar?
- Saya tidak mengerti pelebaran yang melebar dan / atau teratur.
- Deepmind tidak benar-benar menerapkan konvolusi dilatasi, melainkan konvolusi langkah, tetapi menyalahgunakan kata dilasi.
- Deepmind memang mengimplementasikan konvolusi melebar, tetapi tidak mengimplementasikan bagan dengan benar.
Saya tidak cukup fasih dalam kode TensorFlow untuk memahami apa yang sebenarnya dilakukan kode mereka, tetapi saya memposting pertanyaan terkait di Stack Exchange , yang berisi sedikit kode yang dapat menjawab pertanyaan ini.
sumber
Jawaban:
Dari kertas wavenet:
Animasi menunjukkan langkah tetap satu dan faktor dilasi meningkat pada setiap lapisan.
sumber
Uang satu-satunya yang dijatuhkan untuk saya. Dari ketiga proposisi itu, yang benar adalah 4: Saya tidak mengerti makalah WaveNet.
Masalah saya adalah bahwa saya menafsirkan diagram WaveNet sebagai meliputi sampel tunggal, untuk dijalankan pada sampel yang berbeda yang diatur dalam struktur 2D dengan 1 dimensi sebagai ukuran sampel dan yang lainnya adalah jumlah batch.
Namun, WaveNet hanya menjalankan seluruh filter tersebut dalam satu seri waktu 1D dengan langkah 1. Ini jelas memiliki jejak memori yang jauh lebih rendah tetapi mencapai hal yang sama.
Jika Anda mencoba melakukan trik yang sama menggunakan struktur langkah, dimensi output akan salah.
Jadi untuk meringkas, melakukannya dengan langkah sederhana dengan struktur 2D sampel x batch memberikan model yang sama, tetapi dengan penggunaan memori yang jauh lebih tinggi.
sumber