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.
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.
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