Dlaczego procedura walidacji krzyżowej rozwiązuje problem nadmiernego dopasowania modelu?
Dlaczego procedura walidacji krzyżowej rozwiązuje problem nadmiernego dopasowania modelu?
Odpowiedzi:
W tej chwili nie mogę wymyślić wystarczająco jasnego wyjaśnienia, więc zostawię to komuś innemu; jednak walidacja krzyżowa nie rozwiązuje całkowicie problemu nadmiernego dopasowania przy wyborze modelu, po prostu go zmniejsza. Błąd weryfikacji krzyżowej nie różni się nieznacznie, szczególnie jeśli rozmiar zestawu danych jest niewielki; innymi słowy, otrzymujesz nieco inną wartość w zależności od konkretnej próbki danych, której używasz. Oznacza to, że jeśli masz wiele stopni swobody w wyborze modelu (np. Wiele funkcji, z których możesz wybrać mały podzbiór, wiele hiperparametrów do dostrojenia, wiele modeli do wyboru), możesz przesadzić z kryterium weryfikacji krzyżowej ponieważ model jest dostrojony w taki sposób, aby wykorzystywać tę losową odmianę, a nie w sposób, który naprawdę poprawia wydajność, i możesz skończyć z modelem, który działa słabo. Omówienie tego, patrzCawley and Talbot „O nadmiernym dopasowaniu w wyborze modelu i późniejszym odchyleniu w ocenie wyników”, JMLR, vol. 11, s. 2079–2107, 2010
Niestety walidacja krzyżowa najprawdopodobniej zawiedzie Cię, gdy masz mały zestaw danych, czyli właśnie wtedy, gdy najbardziej potrzebujesz walidacji krzyżowej. Zwróć uwagę, że k-krotna walidacja krzyżowa jest ogólnie bardziej niezawodna niż pomijalna walidacja krzyżowa, ponieważ ma mniejszą wariancję, ale może być droższa w obliczeniach dla niektórych modeli (dlatego właśnie LOOCV jest czasami używany do wyboru modelu, mimo że ma dużą wariancję).
Moja odpowiedź jest bardziej intuicyjna niż rygorystyczna, ale może pomoże ...
Jak rozumiem, nadmierne dopasowanie jest wynikiem wyboru modelu opartego na szkoleniu i testowaniu z wykorzystaniem tych samych danych, przy czym masz elastyczny mechanizm dopasowywania: dopasowujesz swoją próbkę danych tak ściśle, że dopasowujesz hałas, wartości odstające i wszystkie inna wariancja.
Podział danych na zestaw szkoleniowy i testowy powstrzymuje cię przed zrobieniem tego. Ale podział statyczny nie wykorzystuje danych w sposób wydajny, a sam podział może być problemem. Weryfikacja krzyżowa utrzymuje przewagę polegającą na braku nagrody i dokładnego dopasowania do danych treningowych w ramach podziału testów szkoleniowych, a jednocześnie wykorzystuje dane, które posiadasz tak efektywnie, jak to możliwe (tzn. Wszystkie twoje dane są wykorzystywane jako dane treningowe i testowe, po prostu nie w tym samym przebiegu).
Jeśli masz elastyczny mechanizm dopasowania, musisz ograniczyć wybór modelu, aby nie sprzyjał „perfekcyjnemu”, ale jakoś skomplikowanemu dopasowaniu. Możesz to zrobić za pomocą AIC, BIC lub innej metody penalizacji, która bezpośrednio penalizuje złożoność dopasowania, lub możesz to zrobić za pomocą CV. (Lub możesz to zrobić za pomocą metody dopasowania, która nie jest zbyt elastyczna, co jest jednym z powodów, dla których modele liniowe są ładne).
Innym sposobem spojrzenia na to jest to, że uczenie się polega na uogólnianiu, a zbyt ciasne dopasowanie w pewnym sensie nie jest uogólniające. Zmieniając to, czego się uczysz i na czym jesteś testowany, generalizujesz lepiej niż gdybyś nauczył się tylko odpowiedzi na określony zestaw pytań.
Z perspektywy bayesowskiej nie jestem pewien, czy krzyżowa walidacja robi coś, czego „właściwa” analiza bayesowska nie robi w przypadku porównywania modeli. Ale nie jestem w 100% pewien, że tak.
Wynika to z faktu, że jeśli porównujesz modele w sposób bayesowski, to zasadniczo już przeprowadzasz walidację krzyżową. Wynika to z tego, że szanse tylne modelu A against model B , with data and prior information has the following form:
I jest dany przez:
Który nazywa się wcześniejszym rozkładem predykcyjnym. It basically says how well the model predicted the data that was actually observed, which is exactly what cross validation does, with the "prior" being replaced by the "training" model fitted, and the "data" being replace by the "testing" data. So if model B predicted the data better than model A, its posterior probability increases relative to model A. It seems from this that Bayes theorem will actually do cross validation using all the data, rather than a subset. However, I am not fully convinced of this - seems like we get something for nothing.
Inną fajną cechą tej metody jest to, że ma ona wbudowaną „brzytwę Occam'a”, podaną przez stosunek stałych normalizacji poprzednich rozkładów dla każdego modelu.
Jednak krzyżowa walidacja wydaje się cenna w przypadku przerażającego starego „czegoś innego” lub czegoś, co jest czasami nazywane „błędnym określeniem modelu”. Ciągle jestem rozdarty tym, czy to „coś innego” ma znaczenie, czy nie, bo wydaje się, że powinno to mieć znaczenie - ale pozostawia cię sparaliżowanym bez żadnego rozwiązania, kiedy to najwyraźniej ma znaczenie. Po prostu coś, co sprawi ci ból głowy, ale nic nie możesz na to poradzić - oprócz myślenia o tym, co to może być „coś innego” i wypróbowania go w swoim modelu (aby nie był już częścią „czegoś innego”) .
And further, cross validation is a way to actually do a Bayesian analysis when the integrals above are ridiculously hard. And cross validation "makes sense" to just about anyone - it is "mechanical" rather than "mathematical". So it is easy to understand what is going on. And it also seems to get your head to focus on the important part of models - making good predictions.