To pytanie może być zbyt otwarte, aby uzyskać ostateczną odpowiedź, ale mam nadzieję, że nie.
Algorytmy uczenia maszynowego, takie jak SVM, GBM, Random Forest itp., Generalnie mają pewne wolne parametry, które poza pewną wskazówką praktyczną, muszą być dostosowane do każdego zestawu danych. Zazwyczaj odbywa się to za pomocą pewnego rodzaju techniki ponownego próbkowania (bootstrap, CV itp.) W celu dopasowania zestawu parametrów, które dają najlepszy błąd generalizacji.
Moje pytanie brzmi: czy możesz posunąć się za daleko? Ludzie mówią o przeszukiwaniu sieci jako takiej, ale dlaczego po prostu nie potraktować tego jako problemu optymalizacji i przejść do najlepszego możliwego zestawu parametrów? Zapytałem o pewną mechanikę tego pytania w tym pytaniu, ale nie spotkało się to z dużym zainteresowaniem. Może pytanie zostało źle zadane, ale może samo pytanie reprezentuje złe podejście, którego ludzie na ogół nie robią?
Niepokoi mnie brak regularyzacji. Mogę stwierdzić przez ponowne próbkowanie, że najlepsza liczba drzew rosnących w GBM dla tego zestawu danych to 647 przy głębokości interakcji wynoszącej 4, ale jak mogę być pewien, że tak będzie w przypadku nowych danych (przy założeniu nowej populacji jest identyczny z zestawem treningowym)? Bez rozsądnej wartości, aby „skurczyć się” (lub jeśli nie, bez wcześniejszych informacji), ponowne próbkowanie wydaje się najlepszym rozwiązaniem. Po prostu nie słyszę o tym żadnej rozmowy, więc zastanawiam się, czy czegoś brakuje.
Oczywiście wiąże się to z dużymi kosztami obliczeniowymi związanymi z wykonywaniem wielu wielu iteracji w celu wyciśnięcia każdej ostatniej mocy predykcyjnej z modelu, więc oczywiście jest to coś, co zrobiłbyś, gdybyś miał czas / chrząknięcie na optymalizację i za każdym razem poprawy wydajności jest cenna.
Odpowiedzi:
Ostateczna odpowiedź na to pytanie brzmi: „tak, z pewnością możliwe jest zastąpienie kryterium wyboru modelu opartego na krzyżowej walidacji i uzyskanie modelu słabo uogólniającego! ”. Moim zdaniem wydaje się, że nie jest to powszechnie doceniane, ale stanowi poważną pułapkę w stosowaniu metod uczenia maszynowego i jest głównym przedmiotem moich obecnych badań; Do tej pory napisałem dwa artykuły na ten temat
GC Cawley i NLC Talbot, Nadmierne dopasowanie w wyborze modelu i późniejsze odchylenie wyboru w ocenie wydajności, Journal of Machine Learning Research, 2010. Research, vol. 11, s. 2079–2107, lipiec 2010 r. ( Www )
co pokazuje, że nadmierne dopasowanie w wyborze modelu jest poważnym problemem w uczeniu maszynowym (i można uzyskać bardzo tendencyjne oszacowania wydajności, jeśli zmniejszysz narożniki w wyborze modelu podczas oceny wydajności) i
GC Cawley i NLC Talbot, Zapobieganie nadmiernemu dopasowaniu w wyborze modelu poprzez bayesowską regularyzację hiperparametrów, Journal of Machine Learning Research, tom 8, strony 841-861, kwiecień 2007. ( www )
gdzie kryterium wyboru modelu opartego na weryfikacji krzyżowej jest regulowane, aby spróbować poprawić nadmierne dopasowanie w wyborze modelu (co jest kluczowym problemem, jeśli używasz jądra z wieloma hiperparametrami).
W tej chwili piszę artykuł na temat wyboru modelu opartego na wyszukiwaniu siatki, który pokazuje, że z pewnością możliwe jest użycie siatki, która jest zbyt dobra, gdy otrzymujesz model, który jest statystycznie gorszy od modelu wybranego przez wiele grubsza siatka (pytanie StackExchange zainspirowało mnie do szukania siatki).
Mam nadzieję że to pomoże.
PS Bezstronna ocena wydajności i rzetelny wybór modelu mogą być rzeczywiście drogie obliczeniowo, ale z mojego doświadczenia wynika, że warto. Zagnieżdżona walidacja krzyżowa, w której zewnętrzna walidacja krzyżowa jest używana do oceny wydajności, a wewnętrzna walidacja krzyżowa do wyboru modelu jest dobrym podstawowym podejściem.
źródło
Wykazano, że walidacja krzyżowa i bootstrap dają oszacowania poziomu błędu, które są prawie bezstronne, aw niektórych przypadkach dokładniejsze dzięki bootstrapowi w porównaniu z walidacją krzyżową. Problem z innymi metodami, takimi jak ponowne podstawianie, polega na tym, że oszacowanie błędu w tym samym zbiorze danych, który pasuje do klasyfikatora, może rażąco nie docenić poziomu błędu i może prowadzić do algorytmów, które zawierają zbyt wiele parametrów i nie będą przewidywać przyszłych wartości tak dokładnie, jak algorytm pasujący do małego zestawu parametrów. Kluczem do korzystania z metod statystycznych jest to, że dane, które przechodzisz do klasyfikatora, są typowe dla danych, które zobaczysz w przyszłości, w których brakuje klas i muszą zostać przewidziane przez klasyfikatora. Jeśli uważasz, że przyszłe dane mogą być bardzo różne, to metody statystyczne nie mogą pomóc, a ja nie
źródło
Podejrzewam, że jedną z odpowiedzi jest to, że w kontekście optymalizacji próbujesz znaleźć globalne minimum
noisy
funkcji kosztu. Masz więc wszystkie wyzwania związane z wielowymiarową globalną optymalizacją plus element stochastyczny dodany do funkcji kosztów.Wiele podejść do radzenia sobie z wyzwaniami lokalnych minimów i samych drogich przestrzeni poszukiwań ma parametry, które mogą wymagać dostrajania, takie jak metody symulowanego wyżarzania lub metody Monte Carlo.
Podejrzewam, że w idealnym wszechświecie bez ograniczeń obliczeniowych można spróbować znaleźć globalne minimum przestrzeni parametrów z odpowiednio ścisłymi ograniczeniami odchylenia i wariancji oszacowania funkcji błędu. Czy ten scenariusz nie będzie problemem, ponieważ można ponownie próbkować ad infinitum.
Podejrzewam, że w prawdziwym świecie łatwo znajdziesz się w lokalnym minimum.
Jak wspomniałeś, jest to osobny problem, ale wciąż pozostaje to otwarte na nadmierne dopasowanie z powodu problemów z próbkowaniem związanych z dostępnymi danymi i ma związek z rzeczywistym leżącym u podstaw rozkładem przestrzeni próbki.
źródło
Zależy to ściśle od algorytmu, ale na pewno możesz - choć w większości przypadków będzie to tylko łagodny marnowanie wysiłku.
Istotą tego problemu jest to, że nie jest to ścisła optymalizacja - nie masz zdefiniowanego w jakiejś domenie, która ma ekstremum dla co najmniej jednej wartości , powiedz , a wszystko, co musisz zrobić, to go znaleźć. Zamiast tego masz , gdzie ma trochę zwariowaną dystrybucję, jest często stochastyczny i zależy nie tylko od , ale także twoich danych treningowych i szczegółów CV / bootstrap. W ten sposób jedyną rozsądną rzeczą, którą możesz wyszukać, jest podprzestrzeń domeny s, powiedzmy , na której wszystkie wartościf(x) x xopt f(x)+ϵ ϵ x f Xopt∋xopt f+ϵ różnią się nieznacznie (statystycznie, jeśli chcesz).
Teraz, chociaż nie możesz znaleźć , w praktyce wystarczy dowolna wartość z - i zwykle jest to tylko punkt siatki wyszukiwania od wybrany losowo, aby zminimalizować obciążenie obliczeniowe, aby zmaksymalizować trochę sub miary wydajności, to nazwę.xopt Xopt Xopt f
Poważne przeregulowanie może się zdarzyć, jeśli krajobraz ma ostrą ekstrema - jednak to „nie powinno się zdarzyć”, tj. Jest to cecha bardzo źle dobranej pary algorytm / dane i złego prognozowania mocy generalizacyjnej.f
Zatem, cóż, (w oparciu o praktyki obecne w dobrych czasopismach) pełna, zewnętrzna walidacja wyboru parametrów nie jest czymś, co rygorystycznie musisz zrobić (w przeciwieństwie do walidacji wyboru funkcji), ale tylko wtedy, gdy optymalizacja jest pobieżna, a klasyfikator jest raczej niewrażliwy na Parametry.
źródło
Tak, parametry można „dopasować” do zestawu treningowego i testowego podczas walidacji krzyżowej lub ładowania początkowego. Istnieją jednak pewne metody, aby temu zapobiec. Pierwsza prosta metoda polega na podzieleniu zestawu danych na 3 partycje, jedną do testowania (~ 20%), drugą do testowania zoptymalizowanych parametrów (~ 20%) i jedną do dopasowania klasyfikatora do ustawionych parametrów. Jest to możliwe tylko wtedy, gdy masz dość duży zestaw danych. W innych przypadkach sugerowana jest podwójna walidacja krzyżowa.
Romain François i Florent Langrognet, „Double Cross Validation for Class Based Classification”, 2006
źródło