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