Über CNN, Kernel und Skalierungs- / Rotationsinvarianz


17

Ich habe ein paar Fragen, die mich bezüglich des CNN verwirren.
1) Die mit CNN extrahierten Merkmale sind skalierungs- und drehungsinvariant.
2) Die Kerne, die wir zur Faltung mit unseren Daten verwenden, sind bereits in der Literatur definiert? Was für ein Kernel sind das? ist es für jede Anwendung anders?

Antworten:


17

1) Die mit CNN extrahierten Merkmale sind skalierungs- und drehungsinvariant.

Ein Feature an sich in einem CNN ist nicht skalierungs- oder drehungsinvariant. Weitere Informationen finden Sie unter Deep Learning. Ian Goodfellow und Yoshua Bengio und Aaron Courville. 2016: http://egrcc.github.io/docs/dl/deeplearningbook-convnets.pdf ; http://www.deeplearningbook.org/contents/convnets.html :

Die Faltung ist naturgemäß nicht mit anderen Transformationen vergleichbar, wie z. B. Änderungen des Maßstabs oder der Drehung eines Bildes. Andere Mechanismen sind erforderlich, um diese Art von Transformationen zu handhaben.

Es ist die maximale Poolebene, die solche Invarianten einführt:

Bildbeschreibung hier eingeben

2) Die Kerne, die wir zur Faltung mit unseren Daten verwenden, sind bereits in der Literatur definiert? Was für ein Kernel sind das? ist es für jede Anwendung anders?

Die Kerne werden in der Trainingsphase des ANN gelernt.


Ich kann nicht mit den Details in Bezug auf den aktuellen Stand der Technik sprechen, aber zum Thema Punkt 1 fand ich dies interessant.
GeoMatt22

@Franck 1) Das heißt, wir unternehmen keine besonderen Schritte, um die Systemrotation invariant zu machen? und wie wäre es mit der Skaleninvariante, ist es möglich, die Skaleninvariante aus dem maximalen Pooling zu erhalten?
Aadnan Farooq A

2) Die Kernel sind die Features. Das habe ich nicht verstanden. [Here] ( wildml.com/2015/11/… ) Sie haben erwähnt, dass "Beispielsweise in der Bildklassifizierung eine CNN lernen kann, Kanten von rohen Pixeln in der ersten Ebene zu erkennen, und dann mit den Kanten einfache Formen in der Ebene zu erkennen zweite Ebene, und verwenden Sie diese Formen, um Features auf höherer Ebene, z. B. Gesichtsformen in höheren Ebenen, abzuschrecken. Die letzte Ebene ist dann ein Klassifikator, der diese Features auf höherer Ebene verwendet. "
Aadnan Farooq A

2
Beachten Sie, dass das Pooling, von dem Sie sprechen, als Cross-Channel-Pooling bezeichnet wird und nicht die Art von Pooling ist, auf die normalerweise Bezug genommen wird, wenn von "Max-Pooling" gesprochen wird, das nur über räumliche Dimensionen (nicht über verschiedene Eingangskanäle) poolt ).
Soltius

1
Bedeutet dies, dass ein Modell ohne Max-Pool-Layer (die meisten aktuellen SOTA-Architekturen verwenden kein Pooling) vollständig skalierungsabhängig ist?
Shubhamgoel27

5

Ich denke, es gibt ein paar Dinge, die dich verwirren.

x[n]h[n]x[n]h[n]y[n]=(xh)[n]

y[n]=m=-x[m] h[n-m]

Das Obige gilt für eindimensionale Signale, das Gleiche gilt jedoch für Bilder, bei denen es sich nur um zweidimensionale Signale handelt. In diesem Fall lautet die Gleichung:

ichnew[r,c]=u=-v=-ichÖld[u,v] k[r-u,c-v]

Bildlich ist das, was passiert:

Bildbeschreibung hier eingeben

In jedem Fall ist zu beachten, dass der Kernel während des Trainings eines Deep Neural Network (DNN) tatsächlich gelernt hat . Ein Kernel wird einfach das sein, mit dem Sie Ihre Eingaben zusammenführen. Der DNN lernt den Kernel so, dass bestimmte Facetten des Bildes (oder des vorherigen Bildes) hervorgehoben werden, die dazu beitragen, den Verlust Ihres Ziels zu verringern.

Dies ist der erste wichtige Punkt, den man verstehen sollte: Traditionell haben die Leute Kernel entworfen , aber beim Deep Learning lassen wir das Netzwerk entscheiden, welcher Kernel der beste sein soll. Was wir jedoch spezifizieren, sind die Kernel-Dimensionen. (Dies wird als Hyperparameter bezeichnet, z. B. 5x5 oder 3x3 usw.).


Gute Erklärung. Können Sie bitte den ersten Teil der Frage beantworten? Über die CNN ist Skalierung / Rotation Invariant?
Aadnan Farooq A

1
@AadnanFarooqA Ich werde es heute Abend tun.
Tarin Ziyaee

2

Viele Autoren, darunter Geoffrey Hinton (der Capsule net vorschlägt), versuchen das Problem qualitativ zu lösen. Wir versuchen, dieses Problem quantitativ anzugehen. Wenn alle Faltungskerne im CNN symmetrisch sind (Dieder-Symmetrie der Ordnung 8 [Dih4] oder 90-Grad-Inkrement-Rotationssymmetrie usw.), würden wir eine Plattform für den Eingabevektor und den resultierenden Vektor auf jeder verborgenen Faltungsschicht bereitstellen, die gedreht werden sollen synchron mit der gleichen symmetrischen Eigenschaft (dh Dih4 oder 90-Inkrement-Rotationssymmetrie, et al.). Zusätzlich wäre der resultierende Wert auf jedem Knoten quantitativ identisch und würde dazu führen, dass der CNN-Ausgangsvektor für jeden Filter derselbe ist (dh vollständig verbunden ist, sich aber dasselbe symmetrische Muster teilt) auch. Ich nannte es transformationsidentisches CNN (oder TI-CNN-1). Es gibt andere Methoden, die auch transformationsidentische CNN unter Verwendung symmetrischer Eingaben oder Operationen innerhalb der CNN (TI-CNN-2) konstruieren können. Basierend auf dem TI-CNN kann ein getriebegleicher CNN (GRI-CNN) aus mehreren TI-CNN aufgebaut werden, wobei der Eingangsvektor um einen kleinen Schrittwinkel gedreht wird. Darüber hinaus kann ein zusammengesetztes quantitativ identisches CNN auch konstruiert werden, indem mehrere GRI-CNNs mit verschiedenen transformierten Eingangsvektoren kombiniert werden.

  1. "Transformationsidentische und invariante Faltungs-Neuronale Netze durch symmetrische Elementoperatoren" https://arxiv.org/abs/1806.03636 (Juni 2018)

  2. "Transformationsidentische und invariante Faltungs-Neuronale Netze durch Kombination von symmetrischen Operationen oder Eingabevektoren" https://arxiv.org/abs/1807.11156 (Juli 2018)

  3. "Rotationsidentische und invariante faltungsorientierte neuronale Netzwerksysteme" https://arxiv.org/abs/1808.01280 (August 2018)


-1

Ich denke, Max Pooling kann Translations- und Rotationsinvarianzen nur für Translations- und Rotationsschritte reservieren, die kleiner als die Schrittweite sind. Wenn größer, keine Invarianz


1
Könntest du ein bisschen expandieren? Wir empfehlen, die Antworten auf dieser Website etwas detaillierter zu gestalten (im Moment sieht das eher nach einem Kommentar aus). Vielen Dank!
Antoine
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.