web-dev-qa-db-fra.com

Comment interpréter "perte" et "précision" pour un modèle d'apprentissage automatique

Lorsque je formerai mon réseau de neurones avec Theano ou Tensorflow, ils rapporteront une variable appelée "perte" par époque.

Comment devrais-je interpréter cette variable? Une perte plus élevée est meilleure ou pire, ou qu'est-ce que cela signifie pour la performance finale (précision) de mon réseau neuronal?

164
mamatv

Plus la perte est faible, meilleur est le modèle (sauf si le modèle a été sur-ajusté aux données d'apprentissage). La perte est calculée sur la formation et la validation et son interperation est la le modèle fait pour ces deux ensembles. Contrairement à la précision, la perte n'est pas un pourcentage. C'est une somme des erreurs commises pour chaque exemple dans des ensembles d'apprentissage ou de validation.

Dans le cas des réseaux de neurones, la perte est généralement log-vraisemblance négative et somme résiduelle des carrés pour la classification et la régression, respectivement. Naturellement, l’objectif principal d’un modèle d’apprentissage est de réduire (minimiser) la valeur de la fonction de perte par rapport aux paramètres du modèle en modifiant les valeurs du vecteur de poids au moyen de différentes méthodes d’optimisation, telles que la rétropropagation dans des réseaux de neurones.

La valeur de perte implique le bon ou le mauvais comportement d’un certain modèle après chaque itération d’optimisation. Idéalement, on s'attendrait à une réduction des pertes après chaque ou plusieurs itérations.

La précision d'un modèle est généralement déterminée une fois que les paramètres du modèle ont été appris et fixés et qu'aucun apprentissage n'a lieu. Ensuite, les échantillons de test sont introduits dans le modèle et le nombre d'erreurs (perte zéro-un) du modèle est enregistré, après comparaison avec les véritables objectifs. Ensuite, le pourcentage d'erreur de classification est calculé.

Par exemple, si le nombre d'échantillons de test est égal à 1000 et que le modèle en classe 952 correctement, la précision du modèle est de 95,2%.

enter image description here

Il y a aussi quelques subtilités tout en réduisant la valeur de perte. Par exemple, vous pouvez rencontrer le problème de sur-adaptation dans lequel le modèle "mémorise" les exemples d'apprentissage et devient en quelque sorte inefficace pour l'ensemble de test. Le sur-ajustement se produit également dans les cas où vous n'utilisez pas un régularisation , vous avez un modèle très complexe (le nombre de paramètres libres W est grand) ou le nombre de points de données N est très faible.

234
Amir

Il existe deux mesures différentes pour évaluer les performances de votre modèle, qui sont généralement utilisées dans différentes phases.

La perte est souvent utilisée dans le processus de formation pour trouver les "meilleures" valeurs de paramètres de votre modèle (par exemple, les poids dans le réseau de neurones). C’est ce que vous essayez d’optimiser dans l’entraînement en mettant à jour les poids.

La précision est plus d'un point de vue appliqué. Une fois que vous avez trouvé les paramètres optimisés ci-dessus, vous utilisez ces métriques pour évaluer la précision de la prédiction de votre modèle par rapport aux données réelles.

Utilisons un exemple de classification de jouets. Vous voulez prédire le sexe à partir de votre poids et de votre taille. Vous avez 3 données, elles sont comme suit: (0 signifie homme, 1 signifie femme)

y1 = 0, x1_w = 50 kg, x2_h = 160 cm;

y2 = 0, x2_w = 60 kg, x2_h = 170 cm;

y3 = 1, x3_w = 55 kg, x3_h = 175 cm;

Vous utilisez un modèle de régression logistique simple qui est y = 1/(1 + exp b1 * x_w + b2 * x_h))

Comment trouvez-vous b1 et b2? vous définissez d'abord une perte et utilisez une méthode d'optimisation pour minimiser la perte de manière itérative en mettant à jour b1 et b2.

Dans notre exemple, une perte typique de ce problème de classification binaire peut être: (un signe moins doit être ajouté devant le signe de la somme)

Nous ne savons pas ce que devraient être b1 et b2. Faisons une supposition aléatoire en disant b1 = 0.1 et b2 = -0.03. Alors quelle est notre perte maintenant?

donc la perte est

Ensuite, l’apprentissage de l’algorithme (descente sur gradient, par exemple) trouvera le moyen de mettre à jour b1 et b2 pour réduire la perte.

Que se passe-t-il si b1 = 0.1 et b2 = -0.03 sont les finales b1 et b2 (sortie de la descente), quelle est l'exactitude maintenant?

Supposons que si y_hat> = 0.5, nous décidons que notre prédiction est féminine (1). sinon, notre algorithme prédit y1 = 1, y2 = 1 et y3 = 1. Quelle est notre précision? Nous faisons des prédictions erronées sur y1 et y2 et en corrigeons une sur y3. Alors maintenant, notre précision est de 1/3 = 33.33%

PS: Dans --- (réponse d'Amir , on dit que la rétro-propagation est une méthode d'optimisation en NN. Je pense que cela serait traité comme un moyen de trouver un gradient pour les poids en NN. Les méthodes d'optimisation courantes dans NN sont GradientDescent et Adam.

16
Math Novice

@Aadnan Juste pour clarifier les ensembles de données Formation/Validation/Test: L'ensemble de formation est utilisé pour effectuer la formation initiale du modèle, en initialisant les poids du réseau de neurones.

L'ensemble de validation est utilisé après la formation du réseau de neurones. Il est utilisé pour régler les hyperparamètres du réseau et comparer l'impact de leurs modifications sur la précision prédictive du modèle. Alors que l'ensemble d'apprentissage peut être considéré comme étant utilisé pour construire les poids de porte du réseau de neurones, l'ensemble de validation permet d'affiner les paramètres ou l'architecture du modèle de réseau de neurones. C'est utile car cela permet une comparaison répétable de ces différents paramètres/architectures avec les mêmes poids de données et de réseaux, afin d'observer comment les changements de paramètres/d'architecture affectent la puissance prédictive du réseau.

Ensuite, le jeu de tests sert uniquement à tester la précision prédictive du réseau de neurones formés sur des données inédites, après la formation et la sélection des paramètres/architecture avec les jeux de données de formation et de validation.

4
Jon