En quelque sorte des termes mécanistes / picturaux / basés sur l'image:
Dilatation: ### VOIR COMMENTAIRES, TRAVAILLER À CORRIGER CETTE SECTION
La dilatation est en grande partie la même que la convolution ordinaire (tout comme la déconvolution), sauf qu'elle introduit des lacunes dans ses noyaux, c'est-à-dire qu'un noyau standard glisserait généralement sur des sections contiguës de l'entrée, son homologue dilaté peut, par exemple, "encercler" une plus grande partie de l'image - tout en ne disposant que d'autant de poids / entrées que la forme standard.
(Notez bien, alors que la dilatation injecte des zéros dans son noyau afin de diminuer plus rapidement les dimensions faciales / résolution de sa sortie, transposer par convolution injecte des zéros dans son entrée afin d' augmenter la résolution de sa sortie.)
Pour rendre cela plus concret, prenons un exemple très simple: disons
que vous avez une image 9x9, x sans remplissage. Si vous prenez un noyau 3x3 standard, avec la foulée 2, le premier sous-ensemble de préoccupation de l'entrée sera x [0: 2, 0: 2], et les neuf points dans ces limites seront pris en compte par le noyau. Vous balayez ensuite x [0: 2, 2: 4] et ainsi de suite.
De toute évidence, la sortie aura des dimensions faciales plus petites, en particulier 4x4. Ainsi, les neurones de la couche suivante ont des champs récepteurs de la taille exacte de ces noyaux. Mais si vous avez besoin ou désirez des neurones avec une connaissance spatiale plus globale (par exemple, si une caractéristique importante n'est définissable que dans des régions plus grandes que celle-ci), vous devrez convoluer cette couche une deuxième fois pour créer une troisième couche dans laquelle le champ récepteur efficace est une certaine union des couches précédentes rf.
Mais si vous ne voulez pas ajouter plus de couches et / ou si vous pensez que les informations transmises sont trop redondantes (c'est-à-dire que vos champs récepteurs 3x3 dans la deuxième couche ne contiennent en réalité qu'une quantité "2x2" d'informations distinctes), vous pouvez utiliser un filtre dilaté. Soyons extrêmes à ce sujet pour plus de clarté et disons que nous utiliserons un filtre 9x9 à 3 cadrans. Maintenant, notre filtre "encerclera" la totalité de l'entrée, nous n'aurons donc pas à la faire glisser du tout. Cependant, nous ne prendrons encore que 3x3 = 9 points de données de l'entrée, x , généralement:
x [0,0] U x [0,4] U x [0,8] U x [4,0] U x [4,4] U x [4,8] U x [8,0] U x [8,4] U x [8,8]
Maintenant, le neurone dans notre couche suivante (nous n'en aurons qu'une) aura des données "représentant" une partie beaucoup plus grande de notre image, et encore une fois, si les données de l'image sont très redondantes pour les données adjacentes, nous aurions bien pu conserver la mêmes informations et appris une transformation équivalente, mais avec moins de couches et moins de paramètres. Je pense que dans les limites de cette description , il est clair que tout définissable comme rééchantillonnage, nous sommes ici sous - échantillonnage pour chaque noyau.
Fractionnée ou transposée ou "déconvolution":
Ce type est encore bien loin de la convolution. La différence est, encore une fois, que nous passerons d'un volume d'entrée plus petit à un volume de sortie plus important. OP n'a posé aucune question sur ce qu'est le suréchantillonnage, donc je vais économiser un peu de largeur, cette fois-ci et passer directement à l'exemple pertinent.
Dans notre cas 9x9 d'avant, disons que nous voulons maintenant suréchantillonner à 11x11. Dans ce cas, nous avons deux options communes: nous pouvons prendre un noyau 3x3 et avec la foulée 1 et le balayer sur notre entrée 3x3 avec 2-padding afin que notre première passe soit sur la région [left-pad-2: 1, above-pad-2: 1] puis [left-pad-1: 2, above-pad-2: 1] et ainsi de suite et ainsi de suite.
Alternativement, nous pouvons également insérer un remplissage entre les données d'entrée et balayer le noyau dessus sans autant de remplissage. Il est clair que nous allons parfois être nous en ce qui concerne les exactement les mêmes points d'entrée plus d'une fois pour un seul noyau; c'est là que le terme "à pas fractionnés" semble plus raisonné. Je pense que l'animation suivante (empruntée à partir d' ici et basée (je crois) sur ce travail aidera à clarifier les choses malgré ses dimensions différentes. L'entrée est bleue, les zéros et le remplissage injectés blancs et la sortie verte:
Bien sûr, nous nous préoccupons de toutes les données d'entrée par opposition à la dilatation qui peut ou non ignorer complètement certaines régions. Et comme nous nous retrouvons clairement avec plus de données que nous n'en avions commencé, le «suréchantillonnage».
Je vous encourage à lire l'excellent document auquel j'ai lié pour une définition et une explication plus solides et abstraites de la convolution de transposition, ainsi que pour savoir pourquoi les exemples partagés sont des formes illustratives mais largement inappropriées pour calculer réellement la transformation représentée.
Bien que les deux semblent faire la même chose, qui consiste à suréchantillonner une couche, il y a une marge claire entre elles.
On parle d'abord de convolution dilatée
J'ai trouvé ce joli blog sur le sujet ci-dessus. Donc, si j'ai bien compris, cela ressemble plus à l'exploration des points de données d'entrée d'une manière large . Ou augmenter le champ récepteur de l'opération de convolution.
Voici un diagramme de convolution dilaté du papier .
C'est plus une convolution normale, mais aide à capturer de plus en plus de contexte global à partir de pixels d'entrée sans augmenter la taille des paramètres. Cela peut également aider à augmenter la taille spatiale de la sortie. Mais l'essentiel ici est que cela augmente la taille du champ récepteur de façon exponentielle avec le nombre de couches. Ceci est très courant dans le domaine du traitement du signal.
Ce blog explique vraiment ce qui est nouveau dans la convolution dilatée et comment cela est comparé à la convolution normale.
Blog: Convolutions dilatées et convolutions factorisées Kronecker
Je vais maintenant expliquer ce qu'est la déconvolution
C'est ce qu'on appelle la convolution transposée. Ceci est égal à la fonction que nous avons utilisée pour la convolution dans la rétropropagation.
Simplement dans backprop, nous distribuons les gradients d'un neurone dans la carte des caractéristiques de sortie à tous les éléments dans les champs récepteurs, puis nous résumons également les gradients pour l'endroit où ils coïncident avec les mêmes éléments récepteurs
Voici une bonne ressource avec des photos .
L'idée de base est donc que la déconvolution fonctionne dans l'espace de sortie. Pas de pixels d'entrée. Il essaiera de créer des dimensions spatiales plus larges dans la carte de sortie. Ceci est utilisé dans les réseaux neuronaux entièrement convolutifs pour la segmentation sémantique .
Donc, plus de Deconvolution est une couche de suréchantillonnage apprenable.
Il essaie d'apprendre à suréchantillonner tout en combinant avec la perte finale
C'est la meilleure explication que j'ai trouvée pour la déconvolution. Cours 13 en cs231, à partir du 21.21 .
la source