Jak się dowiedzieć, czy krzywa uczenia się z modelu SVM cierpi na błąd lub wariancję?

Odpowiedzi:

13

Część 1: Jak odczytać krzywą uczenia się

Po pierwsze, powinniśmy skupić się na prawej stronie wykresu, gdzie są wystarczające dane do oceny.

  • Jeśli dwie krzywe są „blisko siebie” i obie mają niski wynik. Model cierpi na niedopasowany problem (wysokie odchylenie)

  • Jeśli krzywa treningowa ma znacznie lepszy wynik, ale krzywa testowa ma niższy wynik, tj. Między dwiema krzywymi występują duże przerwy. Następnie model ma problem z nadmiernym dopasowaniem (wysoka wariancja)

Część 2: Moja ocena podanej przez ciebie fabuły

Z fabuły trudno powiedzieć, czy model jest dobry, czy nie. Możliwe, że masz naprawdę „łatwy problem”, dobry model może osiągnąć 90%. Z drugiej strony możliwe jest, że masz naprawdę „trudny problem”, że najlepszą rzeczą, jaką możemy zrobić, jest osiągnięcie 70%. (Pamiętaj, że możesz nie oczekiwać, że będziesz mieć doskonały model, powiedzmy, że wynik wynosi 1. To, ile możesz osiągnąć, zależy od tego, ile szumów w twoich danych. Załóżmy, że twoje dane mają wiele punktów danych, mają funkcję DOKŁADNĄ, ale różne etykiety, bez względu na to, co robisz, nie możesz uzyskać 1 na wynik).

Innym problemem w twoim przykładzie jest to, że 350 przykładów wydaje się zbyt małych w rzeczywistej aplikacji.

Część 3: Więcej sugestii

Aby uzyskać lepsze zrozumienie, możesz wykonać następujące eksperymenty, aby doświadczyć niedopasowania i obserwować, co stanie się z krzywą uczenia się.

  • Wybierz bardzo skomplikowane dane, powiedzmy dane MNIST, i dopasuj do prostego modelu, powiedzmy model liniowy z jedną cechą.

  • Wybierz proste dane, powiedzmy dane tęczówki, pasujące do modelu złożoności, powiedzmy SVM.


Część 4: Inne przykłady

Ponadto podam dwa przykłady związane z niedopasowaniem i nadmiernym dopasowaniem. Zauważ, że nie jest to krzywa uczenia się, ale wydajność w odniesieniu do liczby iteracji w modelu zwiększania gradientu , gdzie więcej iteracji będzie miało większe szanse na przeregulowanie. Oś x pokazuje liczbę iteracji, a oś y pokazuje wydajność, która jest ujemna Obszar pod ROC (im niższa, tym lepsza).

Lewy wątek podrzędny nie cierpi z powodu nadmiernego dopasowania (dobrze również niedopasowanego, ponieważ wydajność jest dość dobra), ale prawy cierpi z powodu nadmiernego dopasowania, gdy liczba iteracji jest duża.

wprowadź opis zdjęcia tutaj

Haitao Du
źródło
Dziękuję hxd1011! Czy zgadzasz się ze mną, jeśli powiem, że mój model ma małą wariancję i trochę stronniczość (ponieważ wynik nie jest równy 1)?
Afke
@Papie Myślę, że twój model jest w porządku ... 80% wyniku nie jest złe, a dwie krzywe są blisko. Jedynym problemem są przykłady do 350, które mogą być zbyt małe w rzeczywistych aplikacjach.
Haitao Du
@Papie Ponadto, możesz nie oczekiwać, że będziesz mieć idealny model, powiedzmy, że wynik wynosi 1. To, ile możesz osiągnąć, zależy od tego, ile hałasu w twoich danych. Załóżmy, że Twoje dane mają wiele punktów danych, które mają funkcję DOKŁADNĄ, ale różne etykiety, bez względu na to, co robisz, nie możesz uzyskać 1 na wynik.
Haitao Du
11
Myślę, że jego „80% wyniku nie jest złe” nie jest dobrym sposobem na myślenie o różnych sprawach. Nie ma dobrego wyniku globalnego, zależy on w dużej mierze od rozwiązanego problemu, a dokładniej od stosunku sygnału do szumu w procesie i dostępnych danych. Wskazujesz to w swojej odpowiedzi, więc usunę komentarz „niezły”.
Matthew Drury
1
@MatthewDrury Dzięki za sugestie, odpowiedź poprawiona!
Haitao Du