Jak radzić sobie z niezrównoważonymi zbiorami danych w PyTorch — samouczek ważonego losowego próbnika

Wypróbuj Nasz Instrument Do Eliminowania Problemów

W rzeczywistych zbiorach danych uczenia maszynowego często występuje problem braku równowagi między klasami. Gdy jedna lub więcej klas jest reprezentowanych przez znacznie więcej przykładów szkoleniowych niż inne, wydajność modelu może drastycznie się pogorszyć.

W tym samouczku nauczysz się różnych technik radzenia sobie z nimi niezrównoważone zbiory danych w PyTorch , wdrażając A ważony próbnik losowy usprawnienie uczenia modeli poprzez zrównoważenie niezrównoważonego zbioru danych klasyfikacyjnych.

Co to jest niezrównoważony zbiór danych?

Niezrównoważony zbiór danych odnosi się do problemu klasyfikacji, w którym klasy nie są jednakowo reprezentowane. Zazwyczaj istnieje klasa większościowa z dużą liczbą przykładów oraz jedna lub więcej klas mniejszościowych ze stosunkowo małą liczbą przykładów.

Na przykład w przypadku wykrywania oszustw zwykła klasa niebędąca oszustwem może zawierać miliony przykładów, podczas gdy klasa oszustw liczy tylko kilka tysięcy. W diagnostyce medycznej liczba zdrowych pacjentów często znacznie przewyższa liczbę chorych.

Problemy z niezrównoważonymi danymi

Podczas uczenia modeli uczenia maszynowego na niezrównoważonych danych pojawiają się dwa główne problemy:

  • Model jest nastawiony na przewidywanie klasy większości i ignoruje klasę mniejszości, co prowadzi do słabych wyników w rzadkich przypadkach.
  • Nie ma wystarczających danych, aby model mógł poznać zawiłości identyfikacji klasy mniejszości

Zasadniczo niezrównoważone zbiory danych prowadzą do stronniczych modeli, które sprawdzają się bardzo dobrze w klasach większości, ale słabo w klasach mniejszości, które często są ważniejszymi przypadkami.

Techniki postępowania z niezrównoważonymi zbiorami danych

W przypadku wysoce wypaczonych, niezrównoważonych zbiorów danych klasyfikacyjnych istnieją dwa główne podejścia do równoważenia rozkładu klas:

  1. Nadpróbkowanie klas mniejszościowych - Zduplikowane przykłady klas mniejszości
  2. Klasy większościowe podpróbkowane - Usuń przykłady klas większości

W dodatku wyjątkowy Funkcje straty zostały opracowane dla niezrównoważonego uczenia się należy zważyć tę stratę, aby bardziej skupić się na błędnych klasyfikacjach mniejszości.

Problemy z podpróbkowaniem i nadpróbkowaniem

Chociaż proste podpróbkowanie i nadpróbkowanie może pomóc w zrównoważeniu zbiorów danych, ma ono pewne ograniczenia:

  • Nadmierne próbkowanie powiela rzadkie przykłady prowadzące do nadmiernego dopasowania
  • Podpróbkowanie wyrzuca przydatne dane z klasy większościowej

Rozwiązaniem jest wykorzystanie metod syntetycznego ponownego próbkowania, takich jak SMOTE, które generują nowe znaczące syntetyczne przykłady mniejszości, a nie tylko duplikaty. Możesz też zastosować zaawansowane techniki podpróbkowania, które w inteligentny sposób próbkują przykłady z większości klas.

Ważone próbkowanie losowe

Alternatywną techniką jest dynamiczne równoważenie próbkowania partii podczas szkolenia przy użyciu a ważony próbnik losowy zamiast bezpośrednio modyfikować zbiór danych. Osoba pobierająca próbki pobierze próbki z większej liczby partii należących do klas mniejszościowych, aby przeciwdziałać brakowi równowagi.

Ważone losowe próbkowanie wsadowe dobrze pasuje do procesu opadania w gradiencie stochastycznym, jest proste do wdrożenia w PyTorch i pozwala uniknąć problemów z powielaniem lub usuwaniem danych.

Implementacja ważonego losowego próbnika w PyTorch

PyTorch zapewnia |_+_| class, której można użyć do próbkowania partii z określonym prawdopodobieństwem poprzez automatyczne ważenie klas na podstawie ich częstotliwości. Umożliwia to dynamiczne równoważenie niezrównoważonego zbioru danych podczas szkolenia.

Kontynuuj wdrażanie ważonego próbnika losowego, aby ulepszyć szkolenie na niezrównoważonym zbiorze danych klasyfikacyjnych.

Niezrównoważony zbiór danych klasyfikacyjnych

Najpierw definiuje się wyjątkowo niezrównoważony niestandardowy zbiór danych za pomocą 100 przykładów klasa pozytywna mniejszości i 10 000 przykładów większość klasy negatywnej .

Może to stanowić krytyczne zadanie diagnostyki awarii maszyny, na przykład tam, gdzie awarie są rzadkie w porównaniu z normalną pracą.

|_+_|

Zapewnia to niezwykle wypaczony zbiór danych obejmujący 100 pozytywnych przykładów mniejszości i 10 000 negatywnych przykładów większości do klasyfikacji binarnej.

Ważony losowy próbnik

Następnie oblicza się częstość występowania klas mniejszości i większości:

|_+_|

Te liczby klas służą do definiowania wag losowego próbkowania, aby preferować klasę mniejszości:

|_+_|

To ustawia waga dla mniejszościowej klasy pozytywnej będzie 100 razy wyższa niż większość klasy negatywnej. Zatem próbki pozytywne są znacznie chętniej pobierane.

Na koniec tworzony jest ważony próbnik losowy przy użyciu obliczonych wag i ustawiany w module ładującym dane:

|_+_|

Teraz partie pobrane z modułu ładującego dane będą automatycznie równoważone pomimo znacznej nierównowagi klas w surowym zbiorze danych.

Szkolenie na temat niezrównoważonych danych

Dzięki prawidłowej obsłudze niezrównoważonych danych przy użyciu technik takich jak ważone próbkowanie wsadowe, wydajność modelu i szybkość konwergencji często znacznie się poprawiają, ponieważ model widzi bardziej zrównoważony zbiór danych podczas uczenia.

Jednak dodatkowe wyspecjalizowane techniki mogą jeszcze bardziej zwiększyć wydajność modelu niezrównoważonych danych, w tym:

  • Funkcje straty, takie jak utrata ogniskowa, które skupiają się bardziej na błędach klas mniejszościowych
  • Modele dwuetapowe, które filtrują większość negatywów przed ostateczną prognozą
  • Rozszerzanie danych, takie jak SMOTE, syntetyzuje dodatkowe przykłady mniejszości

Zobacz odniesienia do PyTorch poniżej, aby uzyskać więcej szczegółów dotyczących wdrażania tych zaawansowanych algorytmów niezrównoważonego uczenia się.

Wniosek

Niezrównoważone zbiory danych klasyfikacyjnych znacznie pogarszają wydajność modelu ze względu na tendencję do przewidywania klasy większościowej. Należy zachować ostrożność, aby właściwie obsługiwać skos w danych szkoleniowych.

Wdrażanie a ważony losowy próbnik w PyTorch jest prosta i zapewnia skuteczną technikę poprawy zbieżności i dokładności klas mniejszościowych, gdy zbiory danych mają niezrównoważony rozkład klas.

Aby uzyskać dodatkowy wzrost wydajności, zapoznaj się z ważeniem strat, klasyfikatorami dwustopniowymi, powiększaniem danych SMOTE i innymi wyspecjalizowanymi algorytmami uczenia się niezrównoważonych danych.

Więcej niezrównoważonych zasobów danych PyTorch

Zobacz Też: