Qu'est-ce que l'invariance de la traduction dans la vision par ordinateur et le réseau de neurones convolutionnels?

38

Je n'ai pas de formation en vision par ordinateur. Pourtant, lorsque je lis des articles et des articles sur le traitement d'images et les réseaux de neurones convolutionnels, je suis constamment confronté au terme translation invariance, ou translation invariant.
Ou j'ai lu beaucoup que l'opération de convolution fournit translation invariance? !! Qu'est-ce que ça veut dire?
Je me l'ai toujours traduit moi-même, comme si cela signifiait que si nous modifions une image sous n'importe quelle forme, le concept réel de l'image ne change pas.
Par exemple, si je fais pivoter l’image d’un arbre, c’est encore un arbre, peu importe ce que je fais avec cette image.
Et moi-même, je considère toutes les opérations qui peuvent arriver à une image et la transforme (rogner, redimensionner, griser, la colorer, etc.) de cette manière. Je ne sais pas si cela est vrai, donc je serais reconnaissant si quelqu'un pouvait m'expliquer cela.

Rika
la source

Réponses:

61

Vous êtes sur la bonne voie.

L'invariance signifie que vous pouvez reconnaître un objet en tant qu'objet, même lorsque son apparence varie d'une manière ou d'une autre. C'est généralement une bonne chose, car cela préserve l'identité, la catégorie, etc. de l'objet, malgré les modifications apportées aux détails de l'entrée visuelle, comme les positions relatives du spectateur / de la caméra et de l'objet.

L'image ci-dessous contient de nombreuses vues de la même statue. Vous (et les réseaux de neurones bien entraînés) pouvez reconnaître que le même objet apparaît dans chaque image, même si les valeurs de pixels réelles sont très différentes.

Différents types d'invariance, démontrés

Notez que la traduction a ici une signification spécifique dans la vision, empruntée à la géométrie. Il ne fait référence à aucun type de conversion, contrairement à une traduction du français vers l'anglais ou entre formats de fichiers. Cela signifie plutôt que chaque point / pixel de l’image a été déplacé de la même quantité dans la même direction. Alternativement, vous pouvez penser à l'origine comme ayant été décalée d'un montant égal dans la direction opposée. Par exemple, nous pouvons générer les deuxième et troisième images de la première ligne en déplaçant chaque pixel de 50 ou 100 pixels vers la droite.


On peut montrer que l'opérateur de convolution commute en ce qui concerne la traduction. Si vous convolvezF avec g, peu importe si vous traduisez la sortie convolution F*g, ou si vous traduisez F ou gd'abord, puis les convoluer. Wikipedia a un peu plus .

Une approche de la reconnaissance d'objet invariante en traduction consiste à prendre un "modèle" de l'objet et à le convoluer à chaque emplacement possible de l'objet dans l'image. Si vous obtenez une réponse volumineuse à un emplacement, cela suggère qu'un objet ressemblant au modèle se trouve à cet emplacement. Cette approche est souvent appelée correspondance de modèles .


Invariance vs Equivariance

La réponse de Santanu_Pattanayak ( ici ) indique qu'il existe une différence entre l' invariance de traduction et l' équivariance de traduction . L'invariance de traduction signifie que le système produit exactement la même réponse, quelle que soit la manière dont son entrée est décalée. Par exemple, un détecteur de visage peut signaler "FACE FOUND" pour les trois images de la rangée supérieure. L'équivariance signifie que le système fonctionne également bien d'une position à l'autre, mais sa réponse change en fonction de la position de la cible. Par exemple, une carte thermique de "visage-iness" aurait des bosses similaires à gauche, au centre et à droite lorsqu'elle traite la première ligne d'images.

C’est parfois une distinction importante, mais beaucoup de gens appellent les deux phénomènes "invariance", d’autant plus qu’il est généralement trivial de convertir une réponse équivariante en réponse invariante - il suffit de ne pas tenir compte de toutes les informations de position).

Matt Krause
la source
2
Heureux d'avoir pu aider. C’est l’un de mes centres d’intérêt de recherche, alors s’il ya autre chose qui pourrait être utile, je verrai ce que je peux faire.
Matt Krause
Pourriez-vous préciser comment on obtient l'invariance de traduction avec CNN? Les activations d'une couche convolutionnelle dans un CNN ne sont pas invariantes sous des traductions: elles se déplacent au fur et à mesure que l'image se déplace (c'est-à-dire qu'elles sont équivariantes, plutôt qu'invariantes, aux traductions). Ces activations sont généralement introduites dans une couche de regroupement, qui n'est pas non plus invariante aux traductions. Et la couche de regroupement peut alimenter une couche entièrement connectée. Est-ce que les poids dans une couche entièrement connectée changent d'une manière ou d'une autre l'équivalence de la transalation par rapport au comportement invariant de la traduction?
max
@max, le pooling augmente l'invariance de traduction, en particulier max-pooling (!), qui ignore complètement les informations spatiales dans le voisinage du pooling. Voir le chapitre 9 de Deep Learning deeplearningbook.org/contents/convnets.html (à partir de la page 335). Cette idée est également populaire en neuroscience - le modèle HMAX (par exemple, ici: maxlab.neuro.georgetown.edu/docs/publications/nn99.pdf ) utilise une combinaison de moyenne et de pooling maximal pour générer la traduction (et d’autres types de ) invariance.
Matt Krause
1
Bien sûr, la mise en commun fournit une invariance par rapport aux petites traductions (je pensais à des changements plus importants, mais peut-être que chaque couche de mise en commun successive peut gérer des changements de plus en plus importants). Mais qu'en est-il des réseaux entièrement convolutionnels ? Sans pooling, qu'est-ce qui fournit une invariance (au moins approximative)?
max
1
@Fredom, cela pourrait être mieux comme nouvelle question, mais en bref, le signal audio sonne de la même manière, même lorsque vous le décalez dans le temps (par exemple, en ajoutant une bande de silence au début). Cependant, si vous le déplacez dans le domaine des fréquences, le son sera différent: non seulement le spectre sera décalé, mais les relations entre les fréquences (par exemple, les harmoniques) seront également déformées.
Matt Krause
4

Je pense qu'il y a une certaine confusion sur ce que l'on entend par invariance translationnelle. La convolution fournit une équivariance de traduction, ce qui signifie que si un objet dans une image est dans la zone A et que, par convolution, une caractéristique est détectée à la sortie dans la zone B, la même caractéristique sera détectée lorsque l'objet dans l'image sera traduit en A '. La position de l'entité en sortie serait également traduite dans une nouvelle zone B 'basée sur la taille du noyau du filtre. C'est ce qu'on appelle l'équivariance translationnelle et non l'invariance translationnelle.

Santanu_Pattanayak
la source
2

La réponse est en réalité plus compliquée qu'il n'y parait au début. En règle générale, l'invariance traductionnelle signifie que vous reconnaîtrez l'objet sans distinction d'où il apparaît sur le cadre.

Dans l'image suivante des cadres A et B, vous reconnaîtrez le mot "souligné" si votre vision prend en charge l'invariance de traduction des mots . enter image description here

J'ai mis en évidence le terme de mots car si votre invariance ne prend en charge que les lettres, alors la trame C sera également égale aux trames A et B: elle a exactement les mêmes lettres.

Concrètement, si vous formez votre CNN sur les lettres, des éléments tels que MAX POOL vous aideront à obtenir l’invariance de traduction des lettres, mais ne conduiront pas nécessairement à une invariance de traduction des mots. La mise en commun extrait l'entité (extraite du calque correspondant) sans tenir compte de l'emplacement des autres entités. Elle perd donc la connaissance de la position relative des lettres D et T et les mots STRESSED et DESSERTS se ressemblent.

Le terme lui-même provient probablement de la physique, où symétrie de traduction signifie que les équations restent les mêmes quelle que soit la traduction dans l'espace.

Aksakal
la source
1

@Santanu

Bien que votre réponse soit correcte en partie et prête à confusion. Il est vrai que les couches de convolution elles-mêmes ou les cartes d'entités en sortie sont des équivariants de traduction. Les couches de max-pooling fournissent une invariance de traduction, comme le souligne @Matt.

C'est-à-dire que l'équivariance dans les cartes de caractéristiques combinée à la fonction de couche de regroupement maximal conduit à une invariance de traduction dans la couche de sortie (softmax) du réseau. La première série d'images ci-dessus produirait toujours une prédiction appelée "statue" même si elle a été traduite à gauche ou à droite. Le fait que la prédiction reste "statuette" (c'est-à-dire identique) malgré la traduction de l'entrée signifie que le réseau a obtenu une certaine invariance de traduction.

mr e
la source
Je ne suis pas sûr que la mise en commun conduise à une invariance de traduction.
Aksakal
Modérément, c'est le cas. Rappelez-vous que l'opérateur de mise en pool maximum prend la valeur de pixel maximale comme sortie dans une fenêtre donnée. Cela nécessite mathématiquement une certaine invariance, car la localisation spatiale des valeurs maximales de pixels n’a pas d’importance (dans certaines limites).
M.