Was ist die Übersetzungsinvarianz in der Bildverarbeitung und im neuronalen Faltungsnetzwerk?


36

Ich habe noch keinen Computer Vision Hintergrund. Wenn ich jedoch Artikel und Artikel über Bildverarbeitung und Faltungsneuralnetze lese, stelle ich mich ständig dem Begriff translation invariance, oder translation invariant.
Oder ich habe viel gelesen, dass die Faltungsoperation bietet translation invariance? !! was bedeutet das?
Ich selbst habe es immer für mich übersetzt, als würde sich das eigentliche Konzept des Bildes nicht ändern, wenn wir ein Bild in irgendeiner Form ändern.
Wenn ich zum Beispiel ein Bild eines Baums drehe, ist es wieder ein Baum, egal was ich mit diesem Bild mache.
Und ich selbst betrachte alle Vorgänge, die mit einem Bild geschehen können, und transformiere es auf diese Weise (zuschneiden, skalieren, färben usw.). Ich habe keine Ahnung, ob dies zutrifft, daher wäre ich dankbar, wenn mir jemand dies erklären könnte.

Antworten:


57

Du bist auf dem richtigen Weg.

Invarianz bedeutet, dass Sie ein Objekt als Objekt erkennen können, auch wenn sein Erscheinungsbild in gewisser Weise variiert . Dies ist im Allgemeinen eine gute Sache, da dadurch die Identität, Kategorie usw. des Objekts bei Änderungen der Besonderheiten der visuellen Eingabe, wie relative Positionen des Betrachters / der Kamera und des Objekts, beibehalten werden.

Das Bild unten enthält viele Ansichten derselben Statue. Sie (und gut ausgebildete neuronale Netze) können erkennen, dass in jedem Bild dasselbe Objekt erscheint, obwohl die tatsächlichen Pixelwerte sehr unterschiedlich sind.

Es wurden verschiedene Arten der Invarianz demonstriert

Beachten Sie, dass die Übersetzung hier eine bestimmte Bedeutung im Sehen hat, die aus der Geometrie entlehnt ist. Es bezieht sich nicht auf irgendeine Art der Konvertierung, im Gegensatz zu einer Übersetzung von Französisch nach Englisch oder zwischen Dateiformaten. Stattdessen bedeutet dies, dass jeder Punkt / Pixel im Bild um den gleichen Betrag in die gleiche Richtung verschoben wurde. Alternativ können Sie sich vorstellen, dass der Ursprung um den gleichen Betrag in die entgegengesetzte Richtung verschoben wurde. Zum Beispiel können wir das 2. und 3. Bild in der ersten Reihe aus dem ersten generieren, indem wir jedes Pixel 50 oder 100 Pixel nach rechts verschieben.


Man kann zeigen, dass der Faltungsoperator bezüglich der Übersetzung pendelt. Wenn Sie mit falten , spielt es keine Rolle, ob Sie die gefaltete Ausgabe übersetzen oder ob Sie zuerst oder übersetzen und sie dann falten. Wikipedia hat ein bisschen mehr .fgfgfg

Ein Ansatz zur übersetzungsinvarianten Objekterkennung besteht darin, eine "Schablone" des Objekts zu erstellen und diese mit jeder möglichen Position des Objekts im Bild zu falten. Wenn Sie an einem Ort eine große Antwort erhalten, deutet dies darauf hin, dass sich an diesem Ort ein Objekt befindet, das der Vorlage ähnelt. Dieser Ansatz wird häufig als Template-Matching bezeichnet .


Invarianz vs. Äquivarianz

Santanu_Pattanayak Antwort ( hier ) weist darauf hin , dass es einen Unterschied zwischen Übersetzung Invarianz und Übersetzung Äquivarianz . Übersetzungsinvarianz bedeutet, dass das System unabhängig von der Verschiebung seiner Eingabe genau die gleiche Antwort ausgibt. Beispielsweise könnte ein Gesichtsdetektor "GESICHT GEFUNDEN" für alle drei Bilder in der oberen Reihe anzeigen. Äquivarianz bedeutet, dass das System in allen Positionen gleich gut funktioniert, aber seine Reaktion ändert sich mit der Position des Ziels. Beispielsweise würde eine Wärmekarte von "Gesichtsein" links, in der Mitte und rechts ähnliche Unebenheiten aufweisen, wenn sie die erste Bildreihe verarbeitet.

Dies ist manchmal ein wichtiger Unterschied, aber viele Leute nennen beide Phänomene "Invarianz", zumal es normalerweise trivial ist, eine äquivariante Antwort in eine invariante umzuwandeln - ignorieren Sie einfach alle Positionsinformationen).


2
Froh, dass ich helfen konnte. Dies ist eines meiner großen Forschungsinteressen. Wenn es also noch etwas gibt, das nützlich wäre, werde ich sehen, was ich tun kann.
Matt Krause

Können Sie erläutern, wie die Übersetzungsinvarianz mit CNN erreicht wird? Die Aktivierungen einer Faltungsschicht in einem CNN sind unter Übersetzungen nicht invariant: Sie bewegen sich, während sich das Bild bewegt (dh sie sind für Übersetzungen eher äquivariant als invariankt). Diese Aktivierungen werden normalerweise in eine Poolebene eingespeist, die auch für Übersetzungen nicht invariant ist. Die Pooling-Schicht kann in eine vollständig verbundene Schicht eingehen. Ändern die Gewichte in einer vollständig verbundenen Ebene die Transalation in etwa so wie das translatorisch invariante Verhalten?
max

@max, Pooling erhöht die Übersetzungsinvarianz, insbesondere das Max-Pooling (!), bei dem räumliche Informationen innerhalb des Pooling-Viertels völlig unberücksichtigt bleiben. Siehe Kapitel 9 von Deep Learning deeplearningbook.org/contents/convnets.html (ab S. 335). Diese Idee ist auch in der Neurowissenschaft beliebt - das HMAX-Modell (z. B. hier: maxlab.neuro.georgetown.edu/docs/publications/nn99.pdf ) verwendet eine Kombination aus Mittelwertbildung und Max-Pooling, um Übersetzungen zu generieren (und andere Arten von ) Invarianz.
Matt Krause

1
Oh, richtig, Pooling bietet Invarianz gegenüber kleinen Übersetzungen (ich habe über größere Schichten nachgedacht, aber vielleicht kann jede nachfolgende Schicht des Poolings progressiv größere Schichten bewältigen). Aber was ist mit den vollständig faltungsbezogenen Netzwerken ? Was liefert (zumindest annähernd) Invarianz ohne Pooling?
max

1
@Fredom, das ist vielleicht besser als eine neue Frage, aber in Kürze - das Audiosignal klingt auch dann gleich, wenn Sie es zeitlich vorwärts verschieben (z. B. indem Sie am Anfang eine Pause einfügen). Wenn Sie es jedoch im Frequenzbereich verschieben , klingt es anders: Es wird nicht nur das Spektrum verschoben, sondern auch die Beziehungen zwischen Frequenzen (z. B. Oberwellen) werden verzerrt.
Matt Krause

4

Ich denke, es gibt einige Verwirrung darüber, was mit translationaler Invarianz gemeint ist. Faltung liefert Übersetzungsäquivarianz, dh wenn sich ein Objekt in einem Bild im Bereich A befindet und durch Faltung ein Merkmal am Ausgang im Bereich B erkannt wird, würde dasselbe Merkmal erkannt, wenn das Objekt im Bild in A 'übersetzt wird. Die Position des Ausgabe-Features würde auch basierend auf der Filterkerngröße in einen neuen Bereich B 'übersetzt. Dies wird als translatorische Äquivarianz und nicht als translatorische Invarianz bezeichnet.


2

Die Antwort ist tatsächlich kniffliger als es zunächst erscheint. Im Allgemeinen bedeutet die translatorische Invarianz, dass Sie das Objekt erkennen würden, unabhängig davon, wo es auf dem Frame erscheint.

Im nächsten Bild in Bild A und B würden Sie das Wort "gestresst" erkennen, wenn Ihre Vision die Übersetzungsinvarianz von Wörtern unterstützt . Bildbeschreibung hier eingeben

Ich habe den Begriff Wörter hervorgehoben, weil, wenn Ihre Invarianz nur für Buchstaben unterstützt wird, der Rahmen C auch den Rahmen A und B entspricht: er hat genau die gleichen Buchstaben.

In der Praxis helfen Dinge wie MAX POOL, wenn Sie Ihr CNN auf Buchstaben trainiert haben, um die Übersetzungsinvarianz für Buchstaben zu erreichen, führen jedoch nicht unbedingt zu einer Übersetzungsinvarianz für Wörter. Beim Poolen wird das Feature (das von einer entsprechenden Ebene extrahiert wurde) unabhängig von der Position anderer Features extrahiert, sodass die relative Position der Buchstaben D und T und der Wörter STRESSED und DESSERTS nicht mehr bekannt sind.

Der Begriff selbst ist wahrscheinlich aus der Physik, wo t ranslational Symmetrie bedeutet , dass die Gleichungen gleich , unabhängig von Übersetzung im Raum bleiben.


1

@ Santanu

Während Ihre Antwort teilweise richtig ist und zu Verwirrung führt. Es ist richtig, dass Convolutional-Layer selbst oder Ausgabe-Feature-Maps Übersetzungsäquivarianten sind. Was die Max-Pooling-Schichten tun, ist eine gewisse Übersetzungsinvarianz, wie @Matt hervorhebt.

Das heißt, die Äquivarianz in den Feature-Maps in Kombination mit der Max-Pooling-Layer-Funktion führt zu einer Übersetzungsinvarianz in der Ausgabeschicht (Softmax) des Netzwerks. Die erste Reihe der obigen Bilder würde immer noch eine Vorhersage mit dem Namen "Statue" erzeugen, obwohl sie nach links oder rechts übersetzt wurde. Die Tatsache, dass die Vorhersage trotz der Übersetzung der Eingabe "statue" (dh dieselbe) bleibt, bedeutet, dass das Netzwerk eine gewisse Übersetzungsinvarianz erreicht hat.


Ich bin mir nicht sicher, ob Pooling zu einer Invarianz der Übersetzung führt.
Aksakal

Mäßig tut es. Denken Sie daran, dass der Operator max pooling den maximalen Pixelwert als Ausgabe in einem bestimmten Fenster verwendet. Dies erfordert mathematisch eine gewisse Invarianz, da der räumliche Ort der maximalen Pixelwerte irrelevant ist (innerhalb einer gewissen Toleranz).
Herr
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.