Rozumiem, że nawet przy przestrzeganiu odpowiednich procedur walidacji krzyżowej i wyboru modelu, nadmierne dopasowanie nastąpi, jeśli ktoś będzie szukał wystarczająco modelu , chyba że nałoży ograniczenia na złożoność modelu, okres. Co więcej, często ludzie próbują nauczyć się kar za złożoność modelu na podstawie danych, które podważają ochronę, którą mogą zapewnić.
Moje pytanie brzmi: ile jest prawdy w powyższym stwierdzeniu?
Często słyszę, jak praktykujący ML mówią: „ W mojej firmie / laboratorium zawsze próbujemy każdego dostępnego modelu (np. Z bibliotek typu caret lub scikit-learn ), aby zobaczyć, który z nich działa najlepiej ”. Często twierdzę, że takie podejście może łatwo przerastać, nawet jeśli poważnie podchodzą do weryfikacji krzyżowej i utrzymują zestawy wstrzymujące w dowolny sposób. Co więcej, im trudniej szukają, tym bardziej prawdopodobne jest, że się przewyższą. Innymi słowy, nadmierna optymalizacja jest prawdziwym problemem i nie ma heurystyk, które mogłyby pomóc w systematycznej walce z nią. Czy mylę się myśląc w ten sposób?
źródło
Odpowiedzi:
Nie cała odpowiedź, ale jedną z rzeczy, które ludzie pomijają w tej dyskusji, jest to, co oznacza na przykład Cross-Validation, dlaczego z niej korzystasz i co obejmuje?
Problem, który widzę przy zbyt trudnym wyszukiwaniu, polega na tym, że CV, które ludzie robią, jest często w ramach jednego modelu. Łatwe do wykonania poprzez ustawienie
folds=
argumentu procedury dopasowania modelu. Ale kiedy przechodzisz do wielu modeli, a nawet wielu procedur tworzenia wielu modeli, dodajesz kolejną warstwę lub dwie, których nie zawijałeś w CV.Dlatego powinni używać zagnieżdżonego CV. Powinny także używać „Tasowania celu” (testowania ponownego próbkowania / permutacji) w całym procesie, aby zobaczyć, jak dobrze ich procedura poradziłaby sobie z przerwaniem zależności między zmiennymi zależnymi i niezależnymi - tj. O ile lepiej radzisz sobie niż losowo biorąc pod uwagę cały proces?
źródło
W ciągu moich 4-letniego doświadczenia odkryłem, że wypróbowanie każdego modelu dostępnego w Caret (lub scikit-learn) niekoniecznie prowadzi do przeregulowania. Przekonałem się, że jeśli masz wystarczająco duży zestaw danych (ponad 10 000 wierszy) i mniej więcej równy bilans klas (tj. Brak nierównowagi klas, jak w przypadku ryzyka kredytowego lub problemów marketingowych), to nadmierne dopasowanie jest zazwyczaj minimalne. Warto zauważyć, że moje wyszukiwanie siatki w parametrach strojenia zwykle nie przekracza 30 permutacji na model. W skrajnym przypadku, jeśli użyjesz 100 lub 1000 permutacji na model, prawdopodobnie byś się przełożył.
Sposób, w jaki sformułowałeś swoje pytanie, sprawia, że odpowiedź jest dość łatwa: w skrajnym przypadku tak, nadmierne dopasowanie jest prawdopodobne, jeśli nie pewne. Nie ma srebrnej kuli i wątpię, by ktoś sugerował inaczej. Jednak nadal istnieje dość szerokie spektrum, w którym stopień nadmiernego dopasowania jest na tyle minimalny, aby był możliwy do zaakceptowania. Posiadanie zdrowej ilości niewidzialnych danych w zestawie wstrzymań walidacji zdecydowanie pomaga. Posiadanie wielu niewidocznych zestawów wstrzymania sprawdzania poprawności jest jeszcze lepsze. Mam to szczęście, że mogę pracować w dziedzinie, w której codziennie pojawiają się duże ilości nowych danych.
Jeśli jestem w pozycji, w której utknąłem ze statycznym zestawem danych zawierającym mniej niż 2000-3 000 obserwacji (np. Trudno dostępnych danych medycznych), zazwyczaj używam tylko modeli liniowych, ponieważ często widziałem przeregulowanie gradientem zwiększanie i wspieranie maszyn wektorowych na wystarczająco małych zestawach danych. Z drugiej strony rozmawiałem z jednym z najlepszych Kagglerów (5%), który powiedział, że buduje dziesiątki tysięcy modeli na każdą konkurencję, a następnie je montuje, używając kilku tysięcy modeli w swoim ostatnim zespole. Powiedział, że był to główny powód jego sukcesu na końcowych listach liderów.
źródło
Tak wiele zależy od skali. Chciałbym móc liczyć na ponad 2 000 - 3 000 przypadków takich jak @RyanZotti; Rzadko mam 1/10 tego tyle. To duża różnica w perspektywie między ludźmi uczącymi się maszynowo „dużych zbiorów danych” a tymi pracującymi w dziedzinach takich jak biomedycyna, co może tłumaczyć niektóre z różnych perspektyw, które można znaleźć na tej stronie.
Przedstawię heurystyczne wyjaśnienie mojego podejścia do tego problemu. Podstawowym problemem nadmiernego dopasowania, opisanym na stronie Wikipedii , jest związek między liczbą przypadków a liczbą ocenianych parametrów. Zacznij więc od surowego pomysłu, że jeśli masz M modeli, które wybierasz spośród parametrów p na model, wówczas oceniasz coś w kolejności parametrów Mp ogółem.
Jeśli istnieje niebezpieczeństwo przeregulowania, istnieją dwa ogólne sposoby powrotu do bardziej ogólnego modelu: zmniejsz liczbę parametrów lub w jakikolwiek sposób ukaraj je.
Przy odpowiednio dużych zestawach danych może nigdy nie być tak blisko przeregulowania. Jeśli masz 20 000 przypadków i 20 różnych modeli ze 100 parametrami na model, możesz nie mieć kłopotów nawet bez kary, ponieważ nadal masz 10 przypadków na efektywny parametr. Nie próbuj tej strategii modelowania tylko z 200 przypadkami.
Uśrednianie modelu można uznać za formę kary. W przykładzie Kagglera cytowanym przez @RyanZotti liczba przypadków jest przypuszczalnie ogromna, a każdy z „kilku tysięcy” modeli w końcowym zespole indywidualnie stanowi jedynie niewielką część ostatecznego modelu. Każde nadmierne dopasowanie specyficzne dla konkretnego modelu przyczyniającego się nie będzie miało wielkiego wpływu na końcowy wynik, a wyjątkowo duża liczba przypadków w zawodach Kagglera dodatkowo zmniejsza ryzyko nadmiernego dopasowania.
Tak więc, jak w przypadku tak wielu problemów, jedyną rozsądną odpowiedzią jest: „To zależy”. W tym przypadku zależy to od zależności między liczbą przypadków a skuteczną liczbą zbadanych parametrów, a także od tego, jaka kara jest stosowana.
źródło
Myślę, że to bardzo dobre pytanie. Zawsze chcę obserwować krzywą kształtu „U” w eksperymentach krzyżowej weryfikacji z rzeczywistymi danymi. Jednak moje doświadczenie z rzeczywistymi danymi (~ 5 lat w transakcjach kartami kredytowymi i danymi edukacyjnymi) nie mówi mi, że dopasowanie może się łatwo zdarzyć w ogromnych ilościach (miliardy wierszy) rzeczywistych danych .
Często obserwuję, że możesz najlepiej wypróbować zestaw treningowy, ale nie możesz zrobić zbyt wiele (np. Zmniejszyć stratę do 0), ponieważ zestaw treningowy jest naprawdę duży i zawiera dużo informacji i hałasu.
Jednocześnie możesz wypróbować najbardziej skomplikowany model (bez regularyzacji) na testowaniu danych, i wydaje się on w porządku, a nawet lepszy niż niektóre z regularyzacją.
Wreszcie, myślę, że moje stwierdzenia mogą być prawdziwe tylko pod warunkiem, że podczas szkolenia masz miliardy punktów danych. Intuicyjnie dane są znacznie bardziej skomplikowane niż w modelu, więc nie zmieścisz się. W przypadku miliardów wierszy danych, nawet jeśli używasz modelu z tysiącami parametrów, jest w porządku. Jednocześnie nie możesz sobie pozwolić na obliczenia związane z budowaniem modelu z milionem wolnych parametrów.
Moim zdaniem właśnie dlatego popularność sieci neuronowej i głębokiego uczenia się stała się popularna. W porównaniu z miliardami zdjęć w Internecie, każdy model, na jaki stać Cię na szkolenie, nie wystarcza, aby się zmieścić.
źródło
Zgadzam się z @ ryan-zotti, że wystarczająco intensywne poszukiwanie niekoniecznie prowadzi do nadmiernego dopasowania - a przynajmniej do takiej kwoty, że nazwalibyśmy to nadmiernym dopasowaniem. Pozwól mi spróbować przedstawić swój punkt widzenia na ten temat:
Box powiedział kiedyś:
(Doskonałość wymagałaby wszystkich danych, co z kolei wyeliminowałoby potrzebę posiadania modelu).
Ponieważ: w końcu zawsze będziemy mieć błąd modelu / niedopełnienie / niedopasowanie - liczy się możliwość wykrycia / zmierzenia tego błędu w obrębie naszego zainteresowania, aby dokonać rozsądnego wyboru.
źródło