Warum konvolutieren, wenn Max Pooling das Bild sowieso nur herunterrechnen wird?


13

Die Idee, Filter anzuwenden, um so etwas wie Kanten zu identifizieren, ist eine ziemlich coole Idee.

Beispielsweise können Sie ein Bild von einer 7 aufnehmen. Mit einigen Filtern können Sie transformierte Bilder erhalten, die unterschiedliche Eigenschaften des Originalbilds betonen. Die ursprüngliche 7:

Bildbeschreibung hier eingeben

kann vom Netzwerk erlebt werden als:

Bildbeschreibung hier eingeben

Beachten Sie, wie jedes Bild eine andere Kante des Originals extrahiert hat 7.

Das ist alles großartig, aber sagen wir, die nächste Schicht in Ihrem Netzwerk ist eine Max-Pooling-Schicht.

Meine Frage ist im Allgemeinen, scheint das nicht ein bisschen übertrieben zu sein? Wir waren nur sehr vorsichtig und haben bewusst Kanten mithilfe von Filtern identifiziert - jetzt kümmern wir uns nicht mehr darum, da wir die Pixelwerte verdammt verdorben haben! Bitte korrigieren Sie mich, wenn ich falsch liege, aber wir sind von 25 x 25 auf 2 x 2 gestiegen! Warum gehen wir dann nicht gleich zu Max Pooling?

Als Erweiterung meiner Frage frage ich mich, was wohl passieren würde, wenn zufällig alle 4 Quadrate zufällig ein Pixel mit demselben Maximalwert haben. Das ist doch sicher kein seltener Fall, oder? Plötzlich sehen alle Ihre Trainingsbilder genau gleich aus.

Antworten:


15

Max Pooling tastet das Bild nicht herunter. Die soeben extrahierten Features (z. B. Kanten) werden heruntergerechnet. Dies bedeutet, dass Sie ungefähr wissen, wo sich diese Kanten oder andere Merkmale befinden. Oft ist dies genau das, was das Netzwerk für die Verallgemeinerung benötigt - um es zu klassifizieren, muss nicht bekannt sein, dass es eine vertikale Kante von 10,5 bis 10,20 gibt, sondern dass es eine ungefähr vertikale Kante von etwa 1/3 gibt linker Rand ca. 2/3 Bildhöhe.

Diese gröberen Kategorien von Features decken von Natur aus mehr Variationen im Eingabebild zu sehr geringen Kosten ab, und die Verkleinerung der Feature-Map ist ebenfalls ein netter Nebeneffekt, der das Netzwerk schneller macht.

Damit dies gut funktioniert, müssen Sie zunächst noch Features extrahieren, was beim maximalen Pooling nicht der Fall ist. Daher ist die Faltungsschicht erforderlich. Sie sollten feststellen, dass Sie das Originalbild (auf 14 x 14) verkleinern können, anstatt die erste Max-Pooling-Ebene zu verwenden, und dennoch eine ziemlich vernünftige Genauigkeit erzielen. Wie viel Pooling zu tun ist und wo diese Layer hinzugefügt werden müssen, ist ein weiteres Problem mit Hyperparametern beim Aufbau eines tiefen neuronalen Netzwerks.


5

Wir können wegen des convolution layerdazwischen liegenden nicht direkt von der Eingabeebene zum maximalen Pooling übergehen . Der Grund für die Faltung besteht darin, Merkmale zu extrahieren. Max Pooling analysiert die extrahierten Features. Wenn Sie glauben, dass Features aufgrund des direkten Sprungs von einer großen Matrix zu einer Max-Pooling-Ebene fehlen, können Sie weitere Faltungsebenen dazwischen hinzufügen, bis Sie mit einer Größe zufrieden zu sein scheinen ist kein Overkill.

Das Max-Pooling, eine Form des Downsamplings, wird verwendet, um die wichtigsten Merkmale zu identifizieren. Es können aber auch Durchschnittspooling und verschiedene andere Techniken verwendet werden. Normalerweise arbeite ich mit Text und nicht mit Bildern. Für mich sind die Werte normalerweise nicht alle gleich. Aber wenn sie es auch sind, würde es keinen großen Unterschied machen, da es nur den größten Wert auswählt.

Ein sehr gutes Verständnis aus dem Wiki -The intuition is that once a feature has been found, its exact location isn't as important as its rough location relative to other features. The function of the pooling layer is to progressively reduce the spatial size of the representation to reduce the amount of parameters and computation in the network, and hence to also control overfitting. It is common to periodically insert a pooling layer in-between successive conv layers in a CNN architecture. The pooling operation provides a form of translation invariance.


Kannst du den letzten Satz erklären The pooling operation provides a form of translation invariance?
HelloWorld

@StudentT Dies bedeutet, dass die Ausgabe des Max-Pools ungefähr gleich ist, wenn die Funktion an einer beliebigen Stelle im Bild erkannt wird. Bewegen Sie das Objekt in dem Bild, das die Funktion aktiviert, und eine andere Eingabe in den Max-Pool ist maximal, aber die Ausgabe des Max-Pools sollte gleich sein.
Mrmcgreg

@mrmcgreg Ich glaube, das gilt für globales Pooling, nicht für maximales Pooling. Max-Pooling bietet eine Art Invarianz für lokale Übersetzungen innerhalb der Pool-Region (z. B. 2x2). Dies ermöglicht einige Jitter in den Funktionen.
geometrikal

0

Convolution filtert das Bild im Grunde genommen mit einem kleineren Pixelfilter, um die Größe des Bildes zu verringern, ohne die Beziehung zwischen den Pixeln (Parametern des Netzwerks) zu verlieren. Pooling reduziert auch die räumliche Größe durch Extrahieren von Max, Avg oder Summe der Pixel auf die Größe des Filters kann jedoch ein wichtiger Parameter in dem Prozess fehlen, den die Faltung wieder erreicht, indem die Größe nicht signifikant verringert wird.

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.