Elevata perdita di convalida, elevata precisione di convalida

Sep 15 2020

Sto appena iniziando nel campo del deep learning e ho completato il mio primo corso di formazione sul modello utilizzando PyTorch.

Ho deciso di utilizzare un modello pre-build da torchvision, più specificamente mobilenet_v2 (https://pytorch.org/docs/stable/_modules/torchvision/models/mobilenet.html#mobilenet_v2) su un set di dati personalizzato per la classificazione binaria.

Riesco a ottenere una precisione del 100% sia per i set di addestramento che per i set di test (questo particolare set di dati non è difficile, quindi niente di strano al riguardo)

Quello che non capisco è perché la perdita del test sembra essere di diversi ordini di grandezza superiore alla perdita del treno, mentre la precisione è del 100% in entrambi i casi. Qualcuno qui potrebbe spiegarmi cosa sta succedendo qui?

Ti mostro le statistiche di allenamento di seguito:

Epoca: 1/15, Perdita treno: 0,22990, Precisione treno: 88,48%, Perdita test: 2,10275, Precisione test: 99,22%

Epoca: 2/15, Perdita treno: 0,03988, Precisione treno: 99,41%, Perdita test: 2,08563, Precisione test: 99,22%

Epoca: 3/15, Perdita treno: 0,02211, Precisione treno: 99,41%, Perdita test: 2,05521, Precisione test: 100,00%

Epoca: 4/15, Perdita treno: 0,01173, Precisione treno: 99,80%, Perdita test: 2,05332, Precisione test: 100,00%

Epoca: 5/15, Perdita treno: 0,00499, Precisione treno: 100,00%, Perdita test: 2,04989, Precisione test: 100,00%

Epoca: 6/15, Perdita treno: 0,00381, Precisione treno: 100,00%, Perdita test: 2,04952, Precisione test: 100,00%

Epoca: 7/15, Perdita treno: 0,00171, Precisione treno: 100,00%, Perdita test: 2,04999, Precisione test: 100,00%

Epoca: 8/15, Perdita treno: 0,00072, Precisione treno: 100,00%, Perdita test: 2,04971, Precisione test: 100,00%

Epoca: 9/15, Perdita treno: 0,00045, Precisione treno: 100,00%, Perdita test: 2,04938, Precisione test: 100,00%

Epoca: 10/15, Perdita treno: 0,00035, Precisione treno: 100,00%, Perdita test: 2,04932, Precisione test: 100,00%

Epoca: 11/15, Perdita treno: 0,00029, Precisione treno: 100,00%, Perdita test: 2,04920, Precisione test: 100,00%

Epoca: 12/15, Perdita treno: 0,00025, Precisione treno: 100,00%, Perdita test: 2,04922, Precisione test: 100,00%

Epoca: 13/15, Perdita treno: 0,00022, Precisione treno: 100,00%, Perdita test: 2,04906, Precisione test: 100,00%

Epoca: 14/15, Perdita treno: 0,00020, Precisione treno: 100,00%, Perdita test: 2,04914, Precisione test: 100,00%

Epoca: 15/15, Perdita treno: 0,00018, Precisione treno: 100,00%, Perdita test: 2,04905, Precisione test: 100,00%

Risposte

1 Shiv Sep 15 2020 at 14:37

Nella classificazione binaria abbiamo 0 o 1. Devi utilizzare la funzione softmax al livello finale per ottenere l'output. Varia da (0,1)
Perdita: in generale, è la differenza tra il valore previsto e quello effettivo.
Supponiamo
CASO 1 : il valore previsto è 0,6 la risposta reale è 1.
CASO 2 : il valore previsto è 0,9 la risposta reale è 1.
Sebbene entrambi abbiano le risposte corrette (perché entrambi arrotondano per diventare 1), la perdita nel caso 2 è inferiore a caso 1.