Verwenden von Metriken für Deep Learning mit Keras in Python

Verwenden von Metriken für Deep Learning mit Keras in Python

Die Keras-Bibliothek bietet eine Möglichkeit zum Berechnen und Berichten einer Reihe von Standardmetriken beim Trainieren von Deep-Learning-Modellen.

Keras bietet nicht nur Standardmetriken für Klassifizierungs- und Regressionsprobleme, sondern ermöglicht Ihnen auch, Ihre eigenen benutzerdefinierten Metriken zu definieren und zu melden, wenn Sie Deep-Learning-Modelle trainieren. Dies ist besonders nützlich, wenn Sie ein Leistungsmaß verfolgen möchten, das die Fähigkeiten Ihres Modells während des Trainings besser erfasst.

In diesem Lernprogramm erfahren Sie, wie Sie die integrierten Metriken verwenden und wie Sie Ihre eigenen Metriken definieren und verwenden, wenn Sie Deep-Learning-Modelle in Keras trainieren.

Nach Abschluss dieses Tutorials wissen Sie:

  • Wie Keras-Metriken funktionieren und wie Sie sie beim Training Ihrer Modelle verwenden können.
  • Verwendung von Regressions- und Klassifizierungsmetriken in Keras anhand von Beispielen.
  • So definieren und verwenden Sie Ihre eigene benutzerdefinierte Metrik in Keras anhand eines Beispiels.

Starten Sie Ihr Projekt mit meinem neuen Buch Deep Learning With Python, einschließlich Schritt-für-Schritt-Anleitungen und das Python-Quellcode Dateien für alle Beispiele.

Lass uns anfangen.

  • Update Jan / 2020: Aktualisierte API für Keras 2.3 und TensorFlow 2.0.
Metriken und Verwendung benutzerdefinierter Metriken für Deep Learning mit Keras in Python

Metriken und Verwendung benutzerdefinierter Metriken für Deep Learning mit Keras in Python
Foto von Indi Samarajiva, einige Rechte vorbehalten.

Tutorial Übersicht

Dieses Tutorial ist in 4 Teile unterteilt. Sie sind:

  1. Keras-Metriken
  2. Keras-Regressionsmetriken
  3. Keras-Klassifizierungsmetriken
  4. Benutzerdefinierte Metriken in Keras

Keras-Metriken

Mit Keras können Sie die Metriken auflisten, die während des Trainings Ihres Modells überwacht werden sollen.

Sie können dies tun, indem Sie das “MetrikenArgument und Bereitstellung einer Liste von Funktionsnamen (oder Funktionsnamen-Aliasnamen) für die kompilieren() Funktion auf Ihrem Modell.

Zum Beispiel:

Die spezifischen Metriken, die Sie auflisten, können die Namen von Keras-Funktionen sein (z mittlere quadratische Fehler) oder String-Aliase für diese Funktionen (wie 'mse').

Metrikwerte werden am Ende jeder Epoche im Trainingsdatensatz aufgezeichnet. Wenn auch ein Validierungsdatensatz bereitgestellt wird, wird die aufgezeichnete Metrik auch für den Validierungsdatensatz berechnet.

Alle Metriken werden in ausführlicher Ausgabe und im Verlaufsobjekt gemeldet, das vom Aufruf von zurückgegeben wurde passen() Funktion. In beiden Fällen wird der Name der Metrikfunktion als Schlüssel für die Metrikwerte verwendet. Bei Metriken für den Validierungsdatensatz wird dieval_Das Präfix wird dem Schlüssel hinzugefügt.

Sowohl Verlustfunktionen als auch explizit definierte Keras-Metriken können als Trainingsmetriken verwendet werden.

Keras-Regressionsmetriken

Unten finden Sie eine Liste der Metriken, die Sie in Keras für Regressionsprobleme verwenden können.

  • Mittlere quadratische Fehler: mean_squared_error, MSE oder mse
  • Mittlerer absoluter Fehler: mean_absolute_error, MAE, mae
  • Mittlerer absoluter prozentualer Fehler: mean_absolute_percentage_error, MAPE, mape
  • Kosinus Nähe: cosine_proximity, cosine

Das folgende Beispiel zeigt diese 4 integrierten Regressionsmetriken für ein einfaches erfundenes Regressionsproblem.

Hinweis: Ihre Ergebnisse können aufgrund der stochastischen Natur des Algorithmus oder des Bewertungsverfahrens oder aufgrund von Unterschieden in der numerischen Genauigkeit variieren. Führen Sie das Beispiel einige Male aus und vergleichen Sie das durchschnittliche Ergebnis.

Wenn Sie das Beispiel ausführen, werden die Metrikwerte am Ende jeder Epoche gedruckt.

Anschließend wird ein Liniendiagramm der 4 Metriken über die Trainingsepochen erstellt.

Liniendiagramm der integrierten Keras-Metriken für die Regression

Liniendiagramm der integrierten Keras-Metriken für die Regression

Beachten Sie, dass die Metriken mithilfe von Zeichenfolgenaliaswerten angegeben wurden [‘mse‘, ‘mae‘, ‘mape‘, ‘cosine‘] und wurden unter Verwendung ihres erweiterten Funktionsnamens als Schlüsselwerte für das Verlaufsobjekt referenziert.

Wir könnten die Metriken auch unter Verwendung ihres erweiterten Namens wie folgt angeben:

Wir können die Funktionsnamen auch direkt angeben, wenn sie in das Skript importiert werden.

Sie können die Verlustfunktionen auch als Metriken verwenden.

Beispielsweise könnten Sie den mittleren quadratischen logarithmischen Fehler verwenden (mean_squared_logarithmic_error, MSLE oder msle) Verlustfunktion als Metrik wie folgt:

Keras-Klassifizierungsmetriken

Unten finden Sie eine Liste der Metriken, die Sie in Keras bei Klassifizierungsproblemen verwenden können.

  • Binäre Genauigkeit: binary_accuracy, gem
  • Kategoriale Genauigkeit: kategoriale Genauigkeit, gem
  • Spärliche kategoriale Genauigkeit: sparse_categorical_accuracy
  • Top k Kategoriale Genauigkeit: top_k_categorical_accuracy (erfordert die Angabe eines ak-Parameters)
  • Sparse Top k Kategoriale Genauigkeit: sparse_top_k_categorical_accuracy (erfordert die Angabe eines ak-Parameters)

Genauigkeit ist etwas Besonderes.

Unabhängig davon, ob es sich bei Ihrem Problem um ein binäres oder ein Mehrklassenklassifizierungsproblem handelt, können Sie Folgendes angeben:Richtigkeit'Metrik, um über die Genauigkeit zu berichten.

Im Folgenden finden Sie ein Beispiel für ein Problem mit der binären Klassifizierung mit der gezeigten integrierten Genauigkeitsmetrik.

Hinweis: Ihre Ergebnisse können aufgrund der stochastischen Natur des Algorithmus oder des Bewertungsverfahrens oder aufgrund von Unterschieden in der numerischen Genauigkeit variieren. Führen Sie das Beispiel einige Male aus und vergleichen Sie das durchschnittliche Ergebnis.

Wenn Sie das Beispiel ausführen, wird die Genauigkeit am Ende jeder Trainingsepoche angegeben.

Ein Liniendiagramm der Genauigkeit über die Epoche wird erstellt.

Liniendiagramm der integrierten Keras-Metriken zur Klassifizierung

Liniendiagramm der integrierten Keras-Metriken zur Klassifizierung

Benutzerdefinierte Metriken in Keras

Sie können auch Ihre eigenen Metriken definieren und den Funktionsnamen in der Liste der Funktionen für „MetrikenArgument beim Aufruf der kompilieren() Funktion.

Eine Metrik, die ich oft im Auge behalten möchte, ist Root Mean Square Error (RMSE).

Sie können sich ein Bild davon machen, wie eine benutzerdefinierte Metrik geschrieben wird, indem Sie den Code auf eine vorhandene Metrik untersuchen.

Im Folgenden finden Sie beispielsweise den Code für die Verlustfunktion mean_squared_error und die Metrik in Keras.

K ist das von Keras verwendete Backend.

Aus diesem Beispiel und anderen Beispielen für Verlustfunktionen ...

Das könnte Sie auch interessieren