Professional Documents
Culture Documents
Rozdz10 Generalizacja Zespoly
Rozdz10 Generalizacja Zespoly
Rozdz10 Generalizacja Zespoly
210
móc dobrze odtwarzać te cechy a nie dopasowywać się do indywidualnych wartości
zadanych.
• Aby to uzyskać liczba danych uczących powinna być zatem znacznie większa od liczby
dobieranych parametrów (wag) sieci, aby zapewnić właściwe statystyczne spojrzenie na
analizowany problem.
• Struktura sieci powinna być z kolei jak najuboższa, o możliwie najmniejszej liczbie wag,
umożliwiającej jednak uzyskanie akceptowalnie małego poziomu błędu na danych
uczących. Poprawia to proporcję liczby danych uczących do liczby adaptowanych
parametrów sieci.
• Proces uczenia powinien być prowadzony przy zastosowaniu efektywnego algorytmu
uczącego i nie powinien ciągnąć się w nieskończoność, ale zakończony w momencie
uzyskania minimum błędu na zbiorze sprawdzającym (różnym od uczącego).
Teoria generalizacji została stworzona głównie dla sieci neuronowych, ale odnosi się również do
innych rozwiązań maszynowych (np. drzew decyzyjnych czy sieci Bayesa). Bazuje bezpośrednio
na zależnościach statystycznych charakteryzujących dane uczące. Błąd średni E odtworzenia
danych na zbiorze danych (x, d) dla którego znane są wartości zadane (wektor d) może być
zinterpretowany jako wartość oczekiwana różnicy między wartością aktualną funkcji yi(x) dla
poszczególnych wyjść sieci a odpowiadającą im wartością zadaną di. Może być on rozdzielony
na część odpowiadającą obciążeniu Bi (ang. bias) oraz wariancji Vi (ang. variance) przy czym
Ei2 = Bi2 + Vi 2 .
Duża wartość obciążenia wynika ze zbyt dużych uproszczeń (za małej liczby
adaptowanych parametrów lub zbyt krótkiego czasu uczenia nie gwarantującego akceptowalnej
wartości błędu uczenia) uniemożliwiających odtworzenie właściwych cech modelu. Mówimy
wówczas o niedouczeniu modelu. Przypadek przeciwny, to przeuczenie. Jest to stan, w którym
dane uczące są idealnie odwzorowane, ale nadmierna liczba parametrów modelu (równa liczbie
stopni swobody) powoduje dopasowanie do nieistotnych elementów danych uczących (na
przykład szumu). W efekcie wytrenowany model model generuje duże błędy dla danych
testujących w uczeniu, niezawierających takich elementów szumowych. Przeuczenie może się
objawiać generowaniem silnie zaszumionych sygnałów wyjściowych lub silnym rozchwianiem
wyników odbiegającym od wartości pożądanych. Dobry model to taki w którym proces uczenia
prowadzi do sytuacji, gdy jest w stanie w sposób akceptowalny odtwarzać dane uczące, ale
211
równocześnie uchwyci bardziej generalne trendy i wzorce istniejące w danych wejściowych
użytych a procesie uczenia.
Obciążenie Bi wyraża niezdolność sieci (zbyt mało rozbudowana struktura) do dokładnej
aproksymacji funkcji zadanej di(x) i może być uważane za średni błąd aproksymacji na zbiorze
uczącym. Składnik Vi jest wariancją funkcji aproksymującej mierzoną na zbiorze danych (xi, di).
Wyraża sobą nieadekwatność informacji zawartej w zbiorze danych uczących w stosunku do
rzeczywistej funkcji di i może być uważana za błąd estymacji. W praktyce za miarę obciążenia
uważa się błąd na danych uczących, a za wariancję błąd na danych walidacyjnych.
Na rys. 10.1 zilustrowano graficznie jak interpretować pojęcia obciążenia (bias) i
wariancji (variance) na przykładzie rozkładu danych wynikowych.
212
Rys. 10.2 Ilustracja działania modelu niedouczonego, właściwie nauczonego oraz przeuczonego
na przykładzie modelowanej funkcji. W modelu niedouczonym obserwuje się duży „bias”
(różnice między wartościami zadanymi i wynikiem modelu). W modelu przeuczonym dominuje
duża wariancja (zmienność wyniku w stosunku do wartości zadanej). Model poprawnie nauczony
posiada pewną wartość niezerową „bias”, ale niewielką wariancję.
213
porównania, w sieci liniowej o liczbie wag nw miara VCdim jest proporcjonalna do liczby wag.
Jak z powyższego widać niezależnie od zastosowanej funkcji aktywacji neuronów w sieci MLP
miara VCdim jest zawsze skończona i proporcjonalna (nieliniowo) do liczby wag.
Jeżeli przez Pu oznaczymy względny błąd klasyfikacji dla danych uczących a przez Pt -
prawdopodobieństwo wystąpienia błędnej klasyfikacji w przyszłym użytkowaniu sieci na danych
nie uczestniczących w uczeniu (testowanie) to istotnym problemem jest oszacowanie
spodziewanego błędu na tych danych, zwłaszcza jego górnej granicy. Zostało udowodnione, że
prawdopodobieństwo wystąpienia błędu testowania większego o wartość ε od błędu uczenia dla
sieci MLP jest określone wzorem [30]
h
2ep − 2 p
Pr sup Pt (w) − Pu (w) e (10.1)
w h
=
2ep
exp − p (
2
) (10.2)
h
Wprowadźmy następujące oznaczenie 0 ( p, h, ) [30]
h 2p 1
0 ( p , h, ) = lg + 1 − lg ( ) (10.3)
p h p
214
oszacowanie powyższe można znacznie uściślić. W takim przypadku z prawdopodobieństwem
(1-α) można stwierdzić, że [30]
Pt Pu + 1 ( p, h, , Pu ) (10.4)
gdzie
Pu
1 ( p, h, , Pu ) = 2 2 ( p, h, )1 + 1 + (10.5)
0
( p, h, )
2
W tym przypadku przedział ufności zależy również od błędu uczenia Pu. Przy bardzo małej
(pomijalnej) wartości błędu uczenia wartość 1 można wyrazić prostszą zależnością niezależną
od Pu [30]
1 ( p, h, ) = 4 2 ( p, h, )
0
(10.6)
w której przedział ufności 0 określony jest zależnością (10.3) i jest funkcją jedynie parametrów
którym wartość 1 jest w ogólności zdefiniowana zależnością (10.5), lub przy bardzo małej
wartości błędu uczenia Pu i określona wzorem (10.6).
Na rys. 10.3 przedstawiono typowe zależności błędu uczenia, gwarantowanego
ograniczenia górnego błędu generalizacji oraz przedziału ufności w funkcji miary VCdim.
Rys. 10.3 Zależności błędu uczenia, górnego ograniczenia błędu generalizacji (gwarantowanego maksymalnego
błędu testowania) i przedziału ufności w funkcji miary VCdim dla sieci MLP.
215
Dla wartości h mniejszej niż wartość optymalna hopt pojemność sieci jest zbyt mała dla
prawidłowego odwzorowania szczegółów danych uczących i stąd górne ograniczenie błędu
generalizacji jest na wysokim poziomie. Dla h>hopt jest ona z kolei zbyt duża i dlatego błąd
generalizacji również rośnie. Osiągnięcie punktu optymalnego (minimum błędu generalizacji)
wymaga zwykle trenowania wielu sieci i wybrania tej, która zapewnia otrzymanie minimum
gwarantowanego błędu.
Z wartością miary VCdim oraz zadanym poziomem ufności ε odpowiadającym
prawdopodobieństwu α związana jest reguła doboru liczby wzorców uczących wystarczających
do uzyskania żądanej dokładności. Zgodnie z pracą [30] liczba próbek uczących powinna
spełniać warunek
p
A
h lg(1/ ) + lg(1/ ) (10.7)
gdzie A jest bliżej nieokreśloną stałą. Z zależności powyższej widać, że liczba próbek uczących
powinna być wielokrotnością miary VCdim (określonej w tym wzorze symbolem h) i powinna
wzrastać wraz ze zmniejszaniem się przedziału ufności. Według opinii Vapnika w klasycznym
uczeniu sieci neuronowych typu MLP dobrą generalizację obserwuje się, jeśli liczba danych
uczących jest co najmniej 10 razy większa niż miara VCdim. Z drugiej strony należy zaznaczyć,
że w wielu przypadkach można uzyskać dobre zdolności generalizacji sieci przy dalece
niewystarczającej liczbie danych uczących, zwłaszcza dla procesów mało złożonych. Świadczy
to o skomplikowanym mechanizmie generalizacji i naszej niewystarczającej wiedzy teoretycznej
w tym zakresie. Stąd wyprowadzone wcześniej oszacowania należy traktować jako ogólną
wskazówkę postępowania przy budowie struktury sieci, zmuszającą do maksymalnej redukcji jej
stopnia złożoności, przy zapewnieniu akceptowalnego poziomu błędu uczenia.
216
dużej (nadmiarowej) liczbie wag uczenie jest perfekcyjne, ale sieć traci zdolności generalizacji,
gdyż w procesie uczenia sieć dopasowała się nie tylko do głównych cech procesu, ale również do
szumu zawartego w próbkach uczących, ale nieobecnych w próbkach testujących (sieć
przetrenowana). Przykłady działania dwuwarstwowej sieci MLP o dobrej i złej generalizacji na
przykładzie aproksymacji czterech funkcji (sinusoidalna, prostokątna, trójkątna i sinc)
zilustrowane są na rys. 10.4.
Rys. 10.4 Ilustracja zdolności generalizacji sieci MLP przy różnej liczbie neuronów ukrytych: rysunek górny
odpowiada zbyt małej liczbie neuronów ukrytych (sieć niedouczona), rysunek środkowy – liczbie właściwej (sieć
właściwie nauczona), rysunek dolny – zbyt dużej liczbie (sieć przeuczona).
217
Dane uczące zadane w postaci linii przerywanych reprezentują 4 sygnały: sinusoidalny,
prostokątny, trójkątny oraz sinc(t). Wyniki dopasowania sieci na danych testujących (wartości
funkcji określone punktach czasowych różnych od tych branych w uczeniu) przedstawione są w
postaci linii ciągłych. Dobre dopasowanie obserwuje się jedynie na rysunku środkowym, gdzie
użyto właściwej liczby neuronów ukrytych (tutaj 80). Wynik prezentowany na rysunku górnym
ilustruje efekt zbyt małej (tutaj 4) liczby wag (sieć nie jest w stanie dopasować swojej
odpowiedzi do wszystkich sygnałów zadanych). Z kolei przypadek przedstawiony na rysunku
dolnym pokazuje efekt nadmiarowej liczby neuronów ukrytych. Pomimo perfekcyjnego
dopasowania się do danych uczących wyniki testowania pokazują dalece nieadekwatne
dopasowanie do wartości pożądanych, co również oznacza utratę zdolności generalizacji sieci.
W praktyce minimalizację struktury sieci przeprowadza się empirycznie. W pierwszym
etapie projektowania powtarza się wielokrotnie proces uczenia na różnych strukturach i wybiera
tę, która przy zadowalającym poziomie błędu uczenia pozwala uzyskać najmniejszy błąd
odtwarzania danych nie uczestniczących w uczeniu. W następnych etapach projektowania sieci
optymalnej poprawę generalizacji można uzyskać przez obcinanie wag najmniej znaczących,
czyli wag o najmniejszej wartości bezwzględnej bądź wag o najmniejszym wpływie na wartość
funkcji błędu, (niekoniecznie najmniejszych).
Redukcję wag i neuronów osiągnąć można różnymi metodami, z których najbardziej
skuteczne opierają się na wykorzystaniu metod wrażliwościowych pierwszego lub drugiego
rzędu (np. OBD, OBS) bądź też zastosowaniu w uczeniu metod funkcji kary, karzących za
nadmierną liczbę połączeń wagowych [55]. Ostatni kierunek działania polega na dodaniu do
konwencjonalnej definicji funkcji celu składników proporcjonalnych do liczby i wartości wag
sieci. W procesie optymalizacji procesowi minimalizacji podlegają wówczas równolegle wartości
wag sieci. Po zakończeniu procesu uczenia wagi o najmniejszej wartości bezwzględnej niewiele
wpływają na działanie sieci i mogą być obcięte; w ten sposób złożoność sieci również ulega
redukcji.
Techniką która umożliwia polepszenie zdolności generalizacyjnych sieci jest również
wtrącanie szumu do próbek uczących [55], upodobniające warunki uczenia do warunków
przyszłego użytkowania. Istotą tego podejścia jest założenie, że podobne sygnały wejściowe
powinny generować podobne odpowiedzi (zasada ciągłości), nawet wtedy, gdy nie wchodziły w
skład wektorów uczących. Zbiór uczący wzbogaca się o dane, będące "zaszumioną" wersją
218
sygnałów oryginalnych (przy tych samych wartościach zadanych) i trenuje sieć na rozszerzonym
zbiorze danych. Zostało udowodnione, że taki sposób uczenia odpowiada w efekcie
minimalizacji funkcji celu zmodyfikowanej o czynnik modelujący wrażliwość względną sieci,
odpowiadającą zmianom wartości odpowiedzi neuronów wyjściowych spowodowanych
zmianami wartości zmiennych wejściowych (zmiana upodobniająca warunki uczenia do
warunków testowania). Problemem może być dobór właściwego poziomu szumu względem
wartości rzeczywistych.
Innym problemem jest wpływ sposobu i czasu uczenia na zdolności generalizacyjne sieci.
Jak zostało zaobserwowane w wielu eksperymentach numerycznych, wraz z upływem czasu błąd
uczenia maleje i błąd testowania również (przy ustalonej liczbie próbek uczących p oraz wartości
miary VCdim). Taka sytuacja trwa zwykle do pewnego momentu uczenia, poczynając od którego
błąd testowania pozostaje stały bądź zaczyna rosnąć, pomimo, że błąd uczenia nadal nieznacznie
maleje.
Rys. 10.5 Typowe zależności błędu uczenia i testowania od czasu uczenia sieci.
Typowy przebieg obu błędów przedstawiono na rys. 10.5, na którym błąd uczenia zaznaczony
jest linią ciągłą, a błąd generalizacji (testowania) linią przerywaną. Z wykresu na rysunku wynika
jednoznacznie, że zbyt długie uczenie może doprowadzić do tak zwanego ,,przeuczenia" sieci, a
więc do zbyt drobiazgowego dopasowania wag do nieistotnych szczegółów danych uczących.
Taka sytuacja ma miejsce w przypadku sieci o nadmiarowej w stosunku do potrzeb liczbie wag i
jest tym bardziej widoczna, im większa nadmiarowość wag występuje w sieci. Wagi nadmiarowe
dopasowują się do wszelkich nieregularności danych uczących, traktując je jako cechę główną.
219
W procesie testowania sieci na danych testujących, w którym brakuje tych nieregularności,
powstają w efekcie dodatkowe błędy odtwarzania.
W celu uniknięcia przeuczenia często wydziela się ze zbioru uczącego część danych
weryfikujących (zbiór V na rys. 10.6), które służą w procesie uczenia okresowemu sprawdzaniu
aktualnie nabytych zdolności generalizacyjnych. Uczenie przerywa się, gdy błąd generalizacji na
tym zbiorze osiągnie wartość minimalną (zaczyna wzrastać). Zalecane proporcje danych
uczących do weryfikujących to 4:1.
Rys. 10.6 Ilustracja podziału danych spełniających regułę R na zbiór uczący L, weryfikujący V i zbiór testujący
zdolność generalizacji G.
Z uwagi na błąd generalizacji ważny jest stosunek liczby próbek uczących do liczby wag sieci.
Mała liczba próbek uczących przy ustalonej liczbie wag oznacza dobre dopasowanie sieci do
próbek uczących, ale złą generalizację, gdyż w procesie uczenia nastąpił nadmiar parametrów
dobieranych (wag) w stosunku do liczby wartości zadanych i dopasowywanych do nich
aktualnych sygnałów wyjściowych sieci. Parametry te są zbyt precyzyjnie, a przy tym wobec
nadmiarowości wag w sposób niekontrolowany poza punktami dopasowania, dobrane do
konkretnych danych, a nie do zadania, które miało być reprezentowane przez te dane uczące
(nauczenie się mechanizmu generowania danych w modelowanym procesie). Zadanie
aproksymacji zostało niejako sprowadzone do zadania bliższego interpolacji. W efekcie,
wszelkiego rodzaju nieregularności danych uczących spowodowane przez przypadkowe zmiany i
szumy pomiarowe mogą być odtworzone jako cecha podstawowa procesu. Funkcja,
odwzorowana w zadanych punktach uczących jest dobrze odtwarzana tylko dla nich. Minimalne
nawet odejście od tych wartości powoduje znaczny wzrost błędu, co przejawia się jako błąd
generalizacji.
220
W zastosowaniach praktycznych istotny jest obiektywny sposób oceny działania sieci.
Wśród danych pomiarowych procesu są próbki bardziej lub mniej odstające od wartości
typowych. Użycie tylko wartości typowych w uczeniu i pozostawienie pozostałych do testowania
zdolności generalizacji spowoduje słabą generalizację i złą ocenę rozwiązania. Z kolei
pozostawienie „łatwych” próbek do testowania daje zbyt optymistyczną ocenę naszego
rozwiązania. Najlepszym wyjściem jest użycie wszystkich próbek danych również w testowaniu.
Taka techniką jest metoda k-krotnej walidacji krzyżowej (ang. k-fold cross validation)
służąca do obiektywnej oceny jakości działania sieci neuronowej [55]. Technika ta polega na
podziale dostępnego zbioru danych na k podzbiorów, z których (k-1) podzbiorów jest aktualnie
używanych do uczenia a pozostały podzbiór do testowania. Uczenie sieci przeprowadza się
wielokrotnie stosując wszystkie możliwe kombinacje podzbiorów do tworzenia zbioru uczącego i
pozostawiając zawsze jeden (różny) podzbiór do testowania. Ocena jakości działania sieci
wynika z uśrednionych (po wszystkich próbach) wynikach uczenia i testowania.
Szczególną postacią tej formy jest technika ,,leave one out" w której każdy podzbiór jest
jednoelementowy. Przy p parach danych oznacza to uczenie sieci na (p-1) wzorcach i testowanie
ograniczone do jednego wzorca. Uczenie przeprowadza się p razy zamieniając za każdym razem
jedną testującą. Jakość rozwiązania ocenia się na podstawie uśrednionych wyników wszystkich
prób. Jest to technika polecana w przypadku małej liczby dostępnych danych.
Stosowaną powszechnie techniką jest wielokrotne powtórzenie prób uczenia i testowania
sieci na dwu rozdzielnych podzbiorach. Jeden (zwykle zawierający około 70% danych używany
jest do uczenia i drugi (pozostałe 30% danych) wyłącznie do testowania. Próby przeprowadza się
wiele razy (100 do 1000 razy) na losowo podzielonych zbiorach. Wyniki testowania uśrednia się
i przyjmuje jako wartość obiektywną.
221
aktualnie (stan na 2021 rok). Liczba parametrów w każdej sieci jest powyżej miliona, a
największa sieć zawiera aż 144 miliony parametrów (VGG19). Liczba połączeń wagowych
wynika z zastosowanej struktury sieci i głębokości połączeń warstwowych.
Dobra zdolność generalizacji takich sieci jest możliwa do uzyskania dzięki wielu
elementom, z których do najważniejszych należy lokalność połączeń wagowych w warstwach
głębokich i dzielenie się (sharing) wartościami wag filtrów [22]. W efekcie problem dopasowania
danych wielowymiarowych f(x1, x2, …, xN) jest rozwiązany w sposób hierarchiczny jako
kompozycja funkcji o mniejszych wymiarach, na przykład f(x1, x2, …, x8)=h3(h21(h11(x1, x2),
h12(x3, x4)), h22(h13(x5, x6), h14(x7, x8))). W efekcie dopasowanie funkcji mniej wymiarowej jest
łatwiejsze i prowadzi do lepszych wyników dopasowania (i generalizacji).
Ważną cechą sieci głębokich jest współdzielenie połączeń. Neuron analizujący obraz w
różnych jego rejonach stosuje te same wagi dla każdego rejonu, co oczywiście redukuje
efektywną liczbę różnych (pod względem wartości) połączeń wagowych w stosunku do
rozwiązania klasycznego (płytkiego).
Innym elementem poprawiającym zdolności generalizacyjne sieci głębokich jest
zastosowanie w uczeniu małych podzbiorów tzw. „mini batch” generowanych losowo w każdej
iteracji. W efekcie sieci widzi wiele różnych konfiguracji danych uczących „symulujących” nowe
zbiory danych. Występuje więc efekt wirtualnego powiększenia efektywnego zbioru uczącego.
W przypadku podsieci FC w pełni połączonej (ostatnie warstwy klasyfikacyjne sieci), w
której każdy sygnał poprzedniej warstwy jest połączony z każdym neuronem warstwy następnej
(połączenia globalne) redukcja realnych połączeń jest możliwa przez zastosowanie techniki
dropout. Jest to technika regularyzacji polegająca na losowym usunięciu części połączeń
wagowych (usunięcie połączenia jest równoważne ustawieniu wagi na wartość równą 0).
Redukuje to realną liczbę połączeń w każdym cyklu uczącym i zmusza sieć do równomiernego
uczenia wszystkich połączeń wagowych. Ponieważ w każdym cyklu następuje losowy dobór
połączeń, w efekcie przy ogromnej liczbie cykli wszystkie połączenia są aktywne i mają wpływ
na działanie sieci.
Niezależnie od tego typu technik dla uzyskania dobrej generalizacji sieci głębokie CNN
wymagają użycia wielu milionów danych. W przypadku rozwiązań CNN stosowane są w uczeniu
dowolne zbiory obrazów zaczerpnięte z Internetu. Biorąc pod uwagę specyfikę warstw ukrytych,
służących do generacji cech diagnostycznych, nie wpływa to istotnie na działanie sieci. Warstwy
222
w pełni połączone w praktycznym zastosowaniu do konkretnego problemu podlegają uczeniu na
właściwych zbiorach danych (technika transfer learning). Na tym etapie uczenia sieci pre-
trenowanej ważne jest dostarczenie odpowiedniej liczby danych uczących spełniających warunki
dobrej generalizacji.
W przypadku autoenkodera zdolność jego generalizacji polepsza się przez wymuszenie
struktury oszczędnej, w której wiele połączeń wagowych jest praktycznie zerowa. Uzyskuje się
to poprzez tak zwaną operację regularyzacji. Przeprowadza się ją w procesie uczenia poprzez
włączenie do funkcji kosztu czynników kary. Jednym z nich jest kara za nadmiernie
rozbudowaną strukturę. Dodatkowo dla dalszego zmniejszenia wpływu niewielkich zmian
danych wejściowych x na wynik działania układu wprowadza się regularyzację uwzględniającą
karę za zbyt duże wartości pochodnych sygnałów warstwy ukrytej względem elementów wektora
wejściowego x. Taki rodzaj regularyzacji zmusza algorytm uczący do wytworzenia sygnałów
wyjściowych sieci, które zmieniają się niewiele przy niewielkich zmianach wartości sygnałów
wejściowych.
Inny rodzaj regularyzacji autoenkodera uwzględnia zgodność średniej statystycznej
aktywacji neuronów w aktualnym stanie uczenia z jej wartością pożądaną. Dzięki zastosowaniu
tego typu regularyzacji poszczególne neurony ukryte „specjalizują” się w wytwarzaniu dużego
sygnału jedynie dla małej liczby danych uczących (lokalizacja aktywności) co oznacza w
ogólności lepsze, bo wyspecjalizowane działanie sieci.
223
Rys. 10.7 Przykładowa struktura zespołu klasyfikatorów. Pierwszy wskaźnik wagi wki odnosi się do k-tego
klasyfikatora, drugi do i-tej klasy [58].
224
W tabeli 10.1 przedstawiono wartości dokładności wskazań zespołu przy założeniu różnych
wartości prawdopodobieństwa P (identycznego dla każdego klasyfikatora) dla liczby
klasyfikatorów tworzących zespół, równej odpowiednio 3, 5, 7 oraz 9.
Tabela 10.1 Wartości dokładności Acc wskazania klasy przez zespół M niezależnych, jednakowej
jakości klasyfikatorów
M=3 M=5 M=7 M=9
p=0.6 0.648 0.683 0.710 0.733
p=0.7 0.784 0.837 0.874 0.901
p=0.8 0.896 0.942 0.967 0.980
p=0.9 0.972 0.991 0.997 0.999
w którym wki jest wagą z jaką k-ty klasyfikator jest uwzględniany przy rozpoznaniu i-tej klasy,
natomiast zki jest sygnałem wyjściowym k-tego klasyfikatora odpowiedzialnym za rozpoznanie i-
225
tej klasy. Sygnał ten przyjmuje wartość 1 przy rozpoznaniu przez klasyfikator danej klasy bądź
zero w przeciwnym przypadku.
Wartości wag wki mogą być wyznaczane w różny sposób, uwzględniający jakość
poszczególnych członków zespołu. Do typowych rozwiązań należy
kim
wki = M
(10.10a)
j =1
m
ki
gdzie kim oznacza wskaźnik jakości (np. dokładność, czułość, precyzja) k-tego klasyfikatora przy
klasy i-tej. Mianownik powyższej zależności jest wspólny dla wszystkich klas, stąd
prawdopodobieństwo wskazania i-tej klasy przez zespół przy wystąpieniu na wejściu zespołu
wektora wejściowego x jest proporcjonalne do wyrażenia z licznika powyższej zależności.
Oznaczmy ten współczynnik proporcjonalności przez μi(x). Wówczas
226
M
i (x) P(di ) P( Dk di ) (10.12)
k =1
którą wskazał i-ty klasyfikator. Przyjmijmy równe prawdopodobieństwo wystąpienia i-tej klasy
wśród całej populacji n danych w postaci ułamka
Ni
P(di ) = (10.14)
n
Wówczas współczynnik proporcjonalności dla wyznaczenia prawdopodobieństwo wskazania k-
tej klasy przez zespół może być estymowany w postaci [58]
M
1
i ( x)
NiM −1
R
k =1
kDi (10.15)
Każdy wiersz macierzy odpowiada danym należącym do jednej klasy. Kolumna j-ta macierzy
wskazuje, ile przypadków zostało przez dany klasyfikator rozpoznanych jako klasa j-ta. Elementy
diagonalne odpowiadają danym rozpoznanym właściwie. Element Rij pokazuje ile razy
obserwacja należąca do klasy i-tej została rozpoznana jako klasa j-ta. Dane z obu macierzy
wskazują, że N1=10, N2=10, N3=10.
227
Załóżmy, że testowany wektor x został przypisany przez klasyfikator pierwszy do klasy
drugiej, D1(x)=d2, a klasyfikator drugi D2(x)=d1 wskazał klasę pierwszą jako zwycięzcę.
Rozpoznanie ostateczne klasy przez zespół klasyfikatorów będzie zależało od wartości μi dla i=1,
2, 3
1
1 (x) 2 2 = 0.4
10
1
2 ( x) 5 2 = 1
10
1
3 (x) 3 4 = 1.2
10
Największą wartość osiągnął współczynnik μ3, stąd decyzją zespołu będzie wskazanie klasy
trzeciej jako zwycięskiej dla tej obserwacji x. Zauważmy, że zwyciężyła klasa, która nie uzyskała
żadnego wskazania klasyfikatorów. To rozwiązanie integracji różni się znacząco od poprzedniej
metody, w której zwycięzca był wyłaniany jedynie spośród klas, na którą wskazał co najmniej
jeden klasyfikator.
228
struktur sieci tworzących zespół, na przykład połączenie w jednym zespole struktury Alexnet,
shufflenet, mobilenet, inception, itp. Zespół może również powstać na bazie jednego rodzaju
sieci, np. AlexNet, przy zróżnicowanej strukturze i trenowanej na różnycm zbiorze danych
uczących. Interesującym rozwiązaniem jest także fuzja losowa członków zespołu [79].
Innym rozwiązaniem problemu niezależności jest zastosowanie w uczeniu każdego
członka zespołu różniących się zbiorów uczących. Takie podejście powoduje, że parametry
poszczególnych układów dobrane w procesie uczenia będą inne, a więc ich działanie w trybie
odtworzeniowym również odmienne. Problemem może być ograniczony zasób danych
przeznaczonych do uczenia. Można go złagodzić przez zastosowanie procedury losowania
danych, w której każdy układ stosuje określony procent całego zbioru danych zmieniany
każdorazowo w procesie uczenia (np. procedura zwana bagging).
Innym rozwiązaniem jest stosowanie zróżnicowanego sposobu generacji cech
diagnostycznych stanowiących informację wejściową dla każdego indywidualnego członka
zespołu. Cechy te generowane są na podstawie tych samych oryginalnych danych pomiarowych.
W takiej sytuacji każde z indywidualnych rozwiązań systemu ma dostęp do pełnej informacji
pomiarowej, ale inaczej przetworzonej [56].
Jak przykład pokażemy zespół klasyfikatorów głębokich zbudowanych na bazie jednej
sieci AlexNet, ale o różnej architekturze (różna liczba neuronów w warstwie FC, różna wartość
współczynnika dropout) i trenowanej na zróżnicowanych danych uczących. Integracja zespołu
następuje poprzez głosowanie większościowe. Przykład takiego programu dla zespołu
zbudowanego z 5 sieci AlexNet przedstawiony jest poniżej.
MATLAB
% Program klasyfikacji do rozpoznania 68 klas obrazów twarzy
wyn=[]; wynVal=[];
Pred_y=[]; Pred_yVal=[];
% Pozyskiwanie obrazów
folder_z_obrazami = '[sciezka do folderu z obrazami]\ALEX_obrazy_all';
images = imageDatastore( folder_z_obrazami,...
'IncludeSubfolders',true,...
'ReadFcn', @customreader, ...
'LabelSource','foldernames');
[uczImages,testImages] = splitEachLabel(images,0.8,'randomized');
for i=1:5
i
[trainingImages,validationImages] = ...
splitEachLabel(uczImages,0.75+0.22*rand(1),'randomized');
numTrainImages = numel(trainingImages.Labels);
net = alexnet;
% layersTransfer = net.Layers(1:end-3);
layersTransfer = net.Layers(1:end-6);
229
inputSize = net.Layers(1).InputSize;
numClasses = numel(categories(trainingImages.Labels));
layers = [
layersTransfer
fullyConnectedLayer(500+35*i, ... % randomizacja osobników zbioru
'WeightLearnRateFactor',20,...
'BiasLearnRateFactor',20)
reluLayer()
dropoutLayer( 0.3+0.23*rand(1) ) % randomizacja osobników zbioru
fullyConnectedLayer(numClasses, ...
'WeightLearnRateFactor',20,...
'BiasLearnRateFactor',20)
softmaxLayer
classificationLayer];
miniBatchSize = 10;
numIterationsPerEpoch = floor(numel(trainingImages.Labels)/miniBatchSize);
options = trainingOptions('sgdm',...
'MiniBatchSize',miniBatchSize,...
'MaxEpochs',10,...
'ExecutionEnvironment','gpu',...
'InitialLearnRate',1.3e-4,...
'Verbose',false,...
'ValidationPatience',10,...% było 10
'Plots','training-progress',...
'ValidationData',validationImages,...
'ValidationFrequency',numIterationsPerEpoch);
netTransfer = trainNetwork(augimdsTrain,layers,options);
predictedLabels = classify(netTransfer,testImages);
testLabels = testImages.Labels;
accuracy = (mean(predictedLabels == testLabels))*100;
% Integracja zespołu
dy=[dtest Pred_y]
nclass=numClasses
clear dz
[lw,lk]=size(dy);
for i=1:lw
for j=1:nclass
d=0;
for k=2:lk
if (j==double(dy(i,k)))
d=d+1;
else
end
230
end
dz(i,j)=d;
% klasa=dy(:,1)
end
end
dz;
[q,cl_max]=max(dz');
zgod_class=length(find(double(dy(:,1))==cl_max'));
% Wyniki zespołu
dokl_zesp=zgod_class/lw*100
sen
prec
F1_zesp=2*prec.*sen./(prec+sen)
for i=1:nclass,
prec(i)=C(i,i)/sum(C(:,i));
end
wyn
median_zesp=median(wyn)
max_zesp=max(wyn)
mean_zesp=mean(wyn)
odch_zesp=std(wyn)
231
dokładności) poprzez zastosowanie zespołów zbudowanych na bazie słabych (mało dokładnych)
rozwiązań predyktorów, 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 (technika bagging), stosowane na przykład
w lesie losowym drzew decyzyjnych 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.
10.6.1 AdaBoost
W technice AdaBoost [5,77] każdy nowo dodawany członek zespołu (np. nowe drzewo
decyzyjne) 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. 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 dla 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
232
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.
Załóżmy, że zdefiniowany 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ę kodowaną 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
przeprowadzenia (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
Fm−1 (xi ) = 1 y1 (xi ) + 2 y2 (xi ) + + m −1 ym −1 (xi ) (10.16)
Po dodaniu m-tego predyktora słabego wynik działania zespołu można przedstawić w postaci
Fm (xi ) = Fm −1 (xi ) + m ym (xi ) (10.17)
Zadanie polega na doborze takiej wartości wagi m przy wyniku ym ( x i ) sklasyfikowania wektora
xi przez m-ty klasyfikator, aby polepszyć działanie całego zespołu. Funkcję błędu (ang. loss
function) definiuje się zwykle w postaci wykładniczej dla wszystkich wektorów xi biorących
udział w procesie uczenia
p p
E = e − di Fm ( xi )
= e− di Fm−1 ( xi )e− dim ym ( xi ) (10.18)
i =1 i =1
( )
p
E=
di = y ( xi )
wi( m)e−m +
di y ( xi )
wi( m)em = wi( m)e−m +
i =1
di y ( xi )
wi( m) em − e−m (10.20)
233
Analiza powyższego wzoru wskazuje, że wartość błędu E zależy jedynie od czynnika
y ( xi ) di
wi( m ) em , gdzie wi( m) = e−di Fm−1 ( xi ) . Minimalizacja błędu wymaga, aby pochodna funkcji błędu
( m)
wi
m = ip i
y ( x )d
(10.23)
(m)
wi
i =1
Wzór na wartość wagi αm przyjmie wówczas ostateczną postać [5,77]
1 1− m
m = ln (10.24)
2 m
Wartość ta będzie użyta w m-tym kroku przy dodaniu następnego klasyfikatora do zespołu.
Wynik klasyfikacji tak rozszerzonego zespołu dla wektora wejściowego xi określa wówczas wzór
Fm (xi ) = 1 y1 (xi ) + 2 y2 (xi ) + ... + m ym (xi ) (10.25)
234
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 zespołu 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 zdefiniowany 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ę
kodowaną na przykład w postaci binarnej (1, -1). Załóżmy, że zespół składa się z M słabych
klasyfikatorów generujących wyniki yi przynależności klasowej 1 lub -1 dla każdego wektora
wejściowego xi. Celem jest stworzenie zespołu, którego działanie na zbiorze uczącym
minimalizuje wartość średnią błędu. Wynik działania zespołu M predyktorów przy pobudzeniu
wektorem x będzie składał się z sumy wagowej wskazań poszczególnych jego członków
M
F (x) = i yi (x) + co nst (10.26)
i =1
Dodanie m-tego członka zespołu powinno zmienić wynik w kierunku minimalizacji wartości
funkcji strat. Działanie zespołu złożonego teraz z m członków można zapisać w postaci
p
Fm (x) = Fm −1 (x) + arg min E ( di , Fm −1 (xi ) ) + ym (xi ) (10.27)
ym i =1
gdzie η jest wielkością kroku w kierunku malejącej wartości gradientu funkcji strat
Fm−1 E ( di , Fm−1 (xi ) ) . Wartość η może podlegać optymalizacji (η=ηopt) w taki sposób, aby uzyskać
minimum funkcji strat E w każdym cyklu dodawania członka zespołu.
p
opt = arg min E di , Fm−1 (xi ) −F E ( di , Fm−1 (xi ) ) (10.29)
i =1
m−1
Po dodaniu m-tego członka wynik działania zespołu przy pobudzeniu wektorem x określa
zmodyfikowany model
Fm (x) = Fm−1 (x) + ym (x) (10.30)
235
Technika gradient boosting jest najczęściej stosowana przy użyciu drzew decyzyjnych jako
słabych predyktorów [5]. 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
różne 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 (10.30) określający działanie zespołu jego zmodyfikowaną wersją
Fm (x) = Fm −1 (x) + ym (x) (10.31)
w której współczynnik ν jest ułamkiem. Typowa wartość to ν=0.1. 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 regularyzacji 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 ograniczenie czasu uczenia poprzez obserwację
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.
236