Comment utiliser les métriques pour le Deep Learning avec Keras en Python

Comment utiliser les métriques pour le Deep Learning avec Keras en Python

La bibliothèque Keras permet de calculer et de générer des rapports sur une suite de métriques standard lors de la formation de modèles d'apprentissage en profondeur.

En plus d'offrir des métriques standard pour les problèmes de classification et de régression, Keras vous permet également de définir et de générer des rapports sur vos propres métriques personnalisées lors de la formation de modèles d'apprentissage en profondeur. Ceci est particulièrement utile si vous souhaitez suivre une mesure de performance qui capture mieux les compétences de votre modèle pendant l'entraînement.

Dans ce didacticiel, vous découvrirez comment utiliser les métriques intégrées et comment définir et utiliser vos propres métriques lors de l'entraînement de modèles d'apprentissage profond dans Keras.

Après avoir terminé ce tutoriel, vous saurez:

  • Fonctionnement des métriques Keras et utilisation de celles-ci lors de l'entraînement de vos modèles.
  • Comment utiliser les métriques de régression et de classification dans Keras avec des exemples travaillés.
  • Comment définir et utiliser votre propre métrique personnalisée dans Keras avec un exemple concret.

Lancez votre projet avec mon nouveau livre Deep Learning With Python, y compris tutoriels étape par étape et le Code source Python fichiers pour tous les exemples.

Commençons.

  • Mise à jour janvier / 2020: API mise à jour pour Keras 2.3 et TensorFlow 2.0.
Métriques et comment utiliser des métriques personnalisées pour le Deep Learning avec Keras en Python

Métriques et comment utiliser des métriques personnalisées pour le Deep Learning avec Keras en Python
Photo par Indi Samarajiva, certains droits réservés.

Présentation du didacticiel

Ce tutoriel est divisé en 4 parties; elles sont:

  1. Métriques Keras
  2. Métriques de régression Keras
  3. Métriques de classification Keras
  4. Mesures personnalisées dans Keras

Métriques Keras

Keras vous permet de lister les métriques à surveiller lors de la formation de votre modèle.

Vous pouvez le faire en spécifiant le "métrique”Et en fournissant une liste de noms de fonction (ou d'alias de nom de fonction) au compiler() fonction sur votre modèle.

Par exemple:

Les métriques spécifiques que vous répertoriez peuvent être les noms de fonctions Keras (comme mean_squared_error) ou des alias de chaîne pour ces fonctions (comme 'mse').

Les valeurs métriques sont enregistrées à la fin de chaque époque sur le jeu de données d'apprentissage. Si un ensemble de données de validation est également fourni, la métrique enregistrée est également calculée pour l'ensemble de données de validation.

Toutes les métriques sont signalées dans une sortie détaillée et dans l'objet d'historique renvoyé par l'appel du ajuster() fonction. Dans les deux cas, le nom de la fonction métrique est utilisé comme clé pour les valeurs métriques. Dans le cas des métriques pour l'ensemble de données de validation, le "val_Le préfixe ”est ajouté à la clé.

Les fonctions de perte et les métriques Keras définies explicitement peuvent être utilisées comme métriques d'entraînement.

Métriques de régression Keras

Vous trouverez ci-dessous une liste des mesures que vous pouvez utiliser dans Keras sur les problèmes de régression.

  • Erreur quadratique moyenne: mean_squared_error, MSE ou mse
  • Erreur absolue moyenne: mean_absolute_error, MAE, mae
  • Erreur de pourcentage absolu moyen: mean_absolute_percentage_error, MAPE, mape
  • Proximité cosinus: cosinus_proximité, cosinus

L'exemple ci-dessous illustre ces 4 métriques de régression intégrées sur un problème de régression artificiel simple.

Noter: Vos résultats peuvent varier compte tenu de la nature stochastique de l'algorithme ou de la procédure d'évaluation, ou des différences de précision numérique. Envisagez d'exécuter l'exemple plusieurs fois et comparez le résultat moyen.

L'exécution de l'exemple imprime les valeurs métriques à la fin de chaque époque.

Un graphique linéaire des 4 métriques sur les époques d'apprentissage est ensuite créé.

Graphique linéaire des métriques Keras intégrées pour la régression

Graphique linéaire des métriques Keras intégrées pour la régression

Notez que les métriques ont été spécifiées à l'aide de valeurs d'alias de chaîne [‘mse‘, ‘mae‘, ‘mape‘, ‘cosine‘] et ont été référencées en tant que valeurs clés sur l'objet d'historique à l'aide de leur nom de fonction développé.

Nous pourrions également spécifier les métriques en utilisant leur nom développé, comme suit:

Nous pouvons également spécifier les noms des fonctions directement s'ils sont importés dans le script.

Vous pouvez également utiliser les fonctions de perte comme métriques.

Par exemple, vous pouvez utiliser l'erreur logarithmique moyenne au carré (mean_squared_logarithmic_error, MSLE ou msle) fonction de perte comme une métrique comme suit:

Métriques de classification Keras

Vous trouverez ci-dessous une liste des mesures que vous pouvez utiliser dans Keras sur les problèmes de classification.

  • Précision binaire: précision_binaire, acc
  • Précision catégorique: précision_catégorique, acc
  • Précision catégorique clairsemée: clairsemé_categorical_accuracy
  • Top k Précision catégorique: top_k_categorical_accuracy (nécessite que vous spécifiiez un paramètre ak)
  • Précision catégorique clairsemée: sparse_top_k_categorical_accuracy (nécessite que vous spécifiiez un paramètre ak)

La précision est spéciale.

Que votre problème soit un problème de classification binaire ou multi-classes, vous pouvez spécifier le 'précision'métrique pour rendre compte de l'exactitude.

Vous trouverez ci-dessous un exemple de problème de classification binaire avec la métrique de précision intégrée démontrée.

Noter: Vos résultats peuvent varier compte tenu de la nature stochastique de l'algorithme ou de la procédure d'évaluation, ou des différences de précision numérique. Envisagez d'exécuter l'exemple plusieurs fois et comparez le résultat moyen.

L'exécution de l'exemple indique la précision à la fin de chaque période d'entraînement.

Un graphique linéaire de précision sur l'époque est créé.

Graphique linéaire des métriques Keras intégrées pour la classification

Graphique linéaire des métriques Keras intégrées pour la classification

Mesures personnalisées dans Keras

Vous pouvez également définir vos propres métriques et spécifier le nom de la fonction dans la liste des fonctions pour le "métrique”Argument lors de l'appel du compiler() fonction.

Une métrique que j'aime souvent suivre est l'erreur quadratique moyenne, ou RMSE.

Vous pouvez avoir une idée de la façon d'écrire une métrique personnalisée en examinant le code d'une métrique existante.

Par exemple, vous trouverez ci-dessous le code de la fonction de perte mean_squared_error et de la métrique dans Keras.

K est le backend utilisé par Keras.

À partir de cet exemple et d'autres exemples de fonctions de perte ...

Vous pourriez également être intéressé par