11 · Prawa i prawdy · 4 min czytania · aktualizacja
Co znaczy zasada garbage in, garbage out w uczeniu maszynowym?
W skrócie
Model nie będzie lepszy niż dane, z których się uczy: błędne etykiety, stronnicza próbka i zbędne cechy przechodzą wprost do predykcji. Dlaczego tak jest.
Co to jest
Jakość wyniku nie może przewyższyć jakości danych wejściowych: model uczony na błędnych, stronniczych lub nieistotnych danych da błędne, stronnicze lub bezwartościowe odpowiedzi. Zwrot „garbage in, garbage out” (GIGO) pochodzi z wczesnej ery komputerów, z przełomu lat 50. i 60. XX wieku; jego autorstwo nie jest pewnie ustalone. W uczeniu maszynowym zyskał nowe znaczenie, bo model nie wykonuje gotowego przepisu, tylko wyciąga reguły z danych.
Program księgowy z błędną kwotą na wejściu da błędną sumę — ale błąd da się wskazać. Model uczony na złych danych uczy się błędów i odtwarza je w każdej predykcji, a w dodatku robi to z pełną pewnością siebie. Dokładniejszy algorytm, więcej warstw czy dłuższy trening tego nie naprawią; często tylko lepiej dopasują się do śmieci.
Śmieci mają kilka postaci: błędne etykiety, próbka niereprezentatywna dla świata, w którym model będzie działał, cechy bez związku z celem, braki danych kodowane jako zero, wycieki informacji z przyszłości.
Mechanizm — dlaczego tak działa
Model uczony z nadzorem przybliża zależność między cechami a etykietami w danych treningowych. Jeśli etykiety są systematycznie przekłamane, prawdziwa zależność dla modelu nie istnieje — istnieje tylko ta zapisana w danych. Funkcja straty nagradza zgodność z etykietą, nie z prawdą.
Rodzaj szumu ma znaczenie. Losowo odwrócone etykiety częściowo się znoszą: przy dużej liczbie przykładów model wciąż widzi przewagę właściwej klasy, więc jakość spada łagodnie aż do progu, przy którym sygnał tonie w szumie. Szum systematyczny (np. część chorych opisanych jako zdrowi, bo nie zrobiono im badania) jest dużo groźniejszy: przesuwa granicę decyzji w jedną stronę, a model uczy się przeoczać dokładnie te przypadki, które są ważne.
Stronnicza próbka działa podobnie. Model nie ekstrapoluje dobrze poza rozkład, który widział. Jeśli w danych brakuje jakiejś grupy, model nie ma skąd wiedzieć, jak ją traktować. Cechy niezwiązane z celem dają pole do dopasowania przypadkowych zależności — więcej szumu w wejściu to więcej okazji do przeuczenia.
Zasada ma też odwrotną stronę: poprawa danych często daje więcej niż poprawa modelu. Curtis Northcutt i współpracownicy pokazali w 2021 roku, że nawet popularne zbiory testowe (m.in. ImageNet) zawierają błędne etykiety, które potrafią zmienić ranking modeli. Badania Nithyi Sambasivan i współautorów z 2021 roku opisują „kaskady danych”: zaniedbania jakości danych na początku projektu, które ujawniają się dopiero po wdrożeniu.
Na przykładzie
Breast Cancer Wisconsin, regresja logistyczna, podział 70/30 (398 przykładów treningowych, 171 testowych, ziarno 0). Na czystych etykietach dokładność na teście wynosi 95,3%. Losowo odwracamy etykiety w zbiorze treningowym (zbiór testowy zostaje czysty, średnia z 20 losowań): 10% szumu daje 93,9%, 20% — 91,2%, 30% — 87,3%, 40% — 75,9%. Model długo jest odporny, potem gwałtownie traci jakość.
Szum systematyczny jest groźniejszy. Gdy w treningu 40% guzów złośliwych opiszemy jako łagodne, dokładność spada do 81,6%, a czułość — odsetek wykrytych nowotworów na czystym teście — do 51%: model przeocza co drugi nowotwór. Przy 20% takich pomyłek czułość wynosi 78%. A gdy zamiast prawdziwych cech podamy modelowi 30 kolumn losowego szumu, dokładność w walidacji krzyżowej wynosi 57% — mniej niż 62,7%, które daje odpowiadanie zawsze „łagodny”.
Dane: Breast Cancer Wisconsin (diagnostyka raka piersi)
W praktyce
- Zacznij od eksploracji:
df.describe(),df.isna().mean(), rozkłady cech i etykiet; szukaj niemożliwych wartości i podejrzanych zer. - Sprawdź jakość etykiet na próbce ręcznie; do wyszukiwania podejrzanych etykiet służy np. biblioteka
cleanlablub analiza przykładów z najwyższą stratą. - Porównaj rozkład danych treningowych z danymi z miejsca wdrożenia (populacja, okres, źródło); różnice to sygnał stronniczej próbki.
- Braki danych koduj jawnie (
SimpleImputer(add_indicator=True)), a nie jako zero czy średnią bez flagi. - Usuń cechy, które nie mogą być znane w chwili predykcji (wyciek danych), i sprawdź każdą cechę „za dobrą, by była prawdziwa”.
- Gdy model przestaje się poprawiać, zanim zmienisz architekturę, popraw dane.
Najczęstsze pytania
- Czy duży model poradzi sobie ze złymi danymi?
- Częściowo z losowym szumem — tak, zwłaszcza gdy danych jest dużo. Z szumem systematycznym i stronniczą próbką — nie: większy model jeszcze dokładniej nauczy się zapisanych w danych błędów.
- Ile błędnych etykiet to już problem?
- Zależy od rodzaju błędów. W przykładzie z Breast Cancer 10% losowego szumu kosztowało około 1,4 punktu dokładności, ale 40% systematycznie błędnych etykiet w jednej klasie obniżyło czułość do 51%. Systematyczne błędy są dużo groźniejsze niż losowe.
- Co jest ważniejsze: dane czy model?
- W większości praktycznych projektów dane. Lepsze etykiety, reprezentatywna próbka i sensowne cechy zwykle dają większy zysk niż zmiana algorytmu, a żaden algorytm nie odzyska informacji, której w danych nie ma.
Źródła
- Curtis G. Northcutt, Anish Athalye, Jonas Mueller, „Pervasive Label Errors in Test Sets Destabilize Machine Learning Benchmarks”, NeurIPS 2021 Datasets and Benchmarks Track.
- Nithya Sambasivan i in., „Everyone wants to do the model work, not the data work: Data Cascades in High-Stakes AI”, Proceedings of CHI 2021, ACM.
- Benoît Frénay, Michel Verleysen, „Classification in the presence of label noise: a survey”, IEEE Transactions on Neural Networks and Learning Systems 25(5), 2014, s. 845–869.
- Aurélien Géron, „Hands-On Machine Learning with Scikit-Learn, Keras, and TensorFlow”, 3rd ed., O’Reilly, 2022, rozdz. 2 (End-to-End Machine Learning Project).