ML Atlas

02 · Dane · 4 min czytania · aktualizacja

Czym jest korelacja pozorna w ML i dlaczego model uczy się złych cech?

W skrócie

Korelacja pozorna to cecha, która w danych treningowych przypadkiem idzie w parze z etykietą, choć nie ma z nią związku. Trening ją wykorzysta, nowe dane nie.

Co to jest

Korelacja pozorna (spurious correlation) to zależność między cechą a etykietą, która istnieje w zbiorze treningowym, ale nie w świecie, na którym model ma działać. Wynika z przypadku przy małej próbie albo ze sposobu zebrania danych. Gdy model na niej polega, mówimy o uczeniu skrótów (shortcut learning).

Model uczony gradientem nie odróżnia przyczyny od zbiegu okoliczności — użyje każdej cechy, która zmniejsza stratę. Zjawisko dotyczy sieci, drzew i dużych modeli językowych; słynne przykłady to śnieg w tle zdjęć wilków i znaczniki szpitali na zdjęciach rentgenowskich.

Intuicja: jeśli na wszystkich zdjęciach w podręczniku krowy stoją na trawie, uczeń może uznać, że „krowa” znaczy „zielone tło”. Na egzaminie z tego samego podręcznika wypadnie świetnie, a na plaży nie rozpozna krowy.

Mechanizm — dlaczego tak działa

Trening minimalizuje stratę na konkretnych przykładach, ruszając każdą wagę, której zmiana w tym pomaga. Jeśli w kilkunastu przykładach treningowych jakaś nieistotna cecha przypadkiem częściej towarzyszy jednej klasie, gradient jej wagi jest niezerowy i waga rośnie. Z punktu widzenia straty treningowej to poprawny ruch: na tych przykładach cecha naprawdę pomaga. Na nowych danych nie niesie informacji, więc dodaje tylko szum do decyzji.

Przy małej próbie takie koincydencje są regułą, nie wyjątkiem: dla d cech niezwiązanych z etykietą prawdopodobieństwo, że choć jedna z nich wykaże wyraźną korelację w próbce z kilkunastu punktów, jest wysokie — to ten sam mechanizm co wielokrotne testowanie. Więcej danych gasi korelacje z przypadku, ale nie te z procesu zbierania danych: jeśli wszystkie zdjęcia krów zrobiono na pastwisku, trawa pozostaje najlepszym predyktorem „krowy” przy milionie zdjęć.

Model wybiera skrót, gdy jest on łatwiejszy do nauczenia niż prawdziwa reguła — liniowy zamiast nieliniowego, dostępny w pierwszej warstwie zamiast w głębokiej (Geirhos i in. 2020). Regularyzacja L1/L2 pomaga przy korelacjach z przypadku (słaba korelacja nie opłaca kary), ale tylko częściowo przy systematycznych.

Zastrzeżenie: korelacja pozorna jest widoczna tylko na danych o innym rozkładzie niż treningowy. Walidacja z tego samego rozkładu (losowy podział) pokaże dobry wynik, bo skrót działa w niej tak samo. Test na danych spoza rozkładu lub analiza wpływu cech to jedyne sposoby, by ją wykryć.

Na przykładzie

Korelacje z przypadku: do etykiet Breast Cancer Wisconsin (część treningowa, random_state=0) dokleiłem 30 kolumn czystego szumu gaussowskiego i mierzyłem największą bezwzględną korelację któregokolwiek szumu z diagnozą, średnio z 200 losowań. Przy 20 przykładach wynosiła ona 0,52, przy 50 — 0,32, przy 200 — 0,16, przy 426 — 0,11. W małej próbce szum regularnie wygląda na silny predyktor.

Skrót systematyczny: dodałem jedną cechę-„znacznik”, zgodną z diagnozą w 97% przykładów treningowych (jak znacznik szpitala), a w teście losową. Regresja logistyczna (C=1) uznała ją za najważniejszą cechę: współczynnik 2,45 wobec najwyżej 0,81 dla prawdziwych pomiarów. Na teście, w którym znacznik nadal działa, trafność wynosi 100%; na teście, w którym znacznik jest losowy — 86,7%, mniej niż 95,8% modelu bez znacznika. Silna regularyzacja (C=0.01) ograniczyła szkodę — przy losowym znaczniku trafność wzrosła do 95,1% — ale znacznik nadal był cechą numer jeden.

Dane: Breast Cancer Wisconsin (diagnostyka raka piersi)

W praktyce

  • Sprawdzaj wpływ cech (współczynniki po standaryzacji, permutation_importance, SHAP) i pytaj, czy najważniejsze cechy mają sens dziedzinowy.
  • Testuj na podziale po grupach lub w czasie (GroupKFold, podział chronologiczny) — losowy podział nie wykryje skrótu zależnego od źródła danych.
  • Na Kaggle: cecha „identyfikator wiersza” lub „data zebrania” z dużą ważnością to prawie zawsze skrót albo wyciek.
  • Augmentacja i zbieranie danych z różnych źródeł rozbijają korelacje procesu; regularyzacja i mniej cech — korelacje z przypadku.
  • Typowy błąd: ufanie ważności cech, która wskazuje cechę bez związku z problemem, bo „model wie lepiej”.

Najczęstsze pytania

Co to jest spurious correlation w uczeniu maszynowym?
Zależność między cechą a etykietą obecna w danych treningowych, ale nie w świecie — z przypadku (mała próba) albo z procesu zbierania danych (wszystkie wilki na śniegu). Model używa jej, bo zmniejsza stratę treningową, i zawodzi na danych, w których jej nie ma.
Jak wykryć, że model nauczył się skrótu?
Obejrzyj ważność cech i zapytaj, czy ma sens; przetestuj model na danych z innego źródła, okresu lub grupy; sprawdź, czy wynik spada, gdy podejrzaną cechę zamienisz na szum. Walidacja z losowego podziału tego samego zbioru skrótu nie pokaże.
Czy więcej danych rozwiązuje problem korelacji pozornych?
Tylko tych z przypadku — przy większej próbie koincydencje znikają. Korelacje wynikające ze sposobu zebrania danych (źródło, urządzenie, tło) zostają przy dowolnej liczbie przykładów; potrzebne są dane zróżnicowane co do źródła, nie po prostu liczniejsze.

Źródła

  • Geirhos i in. (2020). "Shortcut learning in deep neural networks". Nature Machine Intelligence 2, 665–673. arXiv:2004.07780
  • Ribeiro, M., Singh, S., Guestrin, C. (2016). "'Why should I trust you?': explaining the predictions of any classifier". KDD. arXiv:1602.04938
  • Arjovsky, M., Bottou, L., Gulrajani, I., Lopez-Paz, D. (2019). "Invariant risk minimization". arXiv:1907.02893
  • Hastie, Tibshirani, Friedman (2009). The Elements of Statistical Learning, 2nd ed., rozdz. 18.7 "Feature assessment and the multiple-testing problem".

Zobacz też