Uczę prostej sieci neuronowej na zbiorze danych CIFAR10. Po pewnym czasie utrata walidacji zaczęła rosnąć, a dokładność walidacji również rośnie. Utrata i dokładność testu stale się poprawiają.
Jak to jest możliwe? Wydaje się, że w przypadku wzrostu utraty walidacji dokładność powinna się zmniejszyć.
PS Jest kilka podobnych pytań, ale nikt nie wyjaśnił, co się tam dzieje.
neural-networks
deep-learning
conv-neural-network
overfitting
Konstantin Solomatov
źródło
źródło
Odpowiedzi:
Opierając się na odpowiedzi Ankura i komentarzu poniżej, myślę, że możliwy jest następujący scenariusz, chociaż nie mam na to dowodu. Jednocześnie mogą mieć miejsce dwa zjawiska:
Niektóre przykłady z prognozami granicznymi są lepiej przewidywane, a zatem ich klasa wyjściowa zmienia się (np. Obraz kota przewidywany na 0,4 jako kot i 0,6 na konia staje się przewidywany 0,4 na konia i 0,6 na kota). Dzięki temu zwiększa się dokładność, a maleje strata.
Niektóre przykłady z bardzo złymi przewidywaniami ciągle się pogarszają (np. Obraz kota przewidywany na konia jako 0,8 staje się przewidywany na konia jako 0,9) ORAZ / LUB (bardziej prawdopodobne, szczególnie w przypadku wielu klas?) Niektóre przykłady z bardzo dobrym prognozy stają się nieco gorsze (np. obraz kota przewidywany na 0,9 jako kot staje się przewidywany na 0,8 jako kot). Przy tym zjawisku strata wzrasta, a dokładność pozostaje taka sama.
Więc jeśli w pewnym momencie pojawia się zjawisko 2, na wielu przykładach (np. Dla konkretnej klasy, która z jakiegoś powodu nie jest dobrze zrozumiana) i / lub ze wzrostem strat większym niż spadek, który zyskujesz z 1., wtedy możesz znajdź się w swoim scenariuszu.
Po raz kolejny być może nie dzieje się tak, ale myślę, że umiejętność wymyślenia takich scenariuszy musi przypominać nam czasami śliski związek między utratą (dokładnością entropii) a dokładnością.
źródło
Dokładność zestawu jest oceniana po prostu przez sprawdzenie krzyżowe najwyższej wartości softmax i poprawnej klasy oznaczonej. Nie zależy to od tego, jak wysoka jest wartość softmax. Aby było to jaśniejsze, oto kilka liczb.
Załóżmy, że istnieją 3 klasy - pies, kot i koń. W naszym przypadku właściwą klasą jest koń . Teraz wynik softmax wynosi [0,9, 0,1]. Za tę stratę ~ 0,37. Klasyfikator przewidzi, że jest to koń. Weźmy inny przypadek, w którym wyjście softmax wynosi [0,6, 0,4]. Strata ~ 0,6. Klasyfikator nadal będzie przewidywał, że jest to koń. Ale na pewno strata wzrosła. Chodzi więc o rozkład wyjściowy.
źródło
Z odpowiedzi Ankura wydaje mi się, że:
podczas
Więc...
źródło
Wiele odpowiedzi koncentruje się na obliczeniach matematycznych wyjaśniających, w jaki sposób jest to możliwe. Ale nie wyjaśniają, dlaczego tak się dzieje. I nie mogą zasugerować, jak kopać dalej, aby być bardziej przejrzystym.
Mam 3 hipotezy. I zasugeruj kilka eksperymentów, aby je zweryfikować. Mamy nadzieję, że pomoże to wyjaśnić ten problem.
Nie kłóć się o to, jeśli nie zgadzasz się z tą hipotezą. Bardziej sensowne będzie wyjście z eksperymentu w celu ich weryfikacji, bez względu na to, czy je udowodnisz, czy udowodnisz, że się mylą.
źródło