Załóżmy, że próbujesz zminimalizować funkcję celu poprzez liczbę iteracji. A aktualna wartość to . W danym zestawie danych nie ma „błędów nieredukowalnych” i można zminimalizować utratę danych treningowych do . Teraz masz dwa sposoby, aby to zrobić.0,0100,00,0
Pierwszy sposób to „duża szybkość uczenia się” i kilka iteracji. Załóżmy, że możesz zmniejszyć stratę o w każdej iteracji, a następnie w iteracjach możesz zmniejszyć stratę do .10 0,010,0100,0
Drugi sposób to „wolny współczynnik uczenia się”, ale więcej iteracji. Załóżmy, że możesz zmniejszyć straty o w każdej iteracji i potrzebujesz iteracji, aby uzyskać 0,0 straty danych treningowych.1001.0100
Pomyślcie teraz: czy oba podejścia są równe? a jeśli nie, który z nich jest lepszy w kontekście optymalizacji i uczenia maszynowego ?
W literaturze dotyczącej optymalizacji oba podejścia są takie same. Ponieważ oba są zbieżne z optymalnym rozwiązaniem . Z drugiej strony w uczeniu maszynowym nie są one równe. Ponieważ w większości przypadków straty treningowe nie są ustawione na co spowoduje nadmierne dopasowanie.0
Możemy myśleć o pierwszym podejściu jako o „wyszukiwaniu siatki zgrubnej na poziomie”, a o drugim podejściu jako o „poszukiwaniu siatki o drobnym poziomie”. Drugie podejście zwykle działa lepiej, ale wymaga większej mocy obliczeniowej dla większej liczby iteracji.
Aby zapobiec nadmiernemu dopasowaniu, możemy robić różne rzeczy, pierwszym sposobem byłoby ograniczenie liczby iteracji, załóżmy, że stosujemy pierwsze podejście, ograniczamy liczbę iteracji do 5. Na koniec utrata danych treningowych wynosi . (BTW, byłoby to bardzo dziwne z punktu widzenia optymalizacji , co oznacza, że możemy w przyszłości ulepszyć nasze rozwiązanie / nie jest ono zbieżne, ale zdecydowaliśmy się tego nie robić . W trakcie optymalizacji zwykle dodajemy ograniczenia lub warunki kary do funkcji celu, ale zwykle nie ogranicza liczby iteracji).50
Z drugiej strony możemy również zastosować drugie podejście: jeśli ustawimy małą szybkość uczenia się, powiedzmy, zmniejszaj straty o dla każdej iteracji, chociaż mamy dużą liczbę iteracji, powiedzmy iteracji, nadal nie zminimalizowaliśmy straty do .500 0,00,15000,0
Dlatego mały wskaźnik uczenia się jest w pewnym sensie równoznaczny z „większą regularyzacją”.
Oto przykład użycia innej szybkości uczenia się na podstawie danych eksperymentalnych xgboost
. Sprawdź poniższe dwa linki, aby zobaczyć, co to znaczy eta
lub co n_iterations
oznacza.
Parametry dla Tree Booster
Nadmierne dopasowanie kontroli XGBoost
Dla tej samej liczby iteracji powiedz . Mały wskaźnik uczenia się jest „niedopasowany” (lub model ma „wysoki błąd”), a duży wskaźnik uczenia się jest „nadmierny” (lub model ma „dużą wariancję”).50
PS. dowodem niedopasowania jest to, że zarówno zestaw szkoleniowy, jak i testowy mają duży błąd, a krzywa błędów dla szkolenia i testowania jest blisko siebie. Oznaką nadmiernego dopasowania jest to, że błąd zestawu treningowego jest bardzo niski, a zestaw testowy jest bardzo wysoki, dwie krzywe są daleko od siebie.