Jestem nowy w uczeniu maszynowym i obecnie próbuję wyćwiczyć splotową sieć neuronową z 3 warstwami splotowymi i 1 całkowicie połączoną warstwą. Używam prawdopodobieństwa odejścia wynoszącego 25% i współczynnika uczenia się wynoszącego 0,0001. Mam 6000 obrazów treningowych o wymiarach 150 x 200 i 13 klas wyników. Używam tensorflow. Zauważam trend, w którym moja strata stale spada, ale moja dokładność wzrasta tylko nieznacznie, po czym znów spada. Moje obrazy treningowe to niebieskie linie, a moje obrazy walidacyjne to pomarańczowe linie. Oś x to kroki. Dlaczego w splotowej sieci neuronowej można uzyskać niską stratę, ale także bardzo małą dokładność?
Zastanawiam się, czy istnieje coś, czego nie rozumiem, ani jakie mogą być możliwe przyczyny tego zjawiska? Z materiału, który przeczytałem, założyłem, że mała strata oznacza wysoką dokładność. Oto moja funkcja utraty.
cost = tf.reduce_mean(tf.nn.softmax_cross_entropy_with_logits(pred, y))
Czy słyszałeś o * przeładowaniu *? – sascha
Niska utrata treningu powinna oznaczać niski błąd zestawu treningowego. Jak niska jest twoja strata? Twoja skala jest na milionach, nie jest jasne, czy strata treningu jest niska (mniej niż 1) z wykresu. –
Tak, słyszałem o nadmiernym dopasowaniu, ale byłem przy założeniu, że jeśli jesteś nadmiernie dopasowany, nadal będziesz mieć wysoką dokładność w swoim dane treningowe. Zmartwiony o skali, moja strata była między 1-10 kiedy skończyłem trening. –