You are on page 1of 4

Wykorzystywanie AdaBoost jako algorytmu ª¡czenia

klasykatorów w komitety
Šukasz Adamczewski
19 listopada 2010

Komitety / klasykatory zbiorcze (ensemble, committee )


Dziaªanie komitetów jest porównywane do gªosowania ekspertów, poniewa» daje mo»liwo±¢ poª¡czenia
wyników otrzymanych przez ró»ne modele b¦d¡ce bytami wyspecjalizowanymi w danym zagad-
nieniu, wa»ne jest by zbiory wiedzy byªy mo»liwie zbiorami rozª¡cznymi. Istotn¡ zalet¡ tego
podej±cia jest minimalizacja bªedu na tym samym zbiorze treningowym przy zmienionych praw-
dopodobienstwach (wagach) poszczególnych przykªadów. Kolejne atuty tej metody to mo»liwo±¢
podziaªu na moduªy w wypadku trudniejszych zagadnie« problemowych, z drugiej jednak strony
polepszamy i stabilizujemy otrzymane wyniki ,a tak»e zmniejszamy zªo»ono±¢ obliczeniow¡.
Jak ka»da metoda, ma jednak te» wady, w±ród których warto wyró»ni¢ niejasne powody pode-
jmowania decyzji wynikaj¡ce z faktu »e mamy do czynienia z ró»nymi modelami (ekspertami).

1 Algorytm AdaBoost
Jedn¡ z wydajniejszych metod ª¡czenia klasykatorów w jeden wydajny zespóª jest algorytm Ad-
aBoost wywodz¡cy si¦ z algorytmów wzmacniaj¡cych Bosting, które sªu»¡ zwi¦kszaniu skuteczno±ci
dowolnego algorytmu uczenia. Nazwa algorytmu Adaptive Boosting rozumiana jako wzmocnienie
adaptacyjne polega w skrócie na trenowaniu w kolejnych t iteracjach t sªabych klasykatorów
na zbiorze przykªadów D ze zmienianymi wagami. Algorytm powstaª w 1995 roku jako owoc
prac Freund'a i Shapire'a
Mówi¡c sªaby klasykator mamy na my±li klasykator stosunkowo prosty o niezbyt du»ej sile
wyra»ania, potra¡cy klasykowa¢ dane testowe ze skuteczno±ci¡ wi¦ksz¡ ni» 50%.
Jedn¡ z gªównych idei algorytmu jest utrzymanie rozkªadu (lub wag elementów) dla zbioru
treningowego. Nale»y nadmieni¢, »e algorytm ten jako pierwszy z rodziny algorytmów wzmac-
niaj¡cych okazaª si¦ najbardziej u»yteczny w praktyce.

1.1 Idea

Na pocz¡tku algorymtu
1
AdaBoost inicjujemy wagi dla ka»dej obserwacji nadaj¡c im t¡ sam¡
warto±¢ . Nast¦pnie wykonujemy iteracyjnie kroki:
m

1. normalizowanie wag

2. wyznaczanie klasykatora

3. wyznaczanie bª¦du klasykatora

1
1.2 Algorytm 1 ALGORYTM ADABOOST

4. wyznaczanie nowych wag na podstawie obliczonego bª¦du klasykatora

1
Iteracja ko«czy si¦ w momencie kiedy bª¡d klasykatora przekroczy warto±¢
2 lub, gdy numer it-
eracji jest równy danej staªej L czyli ustalonej maksymalnej liczbie iteracji. Ko«cowy klasykator
wyznaczany jest metod¡ gªosowania wi¦kszo±ciowego.
1.2 Algorytm

Zaªo»enia
Parametry wej±ciowe to:

• zbiór ucz¡cy S o m elementach pochodz¡cych z K klas

S = {(xi , yi ) , i = 1, 2, . . . , m} , yi ∈ Y = {1, . . . , K}

xi − i − ta operacja
yi − klasa i − tej operacji

• algorytm ucz¡cy

LEARN - funkcja tworz¡ca klasykator na podstawie zbioru S z uwzgl¦dnieniem wcze±niej


nadanych wag

• staªa L - maksymalna liczba iteracji

Niech E b¦dzie dan¡ formuª¡. Okre±lamy:


(
1 jeżeli f ormula E jest prawdziwa
[[E]] =
0 jeżeli f ormula E jest f alszywa

2
1.2 Algorytm 1 ALGORYTM ADABOOST

Algorytm 1 AdaBoost

AdaBoost(S, LEARN, L):


1.initialize for all i : w (i) := 1
1
m

2. for l=1 to L do

3. for all i : p (i) := w / P w (i)


i l i l

4. hl := LEARN(S, pl )
P
5. εl = i pl (i) [[hl (xi ) 6= yi ]]
6. if ε l > 1
2 then
7. L := l − 1

8. goto12

9. βl := εl /(1 = εl )

10. for all i : w (i) := w (i) β


l+1 l
1−[[hl (xi =yi )]]
l

11. end for


Wyj±cie: h (x) = argmax P
 
L
12. f y∈Y l=1 log β1l [[hl (x) = y]]

1. inicjalizacja wag;

2. p¦tla gªowna (iteracja: 3,4,5,6,7,8,9,10 );

3. normalizacja wag;

4. utworzenie klasykatora z uwzgl¦dnieniem znormalizowanych wag;

5. wyznaczenie bª¦du klasykatora;

6. je»eli bª¡d przekroczyª dopuszczaln¡ warto±¢


1
2 to (7,8) ...

1
7. wyznaczamy numero ostatniego klasykatora z bª¦dem nie wi¦kszym od
2;

8. ko«czymy iteracj¦, przechodzimy do reguªu gªosowania wi¦kszo±ciowego (12)


9. wyznaczamy wspóªczynnik βl
10. wyznaczamy nowe wagi w oparciu o wspóªczynnik βl o l;asyfolatpr hl

11. koniec struktury p¦tli gªównej

12. Wyznaczamy ostateczny klasykator stosuj¡c metod¦ gªosowania wi¦kszo±ciowego

3
2 PROGRAM

2 Program
2.1 Cele programu

Celem programu jest zademonstrowanie dziaªania algorytmu AdaBoost na przykªadzie n klas


punktów rozmieszczonych w przestrzeni dwuwymiarowej. Dysponuj¡c prostymi klasykatorami
o skuteczno±ci wi¦kszej ni» 50% powinni±my by¢ w stanie utworzy¢ krzyw¡ oddzielaj¡ca klasy
punktowe w satysfakcjonuj¡cej nas ilo±ci iteracji.

2.2 Pomysª implementacji

Do wykonania zadania chciaªbym u»y¢ prostych klasykatorów liniowych, nie wiem tylko czy
wykorzysta¢ podej±cie generatywne (propabilistyczne) np. Analiz¦ dyskryminacyjn¡ lub klasy-
kacj¦ Bayesowsk¡, czy wykorzysta¢ wª¡±ciwo±ci zbioru ucz¡cego - percepron linowy rosenblata
(iteracyjne poprawki wag) czy metod¦ wektorów no±nych czy regresj¦ logistyczn¡.

2.3 Technologia

Program zostanie najprawdopodobniej wykonany w technologii C# z wykorzystaniem biblioteki


ZedGraph do ilustrowania zmian i operacji wykonywanych na wej±ciowym zbiorze danych. B¦dzie
to aplikacja okienkowa w ±rodowisku Visual Studio 2008 / 2010

You might also like