Les termes «suréchantillonnage» et «convolution transposée» sont tous deux utilisés lorsque vous effectuez une «déconvolution» (<- ce n'est pas un bon terme, mais permettez-moi de l'utiliser ici). À l'origine, je pensais qu'ils signifiaient la même chose, mais il me semble qu'ils sont différents après avoir lu ces articles. quelqu'un peut-il clarifier?
Transposer la convolution : on dirait que nous pouvons l'utiliser lorsque nous propageons la perte via le réseau neuronal convolutonal.
https://github.com/vdumoulin/conv_arithmetic
https://arxiv.org/pdf/1312.6034v2.pdf , section 4 "Pour la couche convolutionnelle ..."
Suréchantillonnage : il semble que nous l'utilisions lorsque nous voulons suréchantillonner d'une entrée plus petite à une entrée plus grande dans la structure convnet-decovnet.
https://www.youtube.com/watch?v=ByjaPdWXKJ4&feature=youtu.be&t=22m
Réponses:
Puisqu'il n'y a pas de réponse détaillée et marquée, je ferai de mon mieux.
Voyons d'abord d'où vient la motivation pour de telles couches: par exemple un autoencodeur convolutionnel. Vous pouvez utiliser un autoencodeur convolutif pour extraire des traits d'images tout en entraînant l'autoencodeur pour reconstruire l'image d'origine. (Il s'agit d'une méthode non supervisée.)
Un tel auto-encodeur a deux parties: l'encodeur qui extrait les caractéristiques de l'image et le décodeur qui reconstruit l'image originale à partir de ces caractéristiques. L'architecture de l'encodeur et du décodeur est généralement reflétée.
Dans un autoencodeur convolutionnel, l'encodeur fonctionne avec des couches de convolution et de mise en commun. Je suppose que vous savez comment cela fonctionne. Le décodeur essaie de refléter l'encodeur, mais au lieu de "tout réduire", il a pour objectif de "rendre tout plus grand" pour correspondre à la taille d'origine de l'image.
L'opposé des couches convolutives sont les couches de convolution transposées (également connues sous le nom de déconvolution , mais correctement, mathématiquement parlant, c'est quelque chose de différent). Ils fonctionnent avec des filtres, des noyaux, des foulées tout comme les couches de convolution mais au lieu de mapper, par exemple, des pixels d'entrée 3x3 à 1 sortie, ils sont mappés de 1 pixel d'entrée à 3x3 pixels. Bien sûr, la rétropropagation fonctionne également un peu différemment.
L'opposé des couches de mise en commun sont les couches de suréchantillonnage qui, dans leur forme la plus pure, ne redimensionnent l'image (ou copient le pixel autant de fois que nécessaire). Une technique plus avancée est le désengagement qui rétablit le maximum de covoiturage en se souvenant de l'emplacement des maxima dans les couches de maximum de covoiturage et dans les couches de non-covoiturage copiez la valeur exactement à cet emplacement. Pour citer ce document ( https://arxiv.org/pdf/1311.2901v3.pdf ):
Pour plus d'informations techniques et contextuelles, jetez un œil à cette très bonne explication, démonstrative et approfondie: http://deeplearning.net/software/theano/tutorial/conv_arithmetic.html
Et jetez un œil à https://www.quora.com/What-is-the-difference-between-Deconvolution-Upsampling-Unpool-and-Convolutional-Sparse-Coding
la source
Cela peut dépendre du package que vous utilisez.
Dans les keras, ils sont différents. Suréchantillonnage est défini ici https://github.com/fchollet/keras/blob/master/keras/layers/convolutional.py A condition que vous utilisez backend tensorflow, ce qui se passe en réalité est appels KERAS tensorflow resize_images fonction, qui est essentiellement une interpolation et non entraînable.
La convolution transposée est plus impliquée. Il est défini dans le même script python répertorié ci-dessus. Il appelle la fonction tensorflow conv2d_transpose et il a le noyau et est entraînable.
J'espère que cela t'aides.
la source
La déconvolution dans le contexte des réseaux de neurones convolutionnels est synonyme de transposition de la convolution. La déconvolution peut avoir une autre signification dans d'autres domaines.
Transposer la convolution est une stratégie parmi d'autres pour effectuer un suréchantillonnage.
la source
voici une assez bonne illustration de la différence entre 1) convolution transposée et 2) suréchantillonnage + convolution. https://distill.pub/2016/deconv-checkerboard/
Alors que la convolution de transposition est plus efficace, l'article préconise le suréchantillonnage + convolution car il ne souffre pas de l'artefact en damier.
la source