11 · Prawa i prawdy · 4 min czytania · Interaktywne · aktualizacja
Dlaczego model wybrany jako najlepszy na walidacji wypada gorzej na nowych danych?
W skrócie
Wynik kandydata wybranego jako najlepszy na tych samych danych jest zawyżony, bo wybór faworyzuje korzystny szum pomiaru. Na nowych danych szczęście znika.
Co to jest
Prawo: wynik kandydata wybranego jako najlepszy spośród wielu na podstawie tego samego zaszumionego pomiaru jest systematycznie zawyżony względem jego wyniku na nowych danych. Zjawisko opisali Capen, Clapp i Campbell w 1971 roku na przykładzie przetargów na złoża ropy: firma, która wygrywa licytację, to zwykle ta, która najbardziej przeszacowała wartość złoża.
W uczeniu maszynowym ta sama mechanika nazywa się obciążeniem selekcji (selection bias) albo przeuczeniem do walidacji. Dotyczy wyboru hiperparametrów, progu decyzji, cech, architektury i modelu — wszędzie, gdzie ten sam zbiór służy do wyboru i do raportowania wyniku. Lekarstwem jest osobny zbiór testowy albo zagnieżdżona walidacja krzyżowa.
Mechanizm — dlaczego tak działa
Wynik na walidacji = prawdziwa jakość + szum próbkowania. Dla jednego, z góry ustalonego kandydata szum ma średnią zero i wynik jest nieobciążony. Gdy jednak porównujemy k kandydatów i bierzemy najlepszego, wybieramy jednocześnie tego, który miał najkorzystniejszy szum. Oczekiwany wynik zwycięzcy to jego prawdziwa jakość plus dodatni składnik rosnący z k i z odchyleniem szumu σ. Dla podobnych, niezależnych kandydatów składnik ten rośnie jak √(2 ln k)·σ; dla k = 20 wynosi w praktyce około 1,9σ. Na nowych danych szum losuje się od nowa, więc składnik znika i wynik spada do prawdziwej jakości. To ten sam efekt co regresja do średniej i problem wielokrotnych porównań w statystyce.
Odchylenie szumu metryki maleje jak 1/√n, więc zawyżenie jest tym większe, im mniejsza walidacja. Przy 200 przykładach i trafności 0,7 σ ≈ 3,2 punktu, więc wybór z 20 podobnych kandydatów zawyża wynik średnio o około 6 punktów. Publiczny leaderboard konkursu to mała próbka, na której tysiące uczestników robią tysiące wyborów — dlatego zawodzi bardziej niż lokalna walidacja krzyżowa.
Prawo nie jest sporne; sporne bywa tylko, jak duża jest korekta. Sam wybór zwykle pozostaje sensowny — zwycięzca jest prawdopodobnie dobry, tylko jego wynik selekcyjny nie jest miarą. Cawley i Talbot (2010) pokazali jednak, że przy strojeniu wielu hiperparametrów na małej walidacji wybór potrafi wypaść gorzej niż ustawienia domyślne — to przeuczenie na poziomie selekcji.
Rozwiązania: zagnieżdżona walidacja krzyżowa (zewnętrzna pętla ocenia, wewnętrzna wybiera), zbiór testowy użyty jeden raz, mniej kandydatów, większa walidacja albo metody z gwarancjami, jak reusable holdout (Dwork i in. 2015).
Na przykładzie
Breast Cancer Wisconsin, 200 powtórzeń (seedy 0–199). W każdym: losowe 200 guzów do treningu, n do walidacji, reszta do testu; kandydatami jest 40 regresji logistycznych, każda na innej losowej parze standaryzowanych cech. Wybieramy kandydata z najlepszą trafnością walidacyjną i sprawdzamy go na teście.
Przy walidacji z 50 przykładów zwycięzca miał średnio 96,7% na walidacji i 92,4% na teście — zawyżenie o 4,4 punktu. Przy walidacji ze 150 przykładów: 95,2% wobec 93,2%, zawyżenie 1,9 punktu. Większa walidacja nie tylko zmniejszyła złudzenie, ale też pozwoliła wybrać lepszy model (93,2% zamiast 92,4% na teście).
Dane: Breast Cancer Wisconsin (diagnostyka raka piersi)
W praktyce
- scikit-learn:
best_score_zGridSearchCVjest zawyżony;cross_val_score(GridSearchCV(...), X, y)(zagnieżdżona CV) daje wynik nieobciążony. - Zbiór testowy odłóż przed jakimkolwiek strojeniem i użyj go raz; jeśli po nim coś zmieniasz, przestaje być testem.
- Próg decyzji dobieraj na jednej części danych, a oceniaj na innej — nie na tych samych wierszach.
- Konkursy: finałowe zgłoszenia wybieraj po lokalnej walidacji krzyżowej; różnice na publicznym leaderboardzie mniejsze niż jego szum ignoruj.
- Typowy błąd: raportowanie najlepszego wyniku z przeszukiwania hiperparametrów jako wyniku modelu.
Najczęstsze pytania
- Dlaczego wynik z grid searchu jest wyższy niż na zbiorze testowym?
- Bo to wynik zwycięzcy spośród wielu kandydatów na tej samej walidacji, wybranego częściowo za korzystny szum. Test to nowe dane, na których szum już nie sprzyja. Różnica rośnie z liczbą kandydatów i maleje z rozmiarem walidacji.
- Co to jest zagnieżdżona walidacja krzyżowa?
- Dwie pętle: zewnętrzna dzieli dane na foldy do oceny, wewnętrzna — na danych treningowych każdego foldu zewnętrznego — wybiera hiperparametry. Każdy fold zewnętrzny ocenia model wybrany bez jego udziału, więc wynik jest nieobciążony kosztem wielokrotnie dłuższych obliczeń.
- Ile razy można użyć zbioru testowego?
- Formalnie raz: każda decyzja podjęta po obejrzeniu wyniku testowego zamienia test w walidację. W praktyce — rzadko i ze świadomością, że każde użycie trochę go „zużywa”. Przy wielu iteracjach potrzebna jest świeża porcja danych.
Źródła
- Capen, E. C., Clapp, R. V., Campbell, W. M. (1971). "Competitive bidding in high-risk situations". Journal of Petroleum Technology 23(6), 641–653.
- Cawley, G., Talbot, N. (2010). "On over-fitting in model selection and subsequent selection bias in performance evaluation". JMLR 11, 2079–2107.
- Varma, S., Simon, R. (2006). "Bias in error estimation when using cross-validation for model selection". BMC Bioinformatics 7, 91.
- Hastie, T., Tibshirani, R., Friedman, J. (2009). The Elements of Statistical Learning, 2nd ed., Springer, rozdz. 7.10 "Cross-validation".
- Dwork, C., Feldman, V., Hardt, M., Pitassi, T., Reingold, O., Roth, A. (2015). "The reusable holdout: preserving validity in adaptive data analysis". Science 349(6248), 636–638.