Metrische gegevens gebruiken voor diep leren met Keras in Python

Metrische gegevens gebruiken voor diep leren met Keras in Python

De Keras-bibliotheek biedt een manier om een ​​reeks standaardstatistieken te berekenen en erover te rapporteren bij het trainen van deep learning-modellen.

Naast het aanbieden van standaardstatistieken voor classificatie- en regressieproblemen, stelt Keras u ook in staat om uw eigen aangepaste metrics te definiëren en erover te rapporteren bij het trainen van deep learning-modellen. Dit is vooral handig als u een prestatiemaatstaf wilt bijhouden die de vaardigheid van uw model tijdens de training beter vastlegt.

In deze tutorial ontdek je hoe je de ingebouwde metrics gebruikt en hoe je je eigen metrics definieert en gebruikt bij het trainen van deep learning-modellen in Keras.

Na het voltooien van deze tutorial weet je:

  • Hoe Keras-statistieken werken en hoe u ze kunt gebruiken bij het trainen van uw modellen.
  • Regressie- en classificatiestatistieken gebruiken in Keras met uitgewerkte voorbeelden.
  • Hoe u uw eigen aangepaste metriek in Keras kunt definiëren en gebruiken met een uitgewerkt voorbeeld.

Geef uw project een kickstart met mijn nieuwe boek Deep Learning With Python, inclusief stapsgewijze tutorials en de Python-broncode bestanden voor alle voorbeelden.

Laten we beginnen.

  • Update januari / 2020: Bijgewerkte API voor Keras 2.3 en TensorFlow 2.0.
Metrische gegevens en het gebruik van aangepaste metrische gegevens voor diep leren met Keras in Python

Metrische gegevens en het gebruik van aangepaste metrische gegevens voor diep leren met Keras in Python
Foto door Indi Samarajiva, enkele rechten voorbehouden.

Tutorial Overzicht

Deze tutorial is opgedeeld in 4 delen; zij zijn:

  1. Keras-statistieken
  2. Keras-regressiestatistieken
  3. Keras-classificatiestatistieken
  4. Aangepaste statistieken in Keras

Keras-statistieken

Met Keras kunt u de metrische gegevens vermelden die u tijdens de training van uw model wilt volgen.

U kunt dit doen door de "statistieken”Argument en het verstrekken van een lijst met functienamen (of functienaamaliassen) aan het compileren() functie op uw model.

Bijvoorbeeld:

De specifieke metrische gegevens die u opgeeft, kunnen de namen zijn van Keras-functies (zoals mean_squared_error) of string-aliassen voor die functies (zoals 'mse

Metrische waarden worden aan het einde van elk epoch in de trainingsdataset geregistreerd. Als er ook een validatiedataset wordt geleverd, wordt de geregistreerde metriek ook berekend voor de validatiedataset.

Alle metrische gegevens worden gerapporteerd in uitgebreide uitvoer en in het geschiedenisobject dat wordt geretourneerd door het aanroepen van de passen () functie. In beide gevallen wordt de naam van de metrische functie gebruikt als sleutel voor de metrische waarden. In het geval van statistieken voor de validatiedataset, de "val_”Prefix wordt toegevoegd aan de sleutel.

Zowel verliesfuncties als expliciet gedefinieerde Keras-statistieken kunnen worden gebruikt als trainingsstatistieken.

Keras-regressiestatistieken

Hieronder vindt u een lijst met de statistieken die u in Keras kunt gebruiken voor regressieproblemen.

  • Gemiddelde kwadratische fout: mean_squared_error, MSE of mse
  • Gemiddelde absolute fout: mean_absolute_error, MAE, mae
  • Gemiddelde absolute procentuele fout: mean_absolute_percentage_error, MAPE, mape
  • Cosinus Nabijheid: cosinus_proximity, cosinus

Het onderstaande voorbeeld toont deze 4 ingebouwde regressiestatistieken voor een eenvoudig bedacht regressieprobleem.

Notitie: Uw resultaten kunnen variëren, gezien de stochastische aard van het algoritme of de evaluatieprocedure, of verschillen in numerieke precisie. Overweeg het voorbeeld een paar keer uit te voeren en vergelijk de gemiddelde uitkomst.

Als u het voorbeeld uitvoert, worden de metrische waarden aan het einde van elke epoch afgedrukt.

Er wordt dan een lijndiagram gemaakt van de 4 metrieken over de trainingsperioden.

Lijnplot van ingebouwde Keras-statistieken voor regressie

Lijnplot van ingebouwde Keras-statistieken voor regressie

Merk op dat de metrische gegevens zijn gespecificeerd met behulp van stringaliaswaarden [‘mse‘, ‘mae‘, ‘mape‘, ‘cosine‘] en werden verwezen als sleutelwaarden op het geschiedenisobject met behulp van hun uitgebreide functienaam.

We kunnen de metrische gegevens ook specificeren met hun uitgebreide naam, als volgt:

We kunnen de functienamen ook rechtstreeks specificeren als ze in het script worden geïmporteerd.

U kunt de verliesfuncties ook als metrische gegevens gebruiken.

U kunt bijvoorbeeld de gemiddelde kwadraatlogaritmische fout (mean_squared_logarithmic_errorMSLE of msle) verliesfunctie als een metriek als volgt:

Keras-classificatiestatistieken

Hieronder vindt u een lijst met de statistieken die u in Keras kunt gebruiken voor classificatieproblemen.

  • Binaire nauwkeurigheid: binary_accuracy, vlg
  • Categorische nauwkeurigheid: categorical_accuracy, vlg
  • Schaarse categorische nauwkeurigheid: sparse_categorical_accuracy
  • Top k categorische nauwkeurigheid: top_k_categorical_accuracy (vereist dat u de ak-parameter specificeert)
  • Schaarse Top k categorische nauwkeurigheid: sparse_top_k_categorical_accuracy (vereist dat u de ak-parameter specificeert)

Nauwkeurigheid is bijzonder.

Ongeacht of uw probleem een ​​binair of multi-class classificatieprobleem is, u kunt de 'nauwkeurigheid'metriek om over nauwkeurigheid te rapporteren.

Hieronder ziet u een voorbeeld van een binair classificatieprobleem waarbij de ingebouwde nauwkeurigheidsstatistiek is aangetoond.

Notitie: Uw resultaten kunnen variëren, gezien de stochastische aard van het algoritme of de evaluatieprocedure, of verschillen in numerieke precisie. Overweeg het voorbeeld een paar keer uit te voeren en vergelijk de gemiddelde uitkomst.

Als u het voorbeeld uitvoert, wordt de nauwkeurigheid aan het einde van elk trainingsperiode gerapporteerd.

Er wordt een lijndiagram met nauwkeurigheid over epoch gemaakt.

Lijnplot van ingebouwde Keras-statistieken voor classificatie

Lijnplot van ingebouwde Keras-statistieken voor classificatie

Aangepaste statistieken in Keras

U kunt ook uw eigen metrieken definiëren en de functienaam specificeren in de lijst met functies voor de "statistieken”Argument bij het aanroepen van de compileren() functie.

Een statistiek die ik vaak graag bijhoud, is Root Mean Square Error, of RMSE.

U kunt een idee krijgen van hoe u een aangepaste metriek schrijft door de code voor een bestaande metriek te onderzoeken.

Hieronder staat bijvoorbeeld de code voor de mean_squared_error loss-functie en metriek in Keras.

K is de backend die door Keras wordt gebruikt.

Uit dit voorbeeld en andere voorbeelden van verliesfuncties ...

Вас также может заинтересовать