Nadmierne dopasowanie: złożoność modelu

W poprzedniej lekcji przedstawiono model, który źle sklasyfikował wiele drzew w zbiorze testowym:

Rysunek 16. Ten sam obraz co na rysunku 13. To złożony kształt, który źle kategoryzuje wiele drzew.
Rysunek 16. Skomplikowany model z poprzedniej jednostki, który działa nieprawidłowo.

Poprzedni model zawiera wiele złożonych kształtów. Czy prostszy model lepiej poradzi sobie z nowymi danymi? Załóżmy, że zastąpisz złożony model bardzo prostym modelem – linią prostą.

Rysunek 17. Model linii prostej, który doskonale oddziela chore drzewa od zdrowych.
Rysunek 17. znacznie prostszy model.

Prosty model lepiej generalizuje się na nowych danych niż model złożony. Oznacza to, że prosty model lepiej przewidywał wyniki w zestawie testowym niż model złożony.

Prostota od dawna wygrywa z złożonością. W zasadzie preferowanie prostoty sięga czasów starożytnej Grecji. Wieki później XIV-wieczny franciszkanin Wilhelm z Okhamu sformalizował preferencję dla prostoty w filozofii znanej jako brzytwa Ockhama. Ta filozofia pozostaje podstawową zasadą wielu nauk, w tym systemów uczących się.

Ćwiczenia: sprawdź swoją wiedzę

Tworzysz równanie fizyczne. Która z tych formuł jest najbardziej zgodna z brzytwą Occama?
Formuła z 12 zmiennymi.
Formuła z 3 zmiennymi.
Pracujesz nad zupełnie nowym projektem systemów uczących się i zamierzasz wybrać pierwsze funkcje. Ile funkcji należy wybrać?
Wybierz jak najwięcej cech, aby móc obserwować, które z nich mają największą moc predykcyjną.
Wybierz 1–3 cechy, które wydają się mieć dużą moc predykcyjną.
Wybierz 4–6 cech, które wydają się mieć dużą moc predykcyjną.

Regularyzacja

Modele uczenia maszynowego muszą jednocześnie realizować 2 sprzeczne cele:

  • dobrze dopasowywać dane;
  • Dopasuj dane w jak najbardziej prosty sposób.

Jednym ze sposobów na utrzymanie prostoty modelu jest karanie złożonych modeli, czyli wymuszenie na modelu uproszczenia podczas trenowania. Karanie złożonych modeli to jedna z form regrytacji.

Straty i złożoność

Do tej pory w tym kursie sugerowaliśmy, że podczas trenowania jedynym celem było minimalizowanie straty, czyli:

minimize(loss)

Jak już widzisz, modele skupione wyłącznie na minimalizowaniu straty mają tendencję do nadmiernego dopasowywania. Lepszy algorytm optymalizacji treningu minimalizuje pewną kombinację utraty i złożoności:

minimize(loss + complexity)

Niestety, straty i złożoność są zwykle odwrotnie proporcjonalne. Wraz ze wzrostem złożoności straty maleją. Wraz ze spadkiem złożoności rośnie strata. Należy znaleźć rozsądny kompromis, w którym model będzie dobrze prognozował zarówno na podstawie danych treningowych, jak i danych rzeczywistych. Oznacza to, że model powinien znaleźć rozsądny kompromis między stratą a złożonością.

Co to jest złożoność?

Poznaliśmy już kilka różnych sposobów ilościowego określania strat. Jak zdefiniujesz złożoność? Rozpocznij eksplorację, wykonując ten ćwiczenie:

Ćwiczenie: sprawdź swoją intuicję

Do tej pory nie podaliśmy dokładnej definicji złożoności. Który z tych pomysłów na miarę złożoności jest rozsądny?
Złożoność jest funkcją wszystkich błędów w przypadku wszystkich cech w danym modelu.
Złożoność jest funkcją kwadratu wag modelu.
Złożoność jest funkcją wag modelu.