In einer Art mechanistischer / bildlicher / bildbasierter Begriffe:
Dilatation: ### SIEHE KOMMENTARE, DIE AN DER KORREKTUR DIESES ABSCHNITTS ARBEITEN
Die Dilatation ist weitgehend die gleiche wie die gewöhnliche Faltung (offen gesagt auch die Entfaltung), mit der Ausnahme, dass sie Lücken in ihre Kernel einführt, dh während ein Standardkernel normalerweise über zusammenhängende Abschnitte der Eingabe gleitet, kann sein erweitertes Gegenstück Zum Beispiel "umkreisen" Sie einen größeren Teil des Bildes - während Sie immer noch nur so viele Gewichte / Eingaben haben wie die Standardform.
(Beachten Sie gut, während die Dilatation Nullen in den Kernel einfügt, um die Gesichtsabmessungen / die Auflösung der Ausgabe schneller zu verringern , injiziert die transponierte Faltung Nullen in die Eingabe , um die Auflösung der Ausgabe zu erhöhen .)
Um dies konkreter zu machen, nehmen wir ein sehr einfaches Beispiel:
Angenommen, Sie haben ein 9x9-Bild, x ohne Auffüllung. Wenn Sie einen Standard-3x3-Kernel mit Schritt 2 verwenden, ist die erste betroffene Teilmenge der Eingabe x [0: 2, 0: 2], und alle neun Punkte innerhalb dieser Grenzen werden vom Kernel berücksichtigt. Sie würden dann über x [0: 2, 2: 4] und so weiter streichen .
Es ist klar, dass die Ausgabe kleinere Gesichtsabmessungen hat, insbesondere 4x4. Somit haben die Neuronen der nächsten Schicht Empfangsfelder in der exakten Größe dieser Kernel-Durchgänge. Wenn Sie jedoch Neuronen mit globalerem räumlichem Wissen benötigen oder wünschen (z. B. wenn ein wichtiges Merkmal nur in größeren Regionen definierbar ist), müssen Sie diese Schicht ein zweites Mal falten, um eine dritte Schicht zu erstellen, in der sich das effektive Empfangsfeld befindet einige Vereinigung der vorherigen Schichten rf.
Wenn Sie jedoch keine weiteren Ebenen hinzufügen möchten und / oder der Meinung sind, dass die weitergegebenen Informationen zu redundant sind (dh Ihre 3x3-Empfangsfelder in der zweiten Ebene enthalten nur eine "2x2" Menge an unterschiedlichen Informationen), können Sie diese verwenden ein erweiterter Filter. Lassen Sie uns der Klarheit halber extrem sein und sagen, wir werden einen 9x9 3-Dialed-Filter verwenden. Jetzt "umkreist" unser Filter den gesamten Eingang, sodass wir ihn überhaupt nicht verschieben müssen. Wir werden jedoch immer noch nur 3x3 = 9 Datenpunkte von der Eingabe x nehmen , typischerweise:
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]
Jetzt hat das Neuron in unserer nächsten Schicht (wir haben nur eine) Daten, die einen viel größeren Teil unseres Bildes "darstellen", und wenn die Daten des Bildes für benachbarte Daten hochredundant sind, haben wir möglicherweise die Daten erhalten gleiche Informationen und lernte eine äquivalente Transformation, aber mit weniger Schichten und weniger Parametern. Ich denke, innerhalb der Grenzen dieser Beschreibung ist es klar, dass wir, obwohl es als Resampling definiert werden kann, hier für jeden Kernel ein Downsampling durchführen .
Bruchteil oder transponiert oder "Entfaltung":
Diese Art ist im Herzen immer noch eine Faltung. Der Unterschied besteht wiederum darin, dass wir von einem kleineren Eingangsvolumen zu einem größeren Ausgangsvolumen wechseln werden. OP stellte keine Fragen zu Upsampling, daher spare ich diesmal ein wenig an Breite und gehe direkt zum entsprechenden Beispiel.
Nehmen wir in unserem früheren 9x9-Fall an, wir möchten jetzt ein Upsampling auf 11x11 durchführen. In diesem Fall haben wir zwei gängige Optionen: Wir können einen 3x3-Kernel und mit Schritt 1 nehmen und ihn mit 2-Padding über unseren 3x3-Eingang streichen, sodass unser erster Durchgang über der Region erfolgt [linkes Pad-2: 1, über Pad-2: 1] dann [linkes Pad-1: 2, über Pad-2: 1] und so weiter und so fort.
Alternativ können wir zusätzlich eine Auffüllung zwischen die Eingabedaten einfügen und den Kernel ohne so viel Auffüllung darüber streichen. Natürlich werden wir uns manchmal mehr als einmal mit genau denselben Eingabepunkten für einen einzelnen Kernel befassen. Hier scheint der Begriff "fraktioniert" vernünftiger zu sein. Ich denke, die folgende Animation (von hier entlehnt und (glaube ich) basierend auf dieser Arbeit) wird dazu beitragen, die Dinge zu klären, obwohl sie unterschiedliche Dimensionen haben. Die Eingabe ist blau, die weißen injizierten Nullen und Auffüllungen und die Ausgabe grün:
Natürlich beschäftigen wir uns mit allen Eingabedaten im Gegensatz zur Dilatation, bei der einige Regionen möglicherweise vollständig ignoriert werden oder nicht. Und da wir eindeutig mehr Daten haben als wir begonnen haben, "Upsampling".
Ich ermutige Sie, das ausgezeichnete Dokument, mit dem ich verlinkt habe, zu lesen, um eine fundiertere, abstraktere Definition und Erklärung der Transponierungsfaltung zu erhalten und um zu erfahren, warum die geteilten Beispiele illustrative, aber weitgehend unangemessene Formen für die tatsächliche Berechnung der dargestellten Transformation sind.
Obwohl beide das Gleiche zu tun scheinen, nämlich eine Ebene hochzusampeln, gibt es einen klaren Spielraum zwischen ihnen.
Zuerst sprechen wir über die erweiterte Faltung
Ich habe diesen schönen Blog zum obigen Thema gefunden. So wie ich es verstanden habe, ist dies eher eine umfassende Untersuchung der Eingabedatenpunkte . Oder das Empfangsfeld der Faltungsoperation erhöhen.
Hier ist ein erweitertes Faltungsdiagramm aus dem Papier .
Dies ist eher eine normale Faltung, hilft jedoch dabei, immer mehr globalen Kontext aus Eingabepixeln zu erfassen, ohne die Größe der Parameter zu erhöhen. Dies kann auch dazu beitragen, die räumliche Größe der Ausgabe zu erhöhen. Die Hauptsache hier ist jedoch, dass dies die Größe des Empfangsfeldes exponentiell mit der Anzahl der Schichten erhöht. Dies ist im Bereich der Signalverarbeitung sehr häufig.
Dieser Blog erklärt wirklich, was in der erweiterten Faltung neu ist und wie dies mit der normalen Faltung verglichen wird.
Blog: Dilated Convolutions und Kronecker Factored Convolutions
Jetzt werde ich erklären, was Entfaltung ist
Dies nennt man transponierte Faltung. Dies entspricht der Funktion, die wir für die Faltung bei der Rückausbreitung verwendet haben.
In Backprop verteilen wir einfach Gradienten von einem Neuron in der Ausgabe-Feature-Map auf alle Elemente in den Empfangsfeldern. Dann addieren wir auch Gradienten, bei denen sie mit denselben Empfangselementen zusammenfallen
Hier ist eine gute Ressource mit Bildern .
Die Grundidee ist also, dass die Entfaltung im Ausgaberaum funktioniert. Keine Eingabepixel. Es wird versucht, breitere räumliche Dimensionen in der Ausgabekarte zu erstellen. Dies wird in vollständig gefalteten neuronalen Netzen für die semantische Segmentierung verwendet .
Mehr von Deconvolution ist also eine lernbare Up-Sampling-Schicht.
Es wird versucht zu lernen, wie man ein Sample erstellt, während es mit dem endgültigen Verlust kombiniert wird
Dies ist die beste Erklärung, die ich für die Entfaltung gefunden habe. Vorlesung 13 in cs231 ab 21.21 Uhr .
quelle