Jak interpretować „stratę” i „dokładność” dla modelu uczenia maszynowego

Odpowiedzi:

284

Im niższa strata, tym lepszy model (chyba że model zbytnio dopasował się do danych treningowych). Stratę oblicza się na podstawie szkolenia i walidacji, a jej interperacja określa, jak dobrze model radzi sobie w tych dwóch zestawach. W przeciwieństwie do dokładności, strata nie jest procentem. Jest to suma błędów popełnianych dla każdego przykładu w zestawach szkoleniowych lub walidacyjnych.

W przypadku sieci neuronowych utrata jest zwykle ujemnym prawdopodobieństwem logarytmicznym i resztkową sumą kwadratów odpowiednio dla klasyfikacji i regresji. Następnie oczywiście głównym celem w modelu uczenia się jest zmniejszenie (minimalizacja) wartości funkcji straty w odniesieniu do parametrów modelu przez zmianę wartości wektora masy za pomocą różnych metod optymalizacji, takich jak propagacja wsteczna w sieciach neuronowych.

Wartość strat oznacza, jak dobrze lub źle zachowuje się określony model po każdej iteracji optymalizacji. Idealnie byłoby oczekiwać zmniejszenia straty po każdej lub kilku iteracjach.

Dokładność modelu jest zwykle określana po poznaniu i ustaleniu parametrów modelu i braku uczenia się. Następnie próbki testowe są podawane do modelu i rejestrowana jest liczba błędów (zero zero jeden), które popełnił model, po porównaniu do prawdziwych celów. Następnie obliczany jest odsetek błędnej klasyfikacji.

Na przykład, jeśli liczba próbek testowych wynosi 1000, a model poprawnie klasyfikuje 952 próbki, to dokładność modelu wynosi 95,2%.

wprowadź opis zdjęcia tutaj

Istnieją również pewne subtelności przy jednoczesnym zmniejszeniu wartości strat. Na przykład możesz napotkać problem nadmiernego dopasowania, w którym model „zapamiętuje” przykłady treningu i staje się w pewnym sensie nieskuteczny dla zestawu testowego. Przeregulowanie występuje również w przypadkach, w których nie stosuje się regularyzacji , masz bardzo złożony model (liczba wolnych parametrów Wjest duża) lub liczba punktów danych Njest bardzo niska.

Amir
źródło
2
Cześć @Amir, dziękuję za bardzo szczegółowe wyjaśnienie. Mam jednak problem: w mojej sieci neuronowej straty zawsze zmniejszają się, kiedy trenuję (gdy epoki rosną), jednak dokładność nie jest lepsza.
mamatv
8
@mamatv Dopóki koszt maleje, powinieneś iść. Chociaż koszt i dokładność zwykle mają odwrotną zależność proporcjonalności, można jednak zauważyć, że dokładność to suma błędów zero-jedynkowych, natomiast koszt to suma liczb zmiennoprzecinkowych. Dlatego obniżenie kosztu o 0,001% niekoniecznie oznacza wzrost dokładności o 0,001%. Zwiększenie dokładności jest znacznie trudniejsze, gdy spadek kosztu jest niematerialny (koszt jest bardzo zbliżony do lokalnych minimów)
Amir
2
@mamatv Powinienem był powiedzieć, dopóki koszty szkolenia i walidacji maleją, powinieneś iść. Możesz także sprawdzić dokładność sprawdzania poprawności w każdej epoce. Jeśli zacznie rosnąć, twój model mógł zacząć się nadmiernie dopasowywać i powinieneś przestać go trenować.
Amir
1
Dlaczego nie wytrenować modelu, aby zwiększał dokładność, a nie minimalizował straty?
bikashg
2
Dokładność @bikashg nie jest rozróżnialna i dlatego nie można na niej zareagować.
DharmaTurtle
23

Są to dwa różne wskaźniki służące do oceny wydajności modelu, zwykle używane w różnych fazach.

Utrata jest często wykorzystywana w procesie szkolenia, aby znaleźć „najlepsze” wartości parametrów dla twojego modelu (np. Wagi w sieci neuronowej). To właśnie próbujesz zoptymalizować podczas treningu, aktualizując ciężary.

Dokładność jest bardziej z zastosowanej perspektywy. Po znalezieniu zoptymalizowanych parametrów powyżej używasz tych wskaźników, aby ocenić, jak dokładne są prognozy twojego modelu w porównaniu z prawdziwymi danymi.

Użyjmy przykładu klasyfikacji zabawki. Chcesz przewidzieć płeć na podstawie wagi i wzrostu. Masz 3 dane, są one następujące: (0 oznacza mężczyznę, 1 oznacza kobietę)

y1 = 0, x1_w = 50 kg, x2_h = 160 cm;

y2 = 0, x2_w = 60 kg, x2_h = 170 cm;

y3 = 1, x3_w = 55 kg, x3_h = 175 cm;

Używasz prostego modelu regresji logistycznej, który wynosi y = 1 / (1 + exp- (b1 * x_w + b2 * x_h))

Jak znaleźć b1 i b2? najpierw definiujesz stratę i używasz metody optymalizacji, aby zminimalizować stratę w sposób iteracyjny poprzez aktualizację b1 i b2.

W naszym przykładzie typową stratą dla tego problemu z klasyfikacją binarną może być: (przed znakiem sumowania należy dodać znak minus)

Nie wiemy, co powinny b1 i b2. Niech losowo zgadniemy, że b1 = 0,1, a b2 = -0,03. Jaka jest teraz nasza strata?

więc strata jest

Następnie algorytm uczenia się (np. Opadanie gradientu) znajdzie sposób na aktualizację b1 i b2 w celu zmniejszenia straty.

Co jeśli b1 = 0,1 i b2 = -0,03 to końcowe b1 i b2 (wynik z opadania gradientu), jaka jest teraz dokładność?

Załóżmy, że jeśli y_hat> = 0,5, stwierdzimy, że nasza prognoza jest żeńska (1). w przeciwnym razie byłoby 0. Dlatego nasz algorytm przewiduje y1 = 1, y2 = 1 i y3 = 1. Jaka jest nasza dokładność? Dokonujemy błędnej prognozy na y1 i y2, a poprawiamy na y3. Więc teraz nasza dokładność wynosi 1/3 = 33,33%

PS: W odpowiedzi Amira mówi się , że propagacja wsteczna jest metodą optymalizacji w NN. Myślę, że byłoby to traktowane jako sposób na znalezienie gradientu dla wag w NN. Typową metodą optymalizacji w NN są GradientDescent i Adam.

Niezdecydowany
źródło
dziękuję za matematykę. pomogło wyjaśnić koncepcję.
Finn Frotscher
6

@Annan Tylko w celu wyjaśnienia zestawów danych Trening / Walidacja / Test: Zestaw treningowy służy do przeprowadzenia wstępnego szkolenia modelu, inicjując wagi sieci neuronowej.

Zestaw walidacyjny jest używany po przeszkoleniu sieci neuronowej. Służy do dostrajania hiperparametrów sieci i porównywania, w jaki sposób zmiany w nich wpływają na dokładność predykcyjną modelu. Podczas gdy zestaw szkoleniowy można uznać za używany do budowania wag bram sieci neuronowej, zestaw walidacyjny umożliwia precyzyjne dostrojenie parametrów lub architektury modelu sieci neuronowej. Jest to przydatne, ponieważ pozwala na powtarzalne porównanie tych różnych parametrów / architektur z tymi samymi wagami danych i sieci, aby zaobserwować, jak zmiany parametrów / architektury wpływają na moc predykcyjną sieci.

Następnie zestaw testowy służy tylko do testowania dokładności predykcyjnej wyszkolonej sieci neuronowej na wcześniej niewidzialnych danych, po szkoleniu i wyborze parametrów / architektury za pomocą zestawów danych szkoleniowych i walidacyjnych.

Jon
źródło