ML Atlas

11 · Prawa i prawdy · 4 min czytania · Interaktywne · aktualizacja

Czym jest przeuczenie do publicznego leaderboardu i jak go uniknąć na Kaggle?

W skrócie

Poprawianie modelu pod wynik na publicznej tablicy dopasowuje go do szumu tej małej próbki. Na zbiorze prywatnym wynik spada, a ranking się tasuje.

Co to jest

Każde zgłoszenie ocenione na tym samym zbiorze testowym zdradza o nim trochę informacji, więc wybieranie modeli według wielokrotnie sprawdzanego wyniku publicznego prowadzi do dopasowania do szumu tego zbioru. Zjawisko formalnie opisali Avrim Blum i Moritz Hardt w 2015 roku, proponując algorytm „Ladder” chroniący tablice wyników przed tym efektem.

W konkursach takich jak Kaggle zbiór testowy dzieli się zwykle na część publiczną (wynik widoczny od razu) i prywatną (ujawnianą na koniec). Uczestnik, który dziesiątki razy wysyła poprawki i zostawia te, które podniosły wynik publiczny, w praktyce trenuje na zbiorze publicznym. Na koniec przychodzi „shake-up”: ranking na prywatnej części wygląda zupełnie inaczej.

To szczególny przypadek wielokrotnych porównań i klątwy zwycięzcy: najlepszy z wielu zaszumionych wyników jest systematycznie zawyżony.

Mechanizm — dlaczego tak działa

Wynik na zbiorze publicznym to prawdziwa jakość modelu plus szum próbkowania. Przy 3000 przykładów i dokładności 0,8 odchylenie standardowe tego szumu wynosi około 0,007; przy 300 — około 0,023. Gdy porównujemy wiele zgłoszeń o podobnej prawdziwej jakości, różnice między nimi są w dużej mierze szumem, a wybór najlepszego jest wyborem najbardziej szczęśliwego.

Gorzej, gdy proces jest adaptacyjny: kolejne zgłoszenia buduje się na podstawie wyników poprzednich. Wtedy można wręcz celowo „wyciągać” etykiety zbioru publicznego. Blum i Hardt opisali prosty atak: wyślij wiele losowych prognoz, zachowaj te, które przypadkiem wypadły powyżej 50%, i połącz je głosowaniem. Wynik publiczny rośnie, choć model nie wie nic o problemie.

Dobra wiadomość: Roelofs i in. (2019) przeanalizowali ponad sto konkursów Kaggle i znaleźli zaskakująco mało dowodów na silne przeuczenie do tablicy w typowych konkursach z dużymi zbiorami testowymi. Recht i in. (2019) zebrali nowy zbiór testowy dla ImageNet: dokładność modeli spadła o 11–14 punktów procentowych, ale ranking modeli prawie się nie zmienił — spadek wynikał głównie z różnicy rozkładów, a nie z adaptacyjnego dopasowania. Zjawisko jest więc realne, ale najgroźniejsze przy małych zbiorach testowych, wielu zgłoszeniach i słabym sygnale.

Na przykładzie

Symulacja ataku Blum–Hardta: zbiór testowy 10 000 losowych etykiet binarnych, 30% publiczne. Wysyłamy K zgłoszeń z losowymi prognozami, zachowujemy te z wynikiem publicznym powyżej 0,5 i głosujemy. Przy K = 100: wynik publiczny 0,535, prywatny 0,500. Przy K = 700: 0,612 i 0,493. Przy K = 2000: 0,681 i 0,492. Na publicznej tablicy wygląda to na wyraźny postęp; prawdziwa jakość to rzut monetą.

Wariant uczciwy: 200 modeli o identycznej prawdziwej dokładności 0,80, ocenianych na 3000 przykładach publicznych. Najlepszy ma wynik publiczny 0,819, a prywatny 0,797 — cały „zysk” był szumem. Przy publicznym zbiorze liczącym tylko 300 przykładów najlepszy z 200 takich modeli osiągał 0,863.

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.

W praktyce

  • Ufaj lokalnej walidacji krzyżowej (StratifiedKFold, GroupKFold) bardziej niż tablicy publicznej, zwłaszcza gdy część publiczna jest mała.
  • Sprawdzaj korelację lokalnego wyniku CV z wynikiem publicznym na wielu zgłoszeniach; brak korelacji to sygnał, że tablica jest szumem.
  • Do finalnego wyboru bierz modele stabilne w CV (mały rozrzut między foldami), nie te z najlepszym wynikiem publicznym.
  • Ogranicz liczbę porównań: decyzje podejmuj na podstawie jednej, z góry ustalonej metryki lokalnej.
  • Policz szum tablicy: odchylenie standardowe dokładności ≈ √(p(1 − p)/n); różnice mniejsze niż dwa takie odchylenia traktuj jako remis.

Najczęstsze pytania

Czy to oznacza, że nie należy patrzeć na publiczną tablicę?
Można patrzeć, ale traktować ją jako jeden zaszumiony pomiar, a nie jako cel. Dobre zgłoszenie poprawia jednocześnie lokalną walidację i tablicę publiczną.
Dlaczego niektórzy zawodnicy spadają o setki miejsc po ujawnieniu wyników prywatnych?
Bo ich pozycja była zbudowana na szumie części publicznej, a w gęstym środku rankingu różnice między zespołami są mniejsze niż ten szum. Niewielka zmiana wyniku przekłada się na duże przetasowanie.
Czy to samo dotyczy benchmarków naukowych?
Tak, cała społeczność wielokrotnie testująca modele na tym samym benchmarku też adaptuje się do jego szumu i specyfiki. Dlatego powstają nowe zbiory testowe i benchmarki z ukrytymi danymi.

Źródła

  • Blum A., Hardt M. (2015). The Ladder: A Reliable Leaderboard for Machine Learning Competitions. ICML 2015.
  • 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.
  • Roelofs R. i in. (2019). A Meta-Analysis of Overfitting in Machine Learning. NeurIPS 2019.
  • Recht B., Roelofs R., Schmidt L., Shankar V. (2019). Do ImageNet Classifiers Generalize to ImageNet? ICML 2019.
  • Cawley G. C., Talbot N. L. C. (2010). On Over-fitting in Model Selection and Subsequent Selection Bias in Performance Evaluation. Journal of Machine Learning Research, 11, 2079–2107.

Zobacz też