web-dev-qa-db-fra.com

Tensorflow: perte décroissante, mais précision stable

Mon équipe forme un CNN à Tensorflow sur la classification binaire des pièces endommagées/acceptables. Nous avons créé notre code en modifiant le code exemple cifar10. Dans mon expérience antérieure avec les réseaux de neurones, je me suis toujours entraîné jusqu'à ce que la perte soit très proche de 0 (bien en dessous de 1). Cependant, nous évaluons maintenant notre modèle avec un ensemble de validation défini pendant l’entraînement (sur un GPU séparé). Il semble que la précision ait cessé d’augmenter après environ 6,7k pas, alors que la perte continue de chuter régulièrement après plus de 40k. Est-ce dû à une suralimentation? Devrions-nous nous attendre à une nouvelle pointe de précision une fois que la perte est très proche de zéro? La précision maximale actuelle n'est pas acceptable. Devrions-nous le tuer et continuer à nous accorder? Que recommandez-vous? Voici notre code modifié et les graphiques du processus de formation.

https://Gist.github.com/justineyster/6226535a8ee3f567e759c2ff2ae3776b

Images de précision et de perte

8
Justin Eyster

Une diminution de la perte d'entropie croisée binaire n'implique pas une augmentation de la précision. Considérez l’étiquette 1, les prédictions 0,2, 0,4 et 0,6 aux pas 1, 2, 3 et le seuil de classification 0,5. les pas 1 et 2 produiront une diminution de la perte mais aucune augmentation de la précision.

Assurez-vous que votre modèle a une capacité suffisante en surchargeant les données de formation. Si le modèle sur-utilise les données d'apprentissage, évitez-le en utilisant des techniques de régularisation telles que le décrochage, la régularisation des niveaux 1 et 2 et l'augmentation des données.

Enfin, confirmez que vos données de validation et vos données d’apprentissage proviennent de la même distribution.

14
rafaelvalle

Voici mes suggestions, un des problèmes possibles est que votre réseau commence à mémoriser des données, oui vous devriez augmenter la régularisation, 

oui tuez-le, avec une perte décroissante pour l'entraînement et une précision stable pour la validation, cela signifie que la capacité de votre réseau est faible (modèle faible), essayez d'aller plus loin.

0
Ali Abbasi