ML Atlas

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).

Ta ilustracja działa w przeglądarce z włączonym JavaScriptem: spośród 100 000 kandydatów wybieramy najlepszych według wskaźnika m = q + szum; przy szumie normalnym prawdziwa jakość rośnie z ostrością selekcji (do 2,30), a przy szumie z grubymi ogonami top 0,1% ma średnią jakość tylko 0,04 mimo wskaźnika 42,5.

Dane: Breast Cancer Wisconsin (diagnostyka raka piersi)

W praktyce

  • scikit-learn: best_score_ z GridSearchCV jest 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.

Zobacz też