Die Faltungsschicht ist das Kernelement eines CNN, wo der Großteil der Berechnungen erfolgt. Sie benötigt einige Komponenten: Eingabedaten, einen Filter und eine Merkmalskarte. Nehmen wir an, dass es sich bei der Eingabe um ein Farbbild in Form einer 3D-Pixelmatrix handelt, es also drei Dimensionen (Höhe, Breite und Tiefe) aufweist. Jede Dimension entspricht einem RGB-Farbraum. Außerdem gibt es einen Merkmalsdetektor, der auch als Kernel oder Filter bezeichnet wird. Er bewegt sich über die rezeptiven Felder des Bildes und prüft, ob das jeweilige Merkmal vorhanden ist. Dieser Prozess wird mathematisch als Faltung bezeichnet.
Der Merkmalsdetektor ist ein 2D-Array von Gewichtungen, das einen Teil des Bildes darstellt. Die Größe eines Merkmalsdetektors kann zwar variieren, doch in der Regel ist die Filtergröße eine 3x3-Matrix, die dann auch die Größe des rezeptiven Feldes bestimmt. Der Filter wird auf einen Bildbereich angewendet und aus den Eingabepixeln und dem Filter wird dann ein Skalarprodukt berechnet. Dieses Skalarprodukt wird in ein Ausgabearray eingespeist. Danach wird der Filter gemäß der Schrittweite weitergeschoben und der Vorgang wiederholt, bis der Kernel das gesamte Bild erfasst hat. Die endgültige Ausgabe aus den mit Eingabe und Filter berechneten Skalarprodukten wird als Feature-Map (Merkmalskarte), Aktivierungskarte oder Faltungsmerkmal bezeichnet.
Beachten Sie, dass die Gewichtungen im Merkmalsdetektor unveränderlich sind, während er sich über das Bild bewegt. Dies wird auch als Parameter-Sharing bezeichnet. Einige Parameter, wie die Gewichtungswerte, werden während des Trainings durch Backpropagation („Fehlerrückführung“) und Gradientenverfahren zur Optimierung angepasst. Es gibt jedoch drei Hyperparameter, die die Volumengröße der Ausgabe beeinflussen und die eingestellt sein müssen, bevor das Training des neuronalen Netzes beginnt. Diese Hyperparametrer sind folgende:
1. Die Anzahl der Filter beeinflusst die Tiefe der Ausgabe. Beispielsweise ergeben drei verschiedene Filter drei unterschiedliche Merkmalskarten, was einer Tiefe von drei entspricht.
2. Schrittweite (Stride) ist die Entfernung oder Anzahl der Pixel, die der Kernel über der Eingabematrix zurücklegt. Ein Schrittweite von zwei oder mehr ist zwar selten, führt aber zu einer kleineren Ausgabe.
3. Zero-Padding oder Auffüllen mit Nullen wird dann angewendet, wenn Filter und Eingabebild nicht zusammenpassen. Dadurch werden alle Elemente, die außerhalb der Eingabematrix liegen, auf Null gesetzt, wodurch eine größere oder gleich große Ausgabe erzeugt wird. Es gibt drei Arten des Padding:
- Valid: Dies wird auch als „no padding“ bezeichnet. In diesem Fall wird die letzte Faltung gelöscht, wenn die Dimensionen nicht übereinstimmen.
- Same: Dieses Padding stellt sicher, dass die Ausgabe- und Eingabeschicht gleich groß sind.
- Full: Diese Art des Padding vergrößert die Ausgabe, da die Ränder der Eingabe um Nullen erweitert werden.
Nach jeder Faltung wird eine ReLU-Transformation (Rectified Linear Unit) an der Merkmalskarte ausgeführt, um Nichtlinearität in das Modell einzuführen.