web-dev-qa-db-fra.com

Score de test vs précision du test lors de l'évaluation du modèle à l'aide de Keras

J'utilise un réseau de neurones implémenté avec la bibliothèque Keras et ci-dessous les résultats pendant la formation. À la fin, il imprime un score de test et une précision de test. Je ne peux pas comprendre exactement ce que représente le score, mais la précision que je suppose être le nombre de prédictions qui était correct lors de l'exécution du test.

Epoque 1/15 1200/1200 [==============================] - 4s - perte: 0,6815 - acc: 0,5550 - val_loss: 0,6120 - val_acc: 0,7525

Epoch 2/15 1200/1200 [==============================] - 3s - perte: 0,5481 - acc: 0,7250 - val_loss: 0,4645 - val_acc: 0,8025

Époque 3/15 1200/1200 [==============================] - 3s - perte: 0,5078 - acc: 0,75558 - val_loss: 0,4354 - val_acc: 0,7975

Époque 4/15 1200/1200 [==============================] - 3s - perte: 0,4603 - acc: 0,7875 - val_loss: 0,3978 - val_acc: 0,8350

Epoch 5/15 1200/1200 [==============================] - 3s - perte: 0,4367 - acc: 0,7992 - val_loss: 0,3809 - val_acc: 0,8300

Époque 6/15 1200/1200 [==============================] - 3s - perte: 0.4276 - acc: 0.8017 - val_loss: 0,3888 - val_acc: 0,8350

Epoch 7/15 1200/1200 [==============================] - 3s - perte: 0,3975 - acc: 0,8167 - val_loss: 0,3666 - val_acc: 0,8400

Époque 8/15 1200/1200 [==============================] - 3s - perte: 0,3916 - acc: 0,8183 - val_loss: 0,3753 - val_acc: 0,8450

Époque 9/15 1200/1200 [==============================] - 3s - perte: 0,3814 - acc: 0,8233 - val_loss: 0,3505 - val_acc: 0,8475

Époque 10/15 1200/1200 [==============================] - 3s - perte: 0,3842 - acc: 0,8342 - val_loss: 0,3667 - val_acc: 0,8450

Époque 11/15 1200/1200 [==============================] - 3s - perte: 0.3674 - acc: 0.8375 - val_loss: 0.3383 - val_acc: 0.8525

Epoch 12/15 1200/1200 [==============================] - 3s - perte: 0,3624 - acc: 0,8367 - val_loss: 0,3423 - val_acc: 0,8650

Époque 13/15 1200/1200 [==============================] - 3s - perte: 0,34497 - acc: 0,8475 - val_loss: 0,3069 - val_acc: 0,8825

Époque 14/15 1200/1200 [==============================] - 3s - perte: 0,3406 - acc: 0,8500 - val_loss: 0,2993 - val_acc: 0,8775

Époque 15/15 1200/1200 [==============================] - 3s - perte: 0,3252 - acc: 0,8600 - val_loss: 0,2960 - val_acc: 0,8775

400/400 [==============================] - 0s

Résultat du test: 0,299598811865

Précision du test: 0,88

En regardant le documentation Keras , je ne comprends toujours pas quel est le score. Pour la fonction d'évaluation, il dit:

Renvoie la valeur de perte et les valeurs de métriques du modèle en mode test.

Une chose que j'ai remarquée, c'est que lorsque la précision du test est plus faible, le score est plus élevé, et lorsque la précision est plus élevée, le score est plus faible.

13
Stephen Johnson

Pour référence, les deux parties pertinentes du code:

model.compile(loss='binary_crossentropy',
              optimizer='adam',
              metrics=['accuracy'])

score, acc = model.evaluate(x_test, y_test,
                            batch_size=batch_size)
print('Test score:', score)
print('Test accuracy:', acc)

Le score est l'évaluation de la fonction de perte pour une entrée donnée.

Former un réseau, c'est trouver des paramètres qui minimisent une fonction de perte (ou fonction de coût).

La fonction de coût ici est le binary_crossentropy.

Pour une cible T et une sortie réseau O, l’entropie croisée binaire peut être définie comme

f(T,O) = -(T*log(O) + (1-T)*log(1-O) )

Donc, le score que vous voyez est l'évaluation de cela.

Si vous lui fournissez un lot d'entrées, il retournera très probablement la perte moyenne.

Donc oui, si votre modèle a une perte plus faible (au moment du test), il devrait souvent avoir une erreur de prédiction inférieure.

17
maz

La perte est souvent utilisée dans le processus de formation pour trouver les "meilleures" valeurs de paramètres pour votre modèle (par exemple les poids dans le réseau neuronal). C'est ce que vous essayez d'optimiser dans la formation 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évision de votre modèle par rapport aux vraies données.

Cette réponse fournit une information détaillée:

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

1
Praveen