Unikaj nadmiernego dopasowania w regresji: alternatywy dla regularyzacji


19

Regularyzacja w regresji (liniowa, logistyczna ...) jest najpopularniejszym sposobem ograniczenia nadmiernego dopasowania.

Kiedy celem jest dokładność prognoz (nie wyjaśniając), czy istnieją jakieś dobre alternatywy dla regularyzacji, szczególnie odpowiednie dla dużych zbiorów danych (mi / miliardy obserwacji i miliony funkcji)?


3
„Duże zbiory danych” mogą oznaczać wiele obserwacji, wiele zmiennych lub jedno i drugie, a odpowiedź może zależeć od liczby obserwacji i zmiennych.
Pere

Dlaczego nie skorzystać z normalizacji? W przypadku sieci neuronowych istnieje
rezygnacja

4
Zaletą regularyzacji jest to, że jest tania obliczeniowo. Metody zespolone, takie jak tworzenie worków i boosting (itp.) W połączeniu z metodami weryfikacji krzyżowej do diagnostyki modeli są dobrą alternatywą, ale będzie to rozwiązanie znacznie droższe.
Digio,

1
Może to być interesujące: stats.stackexchange.com/a/161592/40604
Dan.

1
Dodając do komentarza Digio: regularyzacja jest tania w porównaniu z tworzeniem worków / boosterów, ale wciąż jest droga w porównaniu z alternatywą „braku regularyzacji” (patrz np. Ten post Bena Rechta na temat tego, w jaki sposób uregulowanie utrudnia głębokie uczenie się ). Jeśli masz ogromną liczbę próbek, żadna regularyzacja nie będzie działać dobrze za znacznie tańsze. Model może nadal generalizować, jak wskazuje @ hxd1001 )
Berk U.

Odpowiedzi:


11

Dwie ważne kwestie, które nie są bezpośrednio związane z twoim pytaniem:

  • Po pierwsze, nawet celem jest dokładność zamiast interpretacji, w wielu przypadkach nadal konieczna jest normalizacja, ponieważ zapewni ona „wysoką dokładność” rzeczywistego zestawu danych testowych / produkcyjnych, a nie danych wykorzystywanych do modelowania.

  • Po drugie, jeśli istnieje miliard wierszy i milionów kolumn, możliwe jest, że nie jest wymagana regularyzacja. Wynika to z faktu, że dane są ogromne, a wiele modeli obliczeniowych ma „ograniczoną moc”, co oznacza, że ​​prawie niemożliwe jest ich przekroczenie. Właśnie dlatego niektóre głębokie sieci neuronowe mają miliardy parametrów.


A teraz o twoim pytaniu. Jak wspomnieli Ben i Andrey, istnieją pewne opcje jako alternatywy dla regularyzacji. Chciałbym dodać więcej przykładów.

  • Użyj prostszego modelu (na przykład zmniejsz liczbę jednostek ukrytych w sieci neuronowej. Użyj wielomianowego jądra niższego rzędu w SVM. Zmniejsz liczbę Gaussian w mieszance Gaussa. Itp.)

  • Zatrzymaj wcześnie w optymalizacji. (Na przykład, skróć epokę szkolenia w sieci neuronowej, zmniejsz liczbę iteracji w optymalizacji (CG, BFGS itp.)

  • Średnia w wielu modelach (na przykład losowy las itp.)


Wielkie dzięki. Druga opcja (przestań wcześnie) to to, czego obecnie próbujemy z SGD. Działa raczej dobrze. Wkrótce chcemy to porównać z regularyzacją. Czy znasz jakiś artykuł, który wspomina o tej metodzie?
Benoit Sanchez,

1
Jest wskazówka geometrycznej zależności między wczesnym zatrzymaniem z opadaniem gradientu a regularyzacją. Na przykład regresja grzbietu w swojej pierwotnej formie wymaga parametrów minimalizujących funkcję utraty, które mieszczą się w jednolitej elipsie wyśrodkowanej na początku, przy czym rozmiar elipsy jest funkcją siły regularyzacji. Parametry kalenicy leżą na powierzchni elipsy, jeśli różnią się od rozwiązania nieregulowanego. Jeśli zaczniesz wspinać się od początku, a potem zatrzymasz się wcześnie, znajdziesz się na granicy jednej z tych elips ...
Matthew Drury

Ponieważ podążałeś za gradientami, podążałeś ścieżką do prawdziwego minimum, więc w przybliżeniu przez większość czasu będziesz w pobliżu rozwiązania grzbietu. Nie jestem pewien, jak rygorystycznie możesz zrobić ten tok myślenia, ale może istnieć związek.
Matthew Drury

@BenoitSanchez Ten artykuł może być istotny. Autorzy zajmują się innym problemem (nadmiernym dopasowaniem w obliczeniach wektorów własnych), ale strategia radzenia sobie z nadmiernym dopasowaniem jest taka sama (tj. Ukryta regularyzacja poprzez zmniejszenie obliczeń). Strategia polega na rozwiązaniu tańszego problemu, który daje przybliżone rozwiązanie (które - jak sądzę - jest tym samym, co zatrzymanie na wczesnym etapie optymalizacji).
Berk U.

@BenoitSanchez Polecam to. Wykłady Lorenza są dostępne na youtube, ale na tej stronie znajdują się również linki do kilku artykułów mit.edu/~9.520/fall17/Classes/early_stopping.html
David Kozak

14

Dwie alternatywy dla regularyzacji:

  1. Miej wiele, wiele obserwacji
  2. Użyj prostszego modelu

Geoff Hinton (współtwórca propagacji wstecznej) opowiedział kiedyś historię inżynierów, którzy powiedzieli mu (parafrazując): „Geoff, nie potrzebujemy porzucenia naszych głębokich sieci, ponieważ mamy tak dużo danych”. I jego odpowiedź była: „No, to należy budować nawet głębsze sieci, dopóki nie przeuczenia, a następnie użyj przerywania”. Pomijając dobrą radę, najwyraźniej można uniknąć regularyzacji nawet przy głębokich sieciach, o ile istnieje wystarczająca ilość danych.

Przy stałej liczbie obserwacji możesz również wybrać prostszy model. Prawdopodobnie nie potrzebujesz regularyzacji, aby oszacować przecięcie, nachylenie i wariancję błędu w prostej regresji liniowej.


3

Niektóre dodatkowe możliwości uniknięcia przeuczenia

  • Redukcja wymiarów

    ml<<m

  • Wybór funkcji (także redukcja wymiarowości)

    Możesz wykonać rundę wyboru elementów (np. Używając LASSO), aby uzyskać niższą przestrzeń cech. Coś takiego jak wybór funkcji za pomocą LASSO może być przydatny, jeśli jakiś duży, ale nieznany podzbiór funkcji jest nieistotny.

  • Używaj algorytmów mniej podatnych na przerost, takich jak losowy las. (W zależności od ustawień, liczby funkcji itp. ... mogą być one bardziej kosztowne obliczeniowo niż zwykłe najmniejsze kwadraty).

    W niektórych innych odpowiedziach wspomniano również o zaletach technik / algorytmów wzmacniania i workowania.

  • Metody bayesowskie

    Dodanie przedrostka do wektora współczynnika w celu zmniejszenia nadmiernego dopasowania. Jest to koncepcyjnie związane z regularyzacją: np. regresja grzbietu jest szczególnym przypadkiem oceny maksymalnej a posteriori.


2

Jeśli używasz modelu z solwerem, w którym możesz zdefiniować liczbę iteracji / epok, możesz śledzić błąd sprawdzania poprawności i zastosować wcześniejsze zatrzymanie: zatrzymaj algorytm, gdy błąd sprawdzania zacznie rosnąć.


1
To pytanie wyraźnie dotyczy modeli regresji (liniowej, logistycznej).
Matthew Drury

2
Technicznie rzecz biorąc regresja liniowa i logistyczna to bardzo proste sieci neuronowe.
Andrey Lukyanenko

2
Nie sądzę, żeby to zmieniło moje przekonanie, że to nie odpowiada na zadane pytanie. Jeśli przerobiłeś to, by powiedzieć „jeśli dopasujesz regresję z jakąś formą opadania gradientu i zastosujesz wczesne zatrzymanie”, byłoby lepiej.
Matthew Drury,

Nawet sklearn ma wiele modeli, które obsługują parametr ograniczający liczbę iteracji. Można go użyć do śledzenia dokładności. Ale przypuszczam, że masz rację, że sformułowanie nie jest dokładnie poprawne.
Andrey Lukyanenko

1

Dwie myśli:

  1. Popieram strategię „użyj prostszego modelu” zaproponowaną przez Bena Ogorka .

    Pracuję na bardzo rzadkich liniowych modelach klasyfikacyjnych o małych współczynnikach całkowitych (np. Maks. 5 zmiennych o współczynnikach całkowitych od -5 do 5). Modele uogólniają się pod względem dokładności i trudniejszych wskaźników wydajności (np. Kalibracja).

    n/d

  2. Jeśli możesz określić dodatkowe ograniczenia dla swojego modelu (np. Ograniczenia monotoniczności, informacje dodatkowe), może to również pomóc w uogólnieniu poprzez zmniejszenie przestrzeni hipotez (patrz np. Ten artykuł ).

    Trzeba to zrobić ostrożnie (np. Prawdopodobnie chcesz porównać swój model z linią bazową bez ograniczeń i zaprojektować swój proces treningowy w taki sposób, aby upewnić się, że nie wybierasz ograniczeń).

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.