Come utilizzare le metriche per il deep learning con Keras in Python

Come utilizzare le metriche per il deep learning con Keras in Python

La libreria Keras fornisce un modo per calcolare e generare rapporti su una suite di metriche standard durante l'addestramento di modelli di deep learning.

Oltre a offrire metriche standard per problemi di classificazione e regressione, Keras consente anche di definire e generare rapporti sulle proprie metriche personalizzate durante l'addestramento di modelli di deep learning. Ciò è particolarmente utile se si desidera tenere traccia di una misurazione delle prestazioni che acquisisca meglio l'abilità del modello durante l'allenamento.

In questo tutorial scoprirai come utilizzare le metriche integrate e come definire e utilizzare le tue metriche durante l'addestramento di modelli di deep learning in Keras.

Dopo aver completato questo tutorial, saprai:

  • Come funzionano le metriche di Keras e come puoi usarle durante l'addestramento dei tuoi modelli.
  • Come utilizzare le metriche di regressione e classificazione in Keras con esempi funzionanti.
  • Come definire e utilizzare la tua metrica personalizzata in Keras con un esempio funzionante.

Dai il via al tuo progetto con il mio nuovo libro Deep Learning With Python, incluso tutorial passo passo e il Codice sorgente Python file per tutti gli esempi.

Iniziamo.

  • Aggiornamento gennaio / 2020: API aggiornata per Keras 2.3 e TensorFlow 2.0.
Metriche e come utilizzare le metriche personalizzate per il deep learning con Keras in Python

Metriche e come utilizzare le metriche personalizzate per il deep learning con Keras in Python
Foto di Indi Samarajiva, alcuni diritti riservati.

Panoramica del tutorial

Questo tutorial è diviso in 4 parti; sono:

  1. Keras Metrics
  2. Metriche di regressione di Keras
  3. Metriche di classificazione di Keras
  4. Metriche personalizzate in Keras

Keras Metrics

Keras ti consente di elencare le metriche da monitorare durante l'addestramento del tuo modello.

Puoi farlo specificando il "metrica"E fornendo un elenco di nomi di funzioni (o alias di nomi di funzione) al compilare() funzione sul tuo modello.

Per esempio:

Le metriche specifiche che elenchi possono essere i nomi delle funzioni di Keras (come mean_squared_error) o alias stringa per quelle funzioni (come 'mse').

I valori metrici vengono registrati alla fine di ogni epoca nel set di dati di addestramento. Se viene fornito anche un set di dati di convalida, la metrica registrata viene calcolata anche per il set di dati di convalida.

Tutte le metriche vengono riportate nell'output dettagliato e nell'oggetto della cronologia restituito dalla chiamata al file in forma() funzione. In entrambi i casi, il nome della funzione metrica viene utilizzato come chiave per i valori metrici. Nel caso delle metriche per il set di dati di convalida, il "val_Il prefisso "viene aggiunto alla chiave.

Sia le funzioni di perdita che le metriche Keras esplicitamente definite possono essere utilizzate come metriche di allenamento.

Metriche di regressione di Keras

Di seguito è riportato un elenco delle metriche che è possibile utilizzare in Keras sui problemi di regressione.

  • Errore quadratico medio: mean_squared_error, MSE o mse
  • Errore assoluto medio: mean_absolute_error, MAE, mae
  • Errore percentuale medio assoluto: mean_absolute_percentage_error, MAPE, mape
  • Prossimità del coseno: cosine_proximity, cosine

L'esempio seguente mostra queste 4 metriche di regressione incorporate su un semplice problema di regressione artificiosa.

Nota: I risultati possono variare a causa della natura stocastica dell'algoritmo o della procedura di valutazione o delle differenze nella precisione numerica. Considera di eseguire l'esempio alcune volte e confronta il risultato medio.

L'esecuzione dell'esempio stampa i valori della metrica alla fine di ogni epoca.

Viene quindi creato un grafico a linee delle 4 metriche sulle epoche di addestramento.

Grafico a linee delle metriche Keras integrate per la regressione

Grafico a linee delle metriche Keras integrate per la regressione

Tieni presente che le metriche sono state specificate utilizzando valori alias stringa [‘mse‘, ‘mae‘, ‘mape‘, ‘cosine‘] e sono stati referenziati come valori chiave sull'oggetto della cronologia utilizzando il nome della funzione espansa.

Potremmo anche specificare le metriche utilizzando il loro nome espanso, come segue:

Possiamo anche specificare direttamente i nomi delle funzioni se vengono importati nello script.

Puoi anche utilizzare le funzioni di perdita come metriche.

Ad esempio, è possibile utilizzare l'errore logaritmico quadratico medio (mean_squared_logarithmic_error, MSLE o msle) funzione di perdita come metrica come segue:

Metriche di classificazione di Keras

Di seguito è riportato un elenco delle metriche che è possibile utilizzare in Keras sui problemi di classificazione.

  • Precisione binaria: binary_accuracy, acc
  • Precisione categoriale: categorical_accuracy, acc
  • Accuratezza categoriale scarsa: sparse_categorical_accuracy
  • Top k Precisione categoriale: top_k_categorical_accuracy (richiede di specificare un parametro ak)
  • Sparse Top k Precisione categoriale: sparse_top_k_categorical_accuracy (richiede di specificare un parametro ak)

La precisione è speciale.

Indipendentemente dal fatto che il tuo problema sia un problema di classificazione binaria o multi-classe, puoi specificare il 'precisionemetrica per generare rapporti sulla precisione.

Di seguito è riportato un esempio di un problema di classificazione binaria con la metrica di precisione incorporata dimostrata.

Nota: I risultati possono variare a causa della natura stocastica dell'algoritmo o della procedura di valutazione o delle differenze nella precisione numerica. Considera di eseguire l'esempio alcune volte e confronta il risultato medio.

L'esecuzione dell'esempio riporta l'accuratezza alla fine di ogni epoca di addestramento.

Viene creato un grafico a linee di precisione sull'epoca.

Grafico a linee delle metriche Keras integrate per la classificazione

Grafico a linee delle metriche Keras integrate per la classificazione

Metriche personalizzate in Keras

Puoi anche definire le tue metriche e specificare il nome della funzione nell'elenco di funzioni per "metrica"Quando si chiama il compilare() funzione.

Una metrica di cui spesso mi piace tenere traccia è Root Mean Square Error, o RMSE.

Puoi avere un'idea di come scrivere una metrica personalizzata esaminando il codice per una metrica esistente.

Ad esempio, di seguito è riportato il codice per la funzione e la metrica di perdita mean_squared_error in Keras.

K è il backend utilizzato da Keras.

Da questo esempio e da altri esempi di funzioni di perdita ...

Potresti anche essere interessato