wake-up-neo.com

Tensorflow: Verlust abnehmend, aber Genauigkeit stabil

Mein Team trainiert ein CNN in Tensorflow für die binäre Klassifizierung beschädigter/akzeptabler Teile. Wir haben unseren Code erstellt, indem wir den Beispielcode von cifar10 geändert haben. In meiner früheren Erfahrung mit Neuronalen Netzen habe ich immer trainiert, bis der Verlust sehr nahe bei 0 lag (deutlich unter 1). Wir bewerten unser Modell jedoch jetzt mit einem Validierungsset (während einer Trainingseinheit) (auf einer separaten GPU), und es scheint, als ob die Präzision nach etwa 6,7k Schritten aufgehört hat, während der Verlust nach über 40k Schritten immer noch abnimmt. Liegt das an Überanpassung? Sollten wir erwarten, dass die Genauigkeit noch weiter steigt, sobald der Verlust nahe bei null liegt? Die aktuelle maximale Genauigkeit ist nicht akzeptabel. Sollten wir es töten und weiter tunen? Was empfehlen Sie? Hier ist unser modifizierter Code und Grafiken des Trainingsprozesses.

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

Präzisions- und Verlustbilder

8
Justin Eyster

Eine Verringerung des binären Kreuzentropieverlusts bedeutet keine Erhöhung der Genauigkeit. Berücksichtigen Sie Label 1, Vorhersagen 0,2, 0,4 und 0,6 bei den Zeitschritten 1, 2, 3 und den Klassifizierungsschwellenwert 0,5. Zeitschritte 1 und 2 führen zu einer Verringerung des Verlusts, jedoch zu keiner Erhöhung der Genauigkeit.

Stellen Sie sicher, dass Ihr Modell über eine ausreichende Kapazität verfügt, indem Sie die Trainingsdaten überfüllen. Wenn das Modell die Trainingsdaten überfüllt, vermeiden Sie eine Überanpassung, indem Sie Regularisierungstechniken wie Dropout, L1- und L2-Regularisierung und Datenerhöhung verwenden.

Bestätigen Sie abschließend, dass Ihre Validierungsdaten und Trainingsdaten von derselben Distribution stammen.

14
rafaelvalle

Hier sind meine Vorschläge, eines der möglichen Probleme ist, dass Ihr Netzwerk anfängt, Daten zu speichern, ja, Sie sollten die Regularisierung erhöhen, 

ja töten Sie es, mit abnehmendem Verlust für das Training und stabiler Präzision für die Validierung. Dies bedeutet, dass Ihre Netzwerkkapazität niedrig ist (schwaches Modell).

0
Ali Abbasi