Dans le récent article WaveNet , les auteurs se réfèrent à leur modèle comme ayant des couches empilées de convolutions dilatées. Ils produisent également les graphiques suivants, expliquant la différence entre les convolutions «régulières» et les convolutions dilatées.
Les convolutions régulières ressemblent à ceci. Il s'agit d'une convolution avec une taille de filtre de 2 et une foulée de 1, répétée pour 4 couches.
Ils montrent ensuite une architecture utilisée par leur modèle, qu'ils appellent des convolutions dilatées. Cela ressemble à ceci. Ils disent que chaque couche a des dilatations croissantes de (1, 2, 4, 8). Mais pour moi, cela ressemble à une convolution régulière avec une taille de filtre de 2 et une foulée de 2, répétée pour 4 couches.
Si je comprends bien, une convolution dilatée, avec une taille de filtre de 2, une foulée de 1 et des dilatations croissantes de (1, 2, 4, 8), ressemblerait à ceci.
Dans le diagramme WaveNet, aucun des filtres ne saute une entrée disponible. Il n'y a pas de trous. Dans mon diagramme, chaque filtre ignore (d - 1) les entrées disponibles. C'est ainsi que la dilatation est censée fonctionner non?
Donc ma question est, laquelle (le cas échéant) des propositions suivantes sont correctes?
- Je ne comprends pas les convolutions dilatées et / ou régulières.
- Deepmind n'a pas réellement mis en œuvre une convolution dilatée, mais plutôt une convolution étagée, mais a abusé du mot dilatation.
- Deepmind a mis en œuvre une convolution dilatée, mais n'a pas correctement mis en œuvre le graphique.
Je ne maîtrise pas suffisamment le code TensorFlow pour comprendre ce que fait exactement leur code, mais j'ai publié une question connexe sur Stack Exchange , qui contient le peu de code qui pourrait répondre à cette question.