Udoskonalanie technik uczenia maszynowego: zwiększanie dokładności i ograniczanie błędów
Opublikowany: 2025-01-16Wzmacnianie to zaawansowana technika uczenia zespołowego w uczeniu maszynowym (ML), która poprawia dokładność modelu poprzez redukcję błędów. Dzięki szkoleniu modeli sekwencyjnych w celu usunięcia wcześniejszych niedociągnięć, wzmacnianie tworzy solidne systemy predykcyjne. W tym przewodniku opisano, jak działa boostowanie; jego zalety, wyzwania i zastosowania; i jak to się ma do pakowania.
Spis treści
- Co wzmacnia?
- Odchylenie a wariancja
- Zwiększanie a pakowanie
- Jak działa wzmacnianie
- Rodzaje algorytmów wzmacniających
- Zastosowania boostowania
- Zalety wzmacniania
- Wyzwania i ograniczenia boostingu
Co wzmacnia?
Wzmacnianie to technika uczenia się zespołowego, która uczy nowych, sekwencyjnych modeli w celu skorygowania błędów poprzednich modeli w zespole. Techniki uczenia się zespołowego to sposoby wykorzystania wielu podobnych modeli w celu poprawy wydajności i dokładności. Podczas wzmacniania nowe modele są szkolone wyłącznie na wcześniejszych błędach zespołu. Następnie do zespołu dołączają nowe modele, które pomagają mu w dostarczaniu dokładniejszych przewidywań. Wszelkie nowe dane wejściowe są przepuszczane przez modele i agregowane, aby zredukować błędy we wszystkich modelach.
Dokładność to szerokie pojęcie. Wzmocnienie w szczególności zwiększa wydajność modelu poprzez zmniejszenie obciążenia modelu (oraz, w mniejszym stopniu, wariancji). Wariancja i błąd to dwie ważne koncepcje uczenia maszynowego, które omówimy w następnej sekcji.
Odchylenie a wariancja
Błąd i wariancja to dwie podstawowe właściwości uczenia maszynowego jako całości. Celem każdego algorytmu ML jest zmniejszenie wariancji i obciążenia modeli. Biorąc pod uwagę ich znaczenie, wyjaśnimy więcej o każdym z nich i dlaczego zwykle są ze sobą sprzeczne.
Aby wyjaśnić każdą koncepcję, weźmy przykład przewidywania ceny sprzedaży domów na podstawie danych o ich cechach (np. Powierzchnia, liczba sypialni itp.).
Stronniczość
Odchylenie jest miarą tego, jak średnio model jest błędny. Jeśli dom faktycznie został sprzedany za 400 000 dolarów, a model przewidywał 300 000 dolarów, odchylenie dla tego punktu danych wynosi -100 000 dolarów. Uśrednij odchylenie w całym zbiorze danych szkoleniowych, a otrzymasz odchylenie modelu.
Odchylenie zwykle wynika z tego, że modele są zbyt proste, aby uchwycić złożone relacje między cechami i wynikami. Zbyt prosty model może nauczyć się patrzeć tylko na powierzchnię kwadratową i będzie konsekwentnie błędny, nawet w przypadku danych uczących. W żargonie ML nazywa się to niedostatecznym dopasowaniem.
Zmienność
Wariancja mierzy, jak bardzo wyniki modelu różnią się przy podobnych danych wejściowych. W większości przypadków domy w podobnej okolicy i o podobnej powierzchni, liczbie sypialni i liczbie łazienek powinny mieć podobne ceny. Ale model o dużej wariancji może dawać bardzo różne ceny. Dlaczego?
Model mógł nauczyć się fałszywych zależności z danych uczących (np. sądząc, że numery domów wpływają na cenę). Te fałszywe relacje mogą następnie zagłuszyć przydatne relacje w danych. Ogólnie rzecz biorąc, złożone modele wychwytują te nieistotne relacje, co nazywa się nadmiernym dopasowaniem.
Kompromis stronniczości i wariancji
W idealnym przypadku potrzebujesz modelu uczenia maszynowego o niskim odchyleniu i niskiej wariancji, który wychwyci prawdziwe relacje w danych, ale nic więcej. Jednak w praktyce jest to trudne do wykonania.
Zwiększanie stopnia zaawansowania lub złożoności modelu może zmniejszyć jego stronniczość, dając mu możliwość znalezienia głębszych wzorców w danych. Jednak ta sama moc może również pomóc w znalezieniu nieistotnych wzorców i odwrotnie, co sprawia, że ten kompromis między uprzedzeniami a wariancją jest trudny do rozwiązania.
Wzmocnienie poprawia stronniczość i wariancję
Wzmacnianie jest bardzo popularną techniką uczenia się zespołowego, ponieważ może zmniejszyć zarówno obciążenie, jak i wariancję (chociaż redukcja wariancji nie jest tak powszechna).
Korygując wcześniejsze błędy, wzmacnianie zmniejsza średni poziom błędów i rozmiar zestawu modeli, zmniejszając obciążenie.
Używając wielu modeli, można wyeliminować błędy poszczególnych modeli, co potencjalnie prowadzi do mniejszej wariancji.
Zwiększanie a pakowanie
W uczeniu się zespołowym dwie najczęstsze techniki to wzmacnianie i pakowanie. Pakowanie pobiera zbiór danych szkoleniowych, tworzy z niego losowe podzbiory i trenuje inny model w każdym podzbiorze. Następnie modele są wykorzystywane w połączeniu do tworzenia prognoz. Prowadzi to do kilku różnic między pakowaniem a wzmacnianiem, które szczegółowo opisujemy poniżej.
Parcianka | Wzmocnienie | |
Trening modelowy | Modele są trenowane równolegle na różnych podzbiorach danych. | Modele są uczone sekwencyjnie, przy czym każdy model koncentruje się na błędach poprzedniego modelu. |
Fokus redukcji błędów | Zmniejsza wariancję | Zmniejsza stronniczość |
Wspólne algorytmy | Losowy las, zapakowane drzewa decyzyjne | AdaBoost, wzmacnianie gradientu, XGBoost |
Ryzyko przeuczenia | Mniejsze ryzyko nadmiernego dopasowania dzięki losowemu pobieraniu próbek | Większe ryzyko nadmiernego dopasowania |
Złożoność obliczeniowa | Niżej | Wyższy |
Obie techniki są powszechne, ale wzmacnianie jest bardziej popularnym wyborem, ponieważ może zmniejszyć stronniczość i wariancję.
Jak działa wzmacnianie
Przyjrzyjmy się, jak działa boosting. Zasadniczo wzmacnianie polega na trenowaniu każdego nowego modelu w oparciu o punkty danych, w których poprzednie modele popełniły błąd. Istnieją trzy części:
- Ważenie danych uczących według błędów
- Trenowanie nowego modelu na tym zestawie danych o błędach ważonych
- Dodanie nowego modelu do zestawu
Na początek załóżmy, że wytrenowaliśmy model początkowy (zestaw składający się z jednego modelu).
Ważenie danych uczących według błędów
Przepuszczamy dane szkoleniowe przez istniejący zespół i zauważamy, dla których danych wejściowych zespół dał nieprawidłowe przewidywania. Następnie tworzymy zmodyfikowaną wersję zbioru danych szkoleniowych, w której te kłopotliwe dane wejściowe są lepiej reprezentowane lub ważniejsze.
Trening nowego modelu
Używamy zmodyfikowanego zbioru danych, który stworzyliśmy, do uczenia nowego modelu, który jest tego samego typu, co inne modele w zestawie. Jednak ten nowy model skupia się bardziej na twardych przykładach z danych szkoleniowych, więc prawdopodobnie będzie na nich działał lepiej. Ta poprawa wydajności błędów jest ważnym elementem zmniejszania błędu systematycznego.
Wprowadzenie nowego modelu
Nowo wyszkolony model jest dodawany do zespołu, a jego przewidywania są ważone zgodnie z ich dokładnością. Równolegle do każdego modelu w zespole przekazywane są nowe dane wejściowe, a końcowe wyniki każdego modelu są ważone w celu uzyskania wyników zespołu.
W przypadku zadań klasyfikacyjnych (zwykle wyboru między dwiema etykietami w problemach wzmacniających) jako przewidywanie zespołu wybierana jest klasa z największą sumą głosów ważonych na nią.
W przypadku zadań regresji przewidywanie zespołu jest średnią ważoną przewidywań każdego modelu.
W tym momencie proces może się powtórzyć, jeśli odchylenie jest nadal zbyt wysokie.
Rodzaje algorytmów wzmacniających
Istnieje kilka wariantów algorytmów wzmacniających, a istnieją między nimi znaczne różnice. Najpopularniejsze to wzmocnienie adaptacyjne (AdaBoost), wzmocnienie gradientowe, wzmocnienie ekstremalnego gradientu (XGBoost) i wzmocnienie kota. Omówimy każdy z nich po kolei.
AdaBoost
AdaBoost jest bardzo podobny do algorytmu wzmacniania, który omówiliśmy wcześniej: dane treningowe, które stwarzają problemy dla wcześniejszych zespołów, są ważone bardziej podczas uczenia następnego modelu. AdaBoost był jednym z oryginalnych algorytmów boostujących i znany jest ze swojej prostoty.
AdaBoost jest mniej podatny na nadmierne dopasowanie niż inne algorytmy wzmacniające, ponieważ nowe modele uwzględniają różne odmiany (przy czym częstsze są twarde punkty danych) zbioru danych szkoleniowych. Jednak w porównaniu z innymi technikami wzmacniania jest ona bardziej wrażliwa na dane odstające i nie zmniejsza tak bardzo błędu systematycznego.
Wzmocnienie gradientowe
Wzmacnianie gradientowe to unikalne podejście do wzmacniania. W przeciwieństwie do wzmacniania adaptacyjnego nowe modele nie otrzymują wersji zestawu danych szkoleniowych ważonej błędami. Otrzymują oryginalny zbiór danych. Jednak zamiast próbować przewidzieć wyniki dla danych wejściowych w zbiorze danych, próbują przewidzieć ujemny gradient poprzedniego zestawu na każdym wejściu.
Ujemny gradient to zasadniczo kierunek, w którym wagi i przewidywania modelu zespołu musiałyby się przesunąć, aby zmniejszyć błąd – aby zbliżyć się do właściwej odpowiedzi. Ujemne gradienty są dodawane (z zastosowaniem współczynnika ważenia) do prognozy wyjściowej poprzedniego zespołu, aby przybliżyć ją do poprawności.
Wzmocnienie gradientowe jest znacznie wydajniejsze niż AdaBoosting, szczególnie w przypadku złożonych danych. Istnieje również więcej hiperparametrów do dostrojenia, co daje ludziom większą kontrolę, ale także zwiększa potrzebę eksperymentowania.
XGBoost
XGBoost (lub ekstremalne wzmacnianie gradientu) to wysoce zoptymalizowana wersja wzmacniania gradientu. XGBoost sprawia, że szkolenie i wnioskowanie ze wzmacnianiem gradientu są znacznie bardziej równoległe. XGBoost dodaje także regularyzację (tj. kary za złożoność), aby zapobiec nadmiernemu dopasowaniu i znacznie lepiej radzi sobie z brakującymi danymi. Wreszcie XGBoost jest znacznie bardziej skalowalny w przypadku dużych zbiorów danych lub obciążeń.
XGBoost jest jeszcze bardziej wydajny niż zwiększanie gradientu i był jednym z najpopularniejszych algorytmów ML w 2010 roku. Ale jest też trudniejszy do interpretacji i znacznie bardziej kosztowny obliczeniowo w obsłudze.
CatBoost
CatBoost to forma wzmacniania gradientu zaprojektowana do pracy na danych kategorycznych. Dane kategoryczne to dane, w których wartości mogą należeć do kilku ograniczonych grup. Oto kilka przykładów:
- Tak – brak danych (np. czy dom ma garaż?)
- Kategorie kolorów (np. czerwony, niebieski, zielony)
- Kategorie produktów (np. elektronika, odzież, meble)
Modele wzmacniania gradientowego na ogół nie działają dobrze w przypadku danych kategorycznych, podczas gdy CatBoost tak. CatBoost może również obsługiwać ciągłe dane, co czyni go kolejnym popularnym wyborem w zakresie wspomagania. Podobnie jak w przypadku innych modeli zwiększania gradientu, CatBoost charakteryzuje się złożonością obliczeniową i nadmiernym dopasowaniem.
Zastosowania boostowania
Wzmocnienie można zastosować w przypadku prawie każdego problemu ML, ponieważ błędy i stronniczość są często wyższe, niż byśmy chcieli. Klasyfikacja i regresja to dwa główne działy ML, a wzmacnianie dotyczy obu. Rekomendacje dotyczące treści i wykrywanie oszustw to dwa przykłady problemów związanych z ML, przed którymi stoją firmy, w rozwiązaniu których może pomóc również wspomaganie.
Klasyfikacja i regresja
Klasyfikacja i regresja to dwa podstawowe zadania ML. Użytkownik może chcieć przewidzieć, czy obraz przedstawia psa czy kota (klasyfikacja), lub może chcieć przewidzieć cenę sprzedaży domu (regresja). Wzmocnienie sprawdza się dobrze w przypadku obu zadań, zwłaszcza gdy podstawowe modele są słabe lub nieskomplikowane.
Zalecenia dotyczące treści
Funkcja Boost zwiększa rekomendacje treści (np. filmy sugerowane przez Netflix) poprzez iteracyjne zwiększanie dokładności przewidywania preferencji użytkownika. Jeśli model rekomendujący nie uchwyci pewnych wzorców oglądania (takich jak preferencje sezonowe lub wybory zależne od kontekstu), wzmacnianie tworzy dodatkowe modele, które w szczególności skupiają się na tych pominiętych wzorcach. Każdy nowy model w sekwencji nadaje dodatkową wagę wcześniej słabo przewidywanym preferencjom użytkownika, co skutkuje mniejszą liczbą błędów.
Wykrywanie oszustw
W wykrywaniu oszustw – częsty przypadek zastosowania w firmach finansowych – poprawianie wyników poprzez stopniowe uczenie się na błędnie sklasyfikowanych transakcjach. Jeśli początkowe modele nie uwzględniają wyrafinowanych wzorców oszustw, nowsze, ulepszone modele są specjalnie ukierunkowane na te kłopotliwe przypadki. Technika ta szczególnie dobrze dostosowuje się do zmieniających się taktyk oszustw, przypisując większą wagę niedawnym błędnym klasyfikacjom, co pozwala systemowi utrzymać wysoki współczynnik wykrywalności.
Zalety wzmacniania
Wzmocnienie doskonale nadaje się do zmniejszania obciążenia modelu i, w mniejszym stopniu, wariancji. W porównaniu z innymi technikami zespołowymi wymaga mniej danych i daje ludziom większą kontrolę nad nadmiernym dopasowaniem.
Zmniejszona stronniczość i wariancja
Wysoka stronniczość oznacza, że modele często się mylą. Wzmocnienie to świetna technika zmniejszania błędu systematycznego w modelach. Ponieważ każdy model koncentruje się na korygowaniu błędów poprzednich modeli, zespół jako całość zmniejsza poziom błędu.
Zmniejszona wariancja ma również efekt uboczny: nowsze modele mogą mieć różne zestawy danych szkoleniowych, co pozwala błędom w różnych modelach na wzajemne znoszenie się.
Potrzebuje mniej danych
W przeciwieństwie do innych technik zespołowych, wzmacnianie nie wymaga dużego zbioru danych, aby dobrze działać. Ponieważ każdy nowy model skupia się przede wszystkim na błędach starszych, ma wąski cel i nie potrzebuje tony danych. Nowy model może wykorzystywać istniejące dane szkoleniowe i wielokrotnie trenować na błędach.
Większa kontrola nad nadmiernym dopasowaniem
Wzmocnienie ma kilka hiperparametrów, które kontrolują udział każdego nowego modelu w przewidywaniu zbiorczym. Modyfikując te hiperparametry, użytkownicy mogą zmniejszyć wpływ nowych modeli. Zwiększyłoby to odchylenie, ale potencjalnie zmniejszyłoby wariancję, dając użytkownikom kontrolę nad tym, w którym miejscu kompromisu odchylenie-wariancja chcą osiągnąć.
Wyzwania i ograniczenia boostingu
Boosting ma jednak swoje zastrzeżenia. Wymaga więcej czasu na szkolenie i użytkowanie, jest wrażliwy na dane odstające i wymaga lepszego dostrajania hiperparametrów.
Dłuższy czas szkolenia
Podczas wzmacniania każdy nowy model opiera się na błędach poprzedniego zespołu. Oznacza to, że modele muszą być szkolone pojedynczo, co prowadzi do długiego czasu uczenia. Kolejną wadą jest to, że szkolenie sekwencyjne oznacza, że możesz nie wiedzieć, czy wzmacnianie będzie skuteczne, dopóki nie przeszkolisz kilkunastu modeli.
Wyjątkowa wrażliwość
Podczas wzmacniania nowsze modele skupiają się wyłącznie na błędach poprzednich modeli. Zamiast tego niektóre dane odstające w zestawie szkoleniowym, które należy zignorować, mogą zamiast tego stać się jedynym przedmiotem zainteresowania późniejszych modeli. Może to pogorszyć ogólną wydajność zespołu i zmarnować czas szkolenia. Aby przeciwdziałać skutkom wartości odstających, może być konieczne ostrożne przetwarzanie danych.
Więcej dostrajania hiperparametrów
Zaletą zapewnienia użytkownikom większej kontroli nad nadmiernym dopasowaniem jest również to, że użytkownicy muszą dostroić więcej hiperparametrów, aby znaleźć dobrą równowagę między obciążeniem a wariancją. Często potrzebne są wielokrotne eksperymenty wzmacniające, co sprawia, że trening sekwencyjny jest jeszcze bardziej nużący. Zwiększanie wymaga dużej ilości zasobów obliczeniowych.