• Nie Znaleziono Wyników

Komitety modeli

5.6. Boosting i AdaBoost

Boosting jest komitetem, którego końcowy model charakteryzuje się dużym mar-ginesem ufności (porównaj rozdział 3). Przykłada on szczególną wagę do wek-torów, które mają mały, bądź ujemny margines ufności, czyli są umiejscowione na granicach decyzyjnych lub nawet po błędnych stronach granic decyzyjnych [89, 90, 224].

Zasadnicza różnica pomiędzy Baggingiem i Boostingiem polega na tym, że Bagging uczy wszystkie podmodele niezależnie, natomiast boosting używa se-kwencyjnie bazowego algorytmu uczenia (wybranego modelu adaptacyjnego, z którego będzie budowany komitet), za każdym razem zmieniając jednak roz-kład danych treningowych. Załóżmy, że algorytm będzie sroz-kładał się docelowo z T modeli. Wtedy w krokach t = 1, . . . , T rozkład Dt(·) będzie pewną funkcją przydzielającą prawdopodobieństwa z rozkładem zależnym od t (każdy model komitetu ma próbki losowane zgodnie z DT(·)) zbioru uczącego S, który składa się z parS = { xi, yi : 1 ≤ i ≤ N}.

Adaptive Boosting (AdaBoost) jest jedną z realizacji koncepcji boostingu. Ce-lem AdaBoost jest konstruowanie kolejnych modeli ht tak, aby w miarę możli-wości malał błądt:

t=

i : yi=ht(xi)

Dt(i). (5.24)

Początkowo (D1) ma rozkład jednostajny: D1(i) = 1/N. Następnie w każdej kolejnej iteracji będzie zmieniany:

Dt+1(i) = Dt(i) exp(−yiαtht(xi))

Zt , (5.25)

gdzieαt= 12ln((1− t)/t). Zakłada się, że yi∈ {−1, 1} i ht(xi)∈ {−1, 1} (czyli rozważany jest przypadek dwuklasowy, dla problemów wieloklasowych moż-na użyć zmodyfikowanej wersji opisanej w dalszej części). Zt jest czynnikiem normalizującym Dt+1tak, aby Dt+1było prawdopodobieństwem. Może to być:

Zt =

N i=1

Dt(i) exp(−yiαtht(xi)) (5.26)

=

i : yi=ht(xi)

Dt(i)e−αt+

i : yi=ht(xi)

Dt(i)eαt (5.27)

= 2

t(1− t). (5.28)

Finalny komitet jest wtedy ważonym większościowym klasyfikatorem:

F(x) = sign T

t=1

αtht(xt)

. (5.29)

Dzięki powyżej przedstawionej ewolucji rozkładu Dt AdaBoost nie tylko zmniejsza wariancję modelu, ale zmniejsza błędy w regionach o małym margi-nesie zaufania. Prowadzi to do jeszcze lepszych wyników, niż wyniki uzyskane przy stosowaniu Baggingu [89, 90, 224].

Zaskakująco ciekawy rezultat uzyskano dla komitetów jednowęzłowych drzew decyzyjnych (ang. decision „stump”, drzewo o jednym możliwie najlepszym bi-narnym węźle podziału). Użycie AdaBoost dawało nieporównywalnie lepsze rezultaty (dzięki adaptacji Dt). Na zbiorach letter (z repozytorium UCI [182]) AdaBoost uzyskał 20% błędu, a Bagging 100% (oba komitety budowane były z drzew jednowęzłowych), dla zbioru satimage AdaBoost dał 18%, a Bagging 40%, i dla zbioru vehicle AdaBoost dał 20%, a Bagging 60%. Należy jednak zwrócić uwagę, że drzewa decyzyjne z jednym węzłem są bardzo słabym klasyfikato-rem i informacja, jaką dają jest bardzo uboga. Choć, jak widać, nawet w takich warunkach AdaBoost daje sobie radę – końcowy komitet składał się z aż 1000 podmodeli.

Z drugiej strony rezultaty uzyskane przez Freund and Schapire [89][213, 214]

dla AdaBoostingu i Baggingu z użyciem C4.5 [213, 214] jako modelu bazowe-go używały, dla kilku baz danych z repozytorium UCI [182] także pokazują wyższość AdaBoostingu (tabela 5.1).

Jeśli chcielibyśmy użyć AdaBoost do problemów wieloklasowych, to nale-żałoby skorzystać z wersji AdaBoost.M2, opisanej w [89]. W tej wersji również sekwencyjnie buduje się modele ht z tą różnicą, że ht(xi, yi) zwraca wartość 1 lub 0 w zależności czy ht poprawnie przewidział klasę yi (1 – poprawnie, 0 – nie), a ht(xi, y) informuje czy htprzewidział jakąś niepoprawną klasę dla x1(1 – przewidział niepoprawną klasę, 0 – nie przewidział żadnej niepoprawnej klasy dla xi). Pamiętajmy, że ht może wskazać nie więcej niż jedną klasę.

Błąd (%) AdaBoost+C4.5 Bagging+C4.5 C4.5

Letter 3.3 6.85 6.8

Satimage 8.9 10.6 14.8

Vehicle 22.6 26.1 29.9

Iris 5 5 5.9

Breast C. Wisconsin 3.3 3.2 5

Promoters 5 12.7 22

Glass 22.7 25.7 31.7

Tabela 5.1:Porównanie rezultatów dla kilku baz danych z UCI repository [182]

przy użyciu algorytmu C4.5 i AdaBoost z C4.5 i Bagging z C4.5 [89].

Wtedy trzeba przedefinowaćt:

t= 1

2

(i,y)∈S

Dt(i, y)[1− ht(xi, yi) +ht(xi, y)], (5.30)

jak również Dt:

Dt+1(i, y) = Dt(i, y)

Zt · βt12[1−ht(xi,yi)+ht(xi,y)], (5.31) gdzie βt=t(1− t), Zt jak i poprzednio pełni rolę czynnika normalizującego, tak aby Dt było rozkładem.

Natomiast końcowy model przyjmuje postać:

F(x) = arg max

y

T t=1

log 1

βt



ht(x, y). (5.32)

Innym sposobem użycia AdaBoostingu w przypadku problemu wieloklaso-wego jest skorzystanie z k-Klasyfikatora (opisanego powyżej).

Jeszcze inne zmiany AdaBoostingu (gradient boosting, stochastic gradient boosting) zaproponował Friedman w [93, 93].

W celu głębszego prześledzenia własności boostingu (i modeli pokrewnych) należy polecić [181].

5.7. Inne komitety: Arcing, RegionBoost, Stacking, Gra-ding, Mixture of experts

Powyższe rozdziały o komitetach bynajmniej nie wyczerpują tematyki konstruk-cji komitetów. Z drugiej strony, najistotniejsze informacje zostały już przedsta-wione. Trudno jednak nie wspomnieć o kilku pomysłach.

5.7.1. Arcing

Breiman zaproponował w [20, 23, 8] metodę Arcing. Komitet jest bardzo zbli-żony do AdaBoost, z tym, że inaczej wyznacza się rozkład Dt:

Dt+1(i) = 1

Zadaniem Z jest, jak zawsze, sprawić aby Dt było rozkładem prawdopodo-bieństwa.

Końcowy komitet to już standardowe głosowanie:

F(x) = arg max¯

i

j : h(x)=i

1. (5.34)

5.7.2. RegionBoost

Inna metodą, uwzględniającą lokalny charakter błędów, jest RegionBoost [177].

Działa ona niemal tak samo, jak opisany komitet AdaBoost z tym, że lokalny (ważony) wpływ każdego z podmodeli jest ważony na podstawie poprawności, jaką uzyskują podmodele w klasyfikacji k najbliższych sąsiadów na odpowied-nich podmodelach.

Wagi oparte o analizę poprawności najbliższych sąsiadów mogą być zdefi-niowane jak poniżej:

gdzieN S(K, x) jest zbiorem K najbliższych sąsiadów wektora x, T oznacza liczbę modeli komitetu.

5.7.3. Stacking

Kolejną znaną i ciekawą metodą wyznaczania wag wi wpływu poszczególnych, już nauczonych podmodeli komitetu jest Stacking [264, 243, 244, 22]. W tej meto-dzie miejsce modułu decyzyjnego zajmuje model adaptacyjny, przez co uczenie w stackingu przebiega dwuetapowo. Pierwszy etap to nauczenie podmodeli ko-mitetu. Drugi to uczenie modelu z modułu decyzyjnego podejmowania decyzji na podstawie decyzji podejmowanych przez podmodele komitetu.

Omówiona zostanie tu wersja MLR stackingu [243] ze względu na jej sku-teczność. Jednak zanim przejdziemy do sedna, czyli drugiego etapu uczenia,

należy jeszcze wskazać różnice pierwszego etapu uczenia wspólnego wszyst-kim komitetom. W przeciwieństwie do różnych metod opartych o boosting, w stackingu podmodele komitetu mają przygotowywane dane do uczenia i testu, tak jak to się robi dla walidacji skośnej. Czyli cały zbiór danychS jest dzielony na T równych części Si. Następnie każdy podmodel i uczony będzie na pod-stawie zbioru S − Si, a testowany będzie na części testowej Si. W ten sposób uzyskujemy T modeli, z których żaden nie był uczony na wszystkich wektorach pierwotnego zbioru uczącego, lecz każdy z wektorów brał udział w uczeniu T− 1 podmodeli.

Aby przejść do uczenia na drugim etapie musimy poznać jak konstruowane są dane do uczenia modułu adaptacyjnego, który już będzie spełniał funkcję modułu decyzyjnego komitetu. Tworzony jest nowy zbiór uczącySCV:

SCV ={ zi, yi , i = 1, . . . , N}, (5.37)

gdzie zi jest wektorem:

[z1i, z2i, . . . , zTi] = [F1(xi), F2(xi), . . . , FT(xi)]. (5.38) Jak teraz widać moduł decyzyjny będzie uczony w oparciu o wyjścia pod-modeli komitetu.

W przypadku Stackingu-MLR za metodę uczenia modułu decyzyjnego przy-jęto metodę multi-response linear regression, czyli wielwymiarową metodę regresji.

W przypadku problemów klasyfikacji K klasowej tworzy się K niezależnych mo-deli regresji liniowej. Każda regresja liniowa jest uczona rozpoznawania obiek-tów swojej klasy i dyskryminowania obiekobiek-tów obcych klas (tak jak ma to miejsce w k-klasowym komitecie). Liniowa regresja dla i-tej klasy została zdefiniowana przez:

LRi(x) =

T t

K k

αtkiPtk(x), (5.39)

gdzie Ptk(x)to prawdopodobieństwo przynależności wektora x do klasy k uzy-skane przez podmodel t.

Współczynnikiαtkiwyznaczone zostają w procesie minimalizacji funkcji błę-du:

j

xj,yj ∈Sj

(yn− LRj(x))2. (5.40)

Po procesie uczenia klasą zwycięską zostaje klasa, dla której LRi(x) było największe.

Po uśrednieniu rezultatów [273] dla 20 różnych zbiorów danych z repozyto-rium UCI [182] najlepszy średni rezultat dał właśnie stacking-MLR (por. z tabelą 5.2).

Model Średni błąd (%)

C 4.5 14.57

IBk 12.52

Naive Bayes 15.53 Bagging+C4.5 12.49 Boosting+C4.5 12.97

Voting 11.85

Grading 11.90

Multi-scheme 11.22 Stacking-MLR 10.92 Stacking-MDT 11.17

Tabela 5.2:Porównanie efektywności stackingu do innych modeli komitetowych (wyniki zaczerpnięte z pracy [273]). Średnie błędy zostały uzyskane z wyników dla 20 różnych baz danych z UCI [182]. Grading jest opisany poniżej (5.7.4).

Multi-scheme jest prostym mechanizmem selekcji modelu przez walidację sko-śną, wektory są klasyfikowane przez model bazowy, który uzyskał najmniejszy błąd na zbiorze treningowym.

5.7.4. Grading

Komitety grading zaproponowane w [231] dla każdego modelu bazowego bu-dują jeden meta-model, którego zadaniem będzie przewidzieć, kiedy dany mo-del bazowy popełnia błędy. Tym samym etykiety–klasy zbioru uczącego meta-model zawierają informacje o poprawności lub niepoprawności decyzji meta-modelu bazowego. Ostateczna decyzja to głosowanie, ale z ewentualnymi korekcjami uzyskanymi z meta-modeli.

5.7.5. Mixture of local experts

Ciekawy komitet kombinacja lokalnych ekspertów (ang. mixture of local experts) zaproponowali Jacobs i in. w [131]. Komitet ten waży wpływ poszczególnych podmodeli. Wagi jednak nie są skalarne, lecz przyjmują postać funkcyjną:

F(x) =¯

T i=1

gi(x)Fi(x). (5.41)

Porównaj ze wzorem 5.14. Funkcje Fi(x)spełniają rolę ekspertów (sieci neu-ronowe, ale i inne modele adaptacyjne), natomiast gi(x)są funkcjami dodatnimi (gi(x) >0) i ich suma po modelach daje 1:

T i=1

gi(x) =1. (5.42)

Do uczenia użyto algorytmu ME (ang. maximum likelihood). Zakłada on doda-nie gaussowskiego szumu do wyjścia sieci Fi(x)z wariancjąσi(x)2. Funkcja gi(x) określa prawdopodobieństwo wyboru eksperta i. Wtedy prawdopodobieństwo wyjścia jest mieszanką prawdopodobieństw:

P(y|x) =

T

G(·) jest normalnym rozkładem gaussowskim z centrum w Fi(x) i wariancją σi(x)2.

Co daje w efekcie:

E(y|x) =

T

i=1

gi(x)Fi(x). (5.44)

Jako funkcje g(·) wybrać można znormalizowane węzły gaussowskie:

gi(x) = exp hi(x)

Tj=1hj(x) (5.45)

i

σi(x) =exp si(x). (5.46)

Natomiast hi(x)i si(x)są realizowane przez sieci neuronowe.

Do uczenia komitetu ME używa się funkcji błędu maksymalnej wiarygod-ności (dla danego wektora xj):

Lj(xj) =log

Wtedy można powyznaczać gradienty:

∂Lj

Prawdopodobieństwo P(i|xi, yi)dla i-tego eksperta jest wyznaczane poprzez:

P(i|xi, yi) = gi(xj)G

y; Fi(xj),σi(xj)2

Ti=1gi(xj)G

y; Fi(xj),σi(xj)2 . (5.51)

Powiązane dokumenty