Neuronale Netze in Keras unterteilen sich in zwei Klassifikationen.
Binäre Klassifikation
- Ausgabeschicht mit einem Neuron
- Sigmoid als Aktivierungsfunktion
Multiclass-Klassifikation
- Ausgabeschicht mit so vielen Neuronen wie Klassen (
Klassen = Neuronen
) - Softmax Als Aktivierungsfunktion
- One-Hot-Encoding
Schadensfunktion
Es muss eine Schadensfunktino (loss) angegeben werden, diese wird minimiert.
Misst den Fehler des Modells, Ziel ist Minimierung.
binary_crossentropy
für binäre Klassifikation -- Einteilung in zwei Klassen z.B. Ja/Nein
categoria_corssentropy
für multiclass Klassifikation- Einteilung in mehrere Klassen (z.B. verschiedene Tierarten)
Bewertung von Modellen
Fragen: - Wie gut ist das Modell in Vorhersagen?
- Trefferquote (Accuracy):
-
Auf Testdaten ist das Modell nicht 100%ige aussagekräftig.
-
- Konfusionsmatrix
- Spezifität
- Balancierte
Neuronales Netz konfigurieren (Keras)
- Struktur des Netzes selbst festlegen
- Dense Layer (Fully Connected):
- Jeder Knoten einer Schicht ist mit jedem Knoten der nächsten Schicht verbunden.
- Convolutional Layer:
- Verwendet Filter zur Merkmalsextraktion in Bildern.
- Max Pooling Layer:
- Reduziert Dimensionen, indem der maximale Wert in einem Bereich ausgewählt wird.
- Flatten Layer:
- Wandelt mehrdimensionale Daten in ein eindimensionales Array um.
- Dense Layer (Fully Connected):
Aktivierungsfunktionen:
Sigmoid
→ Bildet WErte auf abReLU
→ Steiler als Sigmoid und Wertetanh
für verdeckte Schichten:Sigmoid (binär)
oderSoftmax (Multiclass)
für Ausgabeschicht.
Negative Werte auf 0 stellen
,Positive unverändert.
Optimierung
- Anpassparkeit der Gewichte der Neuronen an den Daten
- Optimizer: sgd, rmsprop, adam.
- Anzahl der Trainingsepochen: Bestimmt durch die Veränderung der Loss-Funktion.
- Hyperparameter: Beeinflussen Struktur und Training, z. B. Lernrate, Anzahl der Schichten und Neuronen.
Datenaufbereitung
- Skalierung: Eingabedaten werden auf einen ähnlichen Wertebereich skaliert.
- One-Hot-Encoding: Umwandlung nominaler Daten in numerische Daten mit separaten Spalten.
- Formatierung für Bilderkennung: Anpassung der Bildformate an das jeweilige Netzwerk (z. B. VGG16).
Python
Binäre Klassifkation
from tensorflow.keras.models import Sequential
from tensorflow.keras.layers import Input, Dense
# Mit Sequential erzeugt man ein Modell, dem man dann einzelne Layer hinzufügen kann
model = Sequential()
# Inputlayer mit Shape der Eingabedaten hinzufügen
model.add(Input(shape=(784,)))
# Dense Layer sind "fully Connected". Allae Neuronen sind mir allen Inputs und Outputs verbunden.
model.add(Dense(100, activation="sigmoid"))
model.add(Dense(1, activation="sigmoid"))
# sgd = stochatic gradient descent
# Der Parameter metrics nimmt eine Liste von Parametern, die schon während des Trainings berechnet werden
model.compile(optimizer="sgd", loss="binary_crossentropy", metrics=["accuracy"])
Neuronales Netz trainieren.
model.fit(X_train, y_train, epochs = 10, batch_size = 600, verbose = 1)
Multiclass Klassifikation
Nur Schadensfuntkion anpassen:
# sgd, rmsprop, adam.
model.compile(optimizer="sgd", loss="categorical_crossentropy", metrics=['accuracy'])
Neuronales Netz trainieren.
model.fit(X_train, y_train, epochs = 100, batch_size = 600, verbose = 1)
Quiz: Neuronale Netze in Keras
Dieses Quiz testet dein Wissen über neuronale Netze und deren Implementierung in Keras.
Frage 1: Welche der folgenden Aussagen über Neuronale Netze in Keras ist FALSCH?
a) Keras ist eine High-Level-Bibliothek, die das Erstellen und Trainieren von Neuronalen Netzen vereinfacht.
b) In Keras muss die Struktur des Neuronalen Netzes, wie die Anzahl der Schichten und Neuronen, manuell festgelegt werden.
c) Keras bietet nur eine begrenzte Auswahl an Aktivierungsfunktionen, Optimizern und Schichten.
d) Keras kann die Rechenleistung von GPUs nutzen, um das Training zu beschleunigen.Lösung
c) Keras bietet nur eine begrenzte Auswahl an Aktivierungsfunktionen, Optimizern und Schichten.
Frage 2: Welche Aktivierungsfunktion eignet sich am besten für die Ausgabeschicht eines Neuronalen Netzes, das handgeschriebene Ziffern (0-9) klassifizieren soll?
a) Sigmoid
b) ReLU
c) Softmax
d) TanhLösung
c) Softmax
Frage 3: Was ist der Zweck eines Max Pooling Layers in einem Convolutional Neural Network (CNN)?
a) Erhöht die Dimensionalität der Daten, um mehr Informationen zu speichern.
b) Reduziert die Dimensionalität der Daten und extrahiert dominante Merkmale.
c) Verhindert Überanpassung, indem Neuronen zufällig deaktiviert werden.
d) Wendet Filter an, um Merkmale in Bildern zu extrahieren.Lösung
b) Reduziert die Dimensionalität der Daten und extrahiert dominante Merkmale.
Frage 4: Was ist ein Model Zoo im Kontext von Transfer Learning?
a) Ein Datensatz mit Bildern von Tieren.
b) Eine Sammlung vortrainierter Machine-Learning-Modelle, die direkt verwendet oder angepasst werden können.
c) Ein spezieller Typ von neuronalem Netzwerk für die Verarbeitung von Bildern.
d) Ein Algorithmus zur Optimierung der Gewichte eines Neuronalen Netzes.Lösung
b) Eine Sammlung vortrainierter Machine-Learning-Modelle, die direkt verwendet oder angepasst werden können.
Frage 5: Welches Problem kann durch die Verwendung von Dropout in einem Neuronalen Netz behoben werden?
a) Das Problem der verschwindenden Gradienten.
b) Das Problem der explodierenden Gradienten.
c) Überanpassung an die Trainingsdaten.
d) Langsame Konvergenz des Optimierungsalgorithmus.Lösung
c) Überanpassung an die Trainingsdaten.
Frage 6: Welche der folgenden Aussagen beschreibt den Zweck von One-Hot-Encoding bei der Datenaufbereitung für Neuronale Netze?
a) Skaliert die Eingabedaten auf einen ähnlichen Bereich, um die Leistung des Netzes zu verbessern.
b) Wandelt kategorische Daten in ein numerisches Format um, das von Neuronalen Netzen verarbeitet werden kann.
c) Reduziert die Dimensionalität der Daten, um den Rechenaufwand zu verringern.
d) Extrahiert Merkmale aus Bildern, um die Klassifizierung zu vereinfachen.Lösung
b) Wandelt kategorische Daten in ein numerisches Format um, das von Neuronalen Netzen verarbeitet werden kann.
Frage 7: Was ist die "Loss-Funktion" in einem Neuronalen Netz?
a) Ein Maß für die Genauigkeit des Modells auf den Testdaten.
b) Ein Maß für den Fehler des Modells während des Trainings.
c) Ein Algorithmus zur Anpassung der Gewichte des Netzes.
d) Eine Aktivierungsfunktion, die die Ausgabe eines Neurons bestimmt.Lösung
b) Ein Maß für den Fehler des Modells während des Trainings.
Frage 8: Welche der folgenden Aussagen über die Konfusionsmatrix ist RICHTIG?
a) Sie zeigt die Anzahl der richtig und falsch klassifizierten Datenpunkte für jede Klasse.
b) Sie ist nur für binäre Klassifikationsprobleme relevant.
c) Sie kann nicht verwendet werden, um die Sensitivität und Spezifität eines Modells zu berechnen.
d) Sie ist ein alternatives Maß für die Genauigkeit des Modells.Lösung
a) Sie zeigt die Anzahl der richtig und falsch klassifizierten Datenpunkte für jede Klasse.
Frage 9: Welche der folgenden Metriken ist besonders wichtig, wenn es darum geht, alle positiven Fälle in einem Datensatz zu erkennen?
a) Genauigkeit
b) Spezifität
c) Sensitivität
d) F1-ScoreLösung
c) Sensitivität
Frage 10: Nennen Sie drei beliebte Optimierungsalgorithmen, die in Keras verwendet werden können.
Lösung
“sgd”, “rmsprop”, “adam”