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:
kann vom Netzwerk erlebt werden als:
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.
quelle
The pooling operation provides a form of translation invariance
?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.
quelle