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?

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.

Aktivierungsfunktionen:

  • Sigmoid Bildet WErte auf ab
  • ReLU Steiler als Sigmoid und Werte
  • tanh für verdeckte Schichten:
    • Sigmoid (binär) oder Softmax (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.


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) Tanh


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.


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.


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.


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.


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.


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.


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-Score


Frage 10: Nennen Sie drei beliebte Optimierungsalgorithmen, die in Keras verwendet werden können.