Podręcznik
1. Zespoły klasyfikatorów
1.3. Techniki tworzenia silnych rozwiązań na bazie słabych predyktorów
Interesującą techniką poprawy zdolności generalizacyjnych w uczeniu maszynowym jest tworzenie silnych predyktorów (klasyfikatorów bądź układów regresyjnych o podwyższonej dokładności) poprzez zastosowanie zespołów zbudowanych na bazie słabych rozwiązań predyktorów (mało dokładnych), na przykład lasu drzew decyzyjnych, nieoptymalnie dobranych struktur sieci neuronowych RBF lub MLP, itp. Klasyczne techniki tworzenia zespołu poprzez zastosowanie wielu równoległych rozwiązań indywidualnych predyktorów tego samego typu, ale trenowanych na losowo wybranych danych uczących (tzw. bagging), stosowane na przykład w lesie losowym drzew decyzyjnych [3] nie zawsze prowadzą do optymalnego wyniku pod względem generalizacji. Pojawiło się wiele ulepszonych rozwiązań tego typu zespołów. Do najbardziej znanych należą systemy wzmacniana (tzw. boosting), które wpływają na działanie zespołu już na etapie ich tworzenia, ingerując silnie w algorytm uczący. W tym punkcie przedstawione zostaną dwie techniki tworzenia takiego zespołu słabych predyktorów: wzmacnianie adaptacyjne (tzw. adaptive boosting) zwane w skrócie AdaBoost, oraz wzmacnianie gradientowe, zwane w skrócie gradient boosting.
11.3.1 AdaBoost
W technice AdaBoost każdy nowo dodawany członek zespołu (np. nowe drzewo decyzyjne czy klasyfikator MLP) jest trenowany na losowo wybranym zestawie danych uczących, przy czym każda próbka ucząca podlegająca losowaniu ma przypisaną wagę, której wartość jest uzależniona od aktualnego statystycznego błędu dla danej obserwacji przez aktualny stan zespołu [73]. Na starcie wszystkie obserwacje uczące mają identyczne wartości przypisanych wag, stąd prawdopodobieństwo ich wylosowania do zbioru uczącego danego członka zespołu jest identyczne. W wyniku ewaluacji danych przez aktualnie wytrenowany zespół następuje zwiększenie wagi dla obserwacji trudnych w testowaniu oraz zmniejszenie wagi dla danych, które dobrze wypadły na etapie ewaluacji. W efekcie obserwacje o większej wartości wagi mają zwiększone prawdopodobieństwo wylosowania do zbioru uczącego następnego członka zespołu (np. dodawanego drzewa decyzyjnego). Nowy członek zespołu w procesie uczenia specjalizuje się więc w rozpoznaniu przypadków trudniejszych. Każdy następny dodawany członek zespołu poddawany jest trenowaniu na zbiorze uczącym zawierającym coraz trudniejsze przypadki danych, źle rozpoznawane przez istniejących członków zespołu. Wynik działania tak powstałego zespołu jest sumą wagową wskazań poszczególnych członków, przy czym waga jest związana z wartością wagi przypisaną poszczególnym obserwacjom, dobraną wcześniej w procesie dodawania nowych członków zespołu. Jest to zasadnicza różnica w stosunku do klasycznej metody zwykłego głosowania większościowego, stosowanego w technice bagging [73].
Załóżmy, że dany jest zbiór par danych uczących klasyfikatora (xi, di) dla i=1, 2, …, p, gdzie xi jest wektorem wejściowym a di oznacza klasę kodowana na przykład w postaci binarnej (1, -1). Załóżmy, że zespół składa się z M słabych klasyfikatorów generujących wynik yi przynależności klasowej 1 lub -1 dla każdego wektora wejściowego xi. W wyniku (m-1) cykli tworzenia nowego członka powstanie zespół, którego werdykt przy pobudzeniu wektorem xi będzie sumą wagową wskazań wszystkich członków [73]
(11.11) |
Po dodaniu -tego słabego predyktora wynik działania zespołu można przedstawić w postaci
(11.12) |
Zadanie polega na doborze takiej wartości wagi oraz wyniku sklasyfikowania wektora przez -ty klasyfikator aby polepszyć działanie całego zespołu. Funkcję błędu (ang. loss function) definiuje się w postaci wykładniczej dla wszystkich wektorów biorących udział w procesie uczenia
(11.13) |
Wprowadźmy oznaczenia wagowe w powyższym wzorze
Wówczas wyrażenie na funkcję błędu przyjmie postać
(11.14) |
Rozdzielając to wyrażenie na dwa składniki:
otrzymuje się wyrażenie na funkcję błędu w postaci
(11.15) |
Analiza powyższego wzoru wskazuje, że wartość błędu zależy jedynie od czynnika , gdzie . Minimalizacja błędu wymaga aby pochodna funkcji błędu względem była równa zeru, co oznacza
(11.16) |
Rozwiązanie powyższej zależności określa optymalną wartość w postaci
(11.17) |
Oznaczając względny błąd -tego klasyfikatora jako , przy czym
(11.18) |
wzór na wartość wagi przyjmie ostateczną postać
(11.19) |
Wartość ta będzie użyta w -tym kroku przy dodaniu następnego klasyfikatora do zespołu. Wynik klasyfikacji tak rozszerzonego zespołu dla wektora wejściowego określa wówczas wzór
(11.20) |
gdzie oznacza wskazanie klasy przez kolejnych członków zespołu, a współczynnik wagę z jaka to wskazanie jest brane pod uwagę.
Technika zwana gradient boosting stosuje inne rozwiązanie tworzenia i trenowania zespołu słabych predyktorów [2,55]. W odróżnieniu od metody AdaBoost stosującej wagi przypisane obserwacjom w zależności od skali trudności w ich rozpoznaniu technika gradient boosting koncentruje się na gradiencie funkcji strat przy czym funkcja strat może być rozumiana tradycyjnie jako różnica między wartościami aktualnymi i pożądanymi albo koncentrować się jedynie na określeniu jakości modelu, definiowanej dowolnie przez użytkownika. Kolejni członkowie są dodawani wybierając kierunek ujemnego gradientu funkcji strat, nie zmieniając przy tym parametrów dotychczasowych członków zespołu.
Podobnie jak w metodzie AdaBoost dany jest zbiór par danych uczących klasyfikatora dla , gdzie jest wektorem wejściowym a oznacza klasę kodowana na przykład w postaci binarnej . Załóżmy, że zespół składa się z słabych klasyfikatorów generujących wynik przynależności klasowej lub dla każdego wektora wejściowego . Celem jest stworzenie zespołu, którego działanie na zbiorze uczącym minimalizuje wartość średnią błędu. Wynik działania zespołu predyktorów przy pobudzeniu wektorem będzie składał się z sumy wagowej wskazań poszczególnych jego członków
(11.21) |
Dodanie -tego członka zespołu powinno zmienić wynik działania w kierunku minimalizacji wartości funkcji strat. Działanie zespołu złożonego teraz z członków można zapisać w postaci
(11.22) |
Rozwiązanie zastosowane w metodzie gradient boosting wykorzystuje metodę optymalizacyjną największego spadku, przy czym równanie (11.21) zastępuje się liniową aproksymacją uwzględniającą jedynie czynnik gradientowy (metoda największego spadku)
(11.23) |
gdzie jest wielkością kroku w kierunku malejącej wartości gradientu funkcji strat . Wartość może podlegać optymalizacji w taki sposób, aby uzyskać minimum funkcji strat w każdym cyklu dodawania członka zespołu.
(11.24) |
Po dodaniu -tego członka wynik działania zespołu przy pobudzeniu wektorem określa zmodyfikowany model
(11.25) |
Technika gradient boosting jest najczęściej stosowana przy użyciu drzew decyzyjnych jako słabych predyktorów. Badania tego algorytmu pokazały, że najlepsze rezultaty uzyskuje się przy zastosowaniu liczby poziomów decyzyjnych od 4 do 8. W praktyce stosuje się dodatkowo inne metody regularyzacji.
Jednym z nich jest ograniczenie liczby drzew biorących udział w zespole. Wprawdzie zwiększenie ich liczby redukuje zwykle błąd uczenia, ale może prowadzić do „przeuczenia” pogarszając zdolność generalizacji (działanie modelu na danych nie uczestniczących w procesie uczenia). Zwykle obserwuje się zwiększoną efektywność działania zespołu jedynie do określonego poziomu populacji. Po uzyskaniu etapu stagnacji należy zaprzestać dodawania nowych członków.
Inna metoda regularyzacji wprowadza zmniejszenie wartości kroku w procesie adaptacyjnym, zastępując wzór (11.25) określający działanie zespołu jego zmodyfikowaną wersją
(11.26) |
w której współczynnik jest ułamkiem. Typowa wartość to . Tym nie mniej należy zwrócić uwagę, że oznacza to zmniejszenie realnej wartości kroku uczenia, wydłużające cały proces adaptacji systemu.
Jeszcze innym podejściem jest zastosowanie w uczeniu kolejnych członków zespołu zredukowanej liczby obserwacji losowo wybieranych ze zbioru uczącego (tzw. dropout ratio). Przyspiesza to proces uczenia nie pogarszając zdolności generalizacyjnych (typowa regularyzacja typu niejawnego).
Jako czynnik regularyzacyjny stosuje się również wprowadzenie minimalnej liczby obserwacji dopuszczalnej w węzłach decyzyjnych zanim podział zbioru będzie możliwy. Stosuje się również karanie za zbyt dużą liczbę węzłów decyzyjnych oraz liści w drzewach. Istotnym parametrem działającym jako regularyzacja jest wprowadzenie ograniczenie czasu uczenia poprzez obserwacje postępu w kolejnych cyklach dodawania członków zespołu. Proces podlega zakończeniu, jeśli dodanie kolejnych członków nie poprawia działania zespołu powyżej założonego progu względnego. Zastosowanie wielu metod regularyzacyjnych na raz polepsza zdolności generalizacji zespołu pozwalając przy użyciu słabych predyktorów uzyskać bardzo dobre wyniki klasyfikacji całego zespołu.
W tworzeniu zespołu klasyfikatorów można łączyć ze sobą różnego rodzaju systemy: neuronowe, sieci głębokie CNN, drzewa decyzyjne czy klasyfikatory bayesowskie. W szczególności pojedyncze jednostki zespołu mogą zawierać wewnątrz inne podzespoły, na przykład zastosowanie lasu drzew decyzyjnych (typowy zespół klasyfikatorów) w zespole z pojedynczą siecią MLP, RBF czy SVM. Każde rozwiązanie prowadzące do polepszenia wyników klasyfikacji jest akceptowalne.