Dropout und Padding, um die Leistung und Effizienz des Modells zu verbessern.

Dropout

  • reduziert die Overfitting, indem es bei jedem Trainingsschritt zufällig ausgewählte Verbindung zwischen Neuronen temporär kappt.
  • so verlassen sich neuronale Netze nicht mehr auf bestimmte Pfade
  • das führt zur besseren Vorhrteilung der Vorhersagen und robusteren Ergebnissen
  • Selbst festlegen, wie viele Verbindungen jeweisl verwolfen - Tpisch sind ca. 30%
...
model.add(Droput(0.25))
...
# Man kann mehrere Dropout-Layer haben
model.add(Droput(0.25))
...

Durch Dropout kann man das Ergebnis leicht verbessern

Infos über Netze abfragen

  • Visualisierung der Layer
import visualkeras
visualkeras.layerd_view(model)
  • Infos über den Ablauf
from tensorflow.keras.utils import plot_model
plot_model(model, to_file='model_plot.png', show_shapes=True, show_layer_names=True)

Ausgabe: 1. Conv2d 2. Max Ppoling 3. Droput 4. Flatten 5. Dense 6. Droput 7. Dense

Padding

  • Informationsverlust an den Rändern des Bilders bei der Faltung verhindern

Funktionsweise:

  • Hinzufügen von Pixeln (typisch mit Wert 0) an den Bildrändern vor der Faltung.
  • Verhindert, dass Filter an den Rändern unvollständig angewendet werden.
MaxPooling

Vorteil:

  • Die räumliche Dimension des Bildes bleibt erhalten.
  • Alle Pixel werden gleichmäßig verarbeitet, ohne Informationsverlust an den Rändern.

Bedeutung:

  • Besonders wichtig bei großen Filtern oder mehreren Faltungsschichten, um Informationsverlust an den Rändern zu vermeiden.

Zusammenfassend lässt sich sagen:**

  • Dropout verbessert die Generalisierungsfähigkeit von CNNs, indem es Overfitting reduziert.
  • Padding verhindert Informationsverlust an den Rändern des Bildes bei der Faltung und ermöglicht eine gleichmäßigere Verarbeitung aller Pixel.

Quizfragen zu Dropout und Padding

Frage 1: Welche der folgenden Aussagen beschreibt die Funktionsweise von Dropout korrekt?

a) Dropout entfernt zufällig ausgewählte Pixel aus dem Eingabebild.
b) Dropout deaktiviert zufällig ausgewählte Neuronen während des Trainings.
c) Dropout reduziert die Größe der Filter im Convolutional Layer.
d) Dropout erhöht die Lernrate des Optimierers.


Frage 2: Was ist der Hauptzweck von Padding in Convolutional Neural Networks?

a) Verhindern von Informationsverlust an den Rändern des Bildes.
b) Reduzieren der Anzahl der Parameter im Modell.
c) Beschleunigen des Trainingsprozesses.
d) Erhöhen der Genauigkeit des Modells.


Frage 3: Welche der folgenden Aussagen zu Dropout ist FALSCH?

a) Dropout kann die Generalisierungsfähigkeit des Modells verbessern.
b) Dropout reduziert die Abhängigkeit des Netzwerks von einzelnen Neuronen.
c) Dropout erhöht die Anzahl der trainierbaren Parameter im Modell.
d) Dropout kann als eine Form der Regularisierung betrachtet werden.


Frage 4: Welcher der folgenden Fälle ist ein gutes Beispiel für die Anwendung von Padding?

a) Wenn ein kleines Bild mit einem kleinen Filter gefaltet wird.
b) Wenn ein großes Bild mit einem großen Filter gefaltet wird.
c) Wenn die Anzahl der Trainingsdaten sehr groß ist.
d) Wenn die gewünschte Ausgabe des Modells ein Vektor ist.


Frage 5: Wie beeinflusst Dropout die Leistung eines CNN während des Trainings und der Vorhersage?

a) Dropout beschleunigt sowohl das Training als auch die Vorhersage.
b) Dropout verlangsamt das Training, beschleunigt aber die Vorhersage.
c) Dropout verlangsamt das Training, hat aber keinen Einfluss auf die Geschwindigkeit der Vorhersage.
d) Dropout beschleunigt das Training, verlangsamt aber die Vorhersage.