Die Faltungsoperation ist, einfach ausgedrückt, eine Kombination eines elementweisen Produkts zweier Matrizen. Solange diese beiden Matrizen in ihren Dimensionen übereinstimmen, sollte es kein Problem geben und ich kann die Motivation hinter Ihrer Anfrage verstehen.
A.1. Die Absicht der Faltung besteht jedoch darin, die Quelldatenmatrix (das gesamte Bild) in Form eines Filters oder Kernels zu codieren. Insbesondere versuchen wir, die Pixel in der Nachbarschaft von Anker- / Quellpixeln zu codieren. Schauen Sie sich die folgende Abbildung an:
Normalerweise betrachten wir jedes Pixel des Quellbilds als Anker- / Quellpixel, müssen dies jedoch nicht tun. Tatsächlich ist es nicht ungewöhnlich, einen Schritt einzuschließen, bei dem Anker- / Quellpixel durch eine bestimmte Anzahl von Pixeln getrennt sind.
Okay, was ist das Quellpixel? Dies ist der Ankerpunkt, an dem der Kern zentriert ist, und wir codieren alle benachbarten Pixel, einschließlich des Anker- / Quellpixels. Da der Kernel symmetrisch geformt ist (nicht symmetrisch in den Kernelwerten), gibt es auf allen Seiten (4-Konnektivität) des Ankerpixels die gleiche Anzahl (n) von Pixeln. Unabhängig von dieser Anzahl von Pixeln beträgt die Länge jeder Seite unseres symmetrisch geformten Kernels 2 * n + 1 (jede Seite des Ankers + das Ankerpixel), und daher haben Filter / Kernel immer eine ungerade Größe.
Was wäre, wenn wir uns dazu entschließen, mit der Tradition zu brechen und asymmetrische Kernel zu verwenden? Sie würden Aliasing-Fehler erleiden, und das tun wir nicht. Wir betrachten das Pixel als die kleinste Entität, dh es gibt hier kein Subpixel-Konzept.
A.2 Das Randproblem wird mit verschiedenen Ansätzen gelöst: Einige ignorieren es, andere füllen es mit Nullen auf, andere spiegeln es wider. Wenn Sie keine inverse Operation, dh Dekonvolution, berechnen und nicht an einer perfekten Rekonstruktion des Originalbilds interessiert sind, ist es Ihnen aufgrund des Randproblems egal, ob Sie Informationen verlieren oder Rauschen einspeisen. In der Regel werden durch die Pooling-Operation (durchschnittliches Pooling oder maximales Pooling) Ihre Grenzartefakte ohnehin entfernt. Sie können also einen Teil Ihres 'Eingabefelds' ignorieren, Ihre Pooling-Operation erledigt dies für Sie.
-
Zen der Faltung:
Im Bereich der Signalverarbeitung der alten Schule gab es, wenn ein Eingangssignal gefaltet oder durch ein Filter geleitet wurde, keine Möglichkeit, a-prior zu beurteilen, welche Komponenten der gefalteten / gefilterten Antwort relevant / informativ waren und welche nicht. Infolgedessen bestand das Ziel darin, (alle) Signalkomponenten in diesen Transformationen zu erhalten.
Diese Signalkomponenten sind Informationen. Einige Komponenten sind informativer als andere. Der einzige Grund dafür ist, dass wir daran interessiert sind, Informationen auf höherer Ebene zu extrahieren. Informationen zu einigen semantischen Klassen. Dementsprechend können die Signalkomponenten, die nicht die Informationen liefern, an denen wir speziell interessiert sind, entfernt werden. Daher können wir im Gegensatz zu herkömmlichen Dogmen über Faltung / Filterung die Faltungsreaktion nach Belieben bündeln / beschneiden. Wir möchten dies tun, indem wir konsequent alle Datenkomponenten entfernen, die nicht zur Verbesserung unseres statistischen Modells beitragen.