Piotr Boryczko - Neuroewolucja Topologi Sieci Neuronowych

download Piotr Boryczko - Neuroewolucja Topologi Sieci Neuronowych

of 44

Transcript of Piotr Boryczko - Neuroewolucja Topologi Sieci Neuronowych

POLITECHNIKA KRAKOWSKA IM. TADEUSZA KOCIUSZKI WYDZIA FIZYKI MATEMATYKI I INFORMATYKI KIERUNEK INFORMATYKA

PIOTR BORYCZKO

NEUROEWOLUCJA TOPOLOGII SIECI NEURONOWYCH Z WYKORZYSTANIEM ALGORYTMW GENETYCZNYCH

PRACA INYNIERSKA STUDIA STACJONARNE

Promotor: Dr in. Tomasz Gciarz Krakw 2011

Spis treci1 Wstp .................................................................................................................................................. 4 1.1 1.2 Cel pracy................................................................................................................................... 4 Plan pracy ................................................................................................................................. 4

2 Neuroewolucja topologii sieci neuronowych ...................................................................................... 6 3 Sztuczne sieci neuronowe ................................................................................................................... 7 3.1 Nauka i optymalizacja sieci neuronowych ............................................................................... 8 3.1.1 Metoda wstecznej propagacji bdw ........................................................................ 8

4 Algorytmy genetyczne ........................................................................................................................ 9 4.1 Algorytm N.E.A.T. ................................................................................................................. 10 4.1.1 4.1.2 4.1.3 4.1.4 Kodowanie chromosomw....................................................................................... 10 Mutacja..................................................................................................................... 12 Krzyowanie ............................................................................................................ 13 Populacje .................................................................................................................. 14

5 Zbir prbek gosowych ................................................................................................................... 16 5.1 5.2 5.3 Poprawa prbek ...................................................................................................................... 16 Zwikszenie iloci prbek ...................................................................................................... 16 Zbadanie przebiegu fali .......................................................................................................... 17 5.3.1 Metoda zliczania przej przez zero ..................................................................... 17

6 Wybr technologii ............................................................................................................................ 19 6.1 6.2 6.3 Jzyk programowania ............................................................................................................. 19 rodowisko pracy ................................................................................................................... 19 Implementacje algorytmw i struktur..................................................................................... 20 6.3.1 Implementacja sieci neuronowych ........................................................................... 20

Piotr Boryczko | Wstp

2|44

6.3.2 6.4 6.5

Implementacja algorytmu NEAT ............................................................................. 20

Technologia uyta w GUI....................................................................................................... 22 Program do plikw z prbkami cyfr ....................................................................................... 22

7 Aplikacja ........................................................................................................................................... 23 7.1 7.2 Architektura ............................................................................................................................ 23 Obsuga aplikacji. ................................................................................................................... 24 7.2.1 7.2.2 Okno do algorytmu NEAT ....................................................................................... 24 Okno do metody backpropagation ........................................................................... 26

8 Wyniki dowiadcze ......................................................................................................................... 29 8.1 8.2 8.3 8.4 Przedmiot bada ..................................................................................................................... 29 Dane dla sieci ......................................................................................................................... 29 rodowisko przeprowadzanych bada ................................................................................... 30 Wyniki dla metody wstecznej propagacji ............................................................................... 30 8.4.1 8.4.2 8.4.3 8.4.4 8.4.5 8.5 Brak warstw ukrytych .............................................................................................. 31 Dua ilo neuronw w warstwach ukrytych ........................................................... 31 rednia ilo neuronw w warstwach ukrytych ....................................................... 32 Eksperymentalny dobr iloci neuronw ................................................................. 33 Wnioski .................................................................................................................... 33

Wyniki dla algorytmu NEAT ................................................................................................. 34 8.5.1 8.5.2 Sie rozpoznajca jak cyfra jest reprezentowana przez probk ............................... 34 Sie odrniajca zadan cyfr od pozostaych ....................................................... 38

8.6

Analiza wynikw .................................................................................................................... 40

Podsumowanie ....................................................................................................................................... 42 Spis tabel i rysunkw ............................................................................................................................. 43 Bibliografia ............................................................................................................................................ 44

Piotr Boryczko | Wstp

3|44

1 WstpWspczenie, coraz czciej i w coraz wikszej iloci problemw wykorzystuje si rozwizania z dziedziny Sztucznej Inteligencji. Sieci neuronowe i algorytmy genetyczne umoliwiaj dostarczenie rozwiza w przypadkach, gdy brakuje dokadnego algorytmu wykonania zadania. Ich umiejtno dopasowywania dziaania do sytuacji, znajduj zastosowanie midzy innymi w sterowaniu, analizie jzykw i grach. Zazwyczaj wykorzystuje si algorytmy genetyczne lub sieci neuronowe, jednak synteza obu tych rozwiza moe przynie ciekawe perspektywy. Jednym z problemw z sieciami neuronowymi jest konieczno ich odpowiedniej nauki oraz doboru topologii sieci. Tu z pomoc mog przyj mechanizmy ewolucyjne dostarczane przez algorytmy genetyczne.

1.1

Cel pracyCelem pracy jest wykorzystanie algorytmw genetycznych do modyfikacji

parametrw i topologii sztucznych sieci neuronowych. Zostanie dokonana analiza dziaania przykadowego algorytmu genetycznego i porwnanie wynikw jego dziaania z wynikami standardowej metody nauczania sieci. Dowiadczenia oparte bd o zgromadzon baz prbek gosowych cyfr w jzyku polskim. Praktycznym rezultatem pracy, bdzie stworzenie rodowiska dowiadczalnego w ktrym moliwe bdzie dokonywanie eksperymentw z nauczaniem sieci neuronowych za pomoc algorytmw genetycznych i standardowych metod. Eksperymenty w aplikacji przeprowadzane bd przy pomocy przedstawionych w dalszej czci pracy algorytmu genetycznego lub standardowej metody nauki z nauczycielem.

1.2

Plan pracyRozdziay pracy omawiaj kolejne problemy i zagadnienia z ktrymi wizaa si

realizacja pracy inynierskiej. Uszeregowane s zgodnie z kolejnoci z jak byy rozpoznawane i realizowane. Na pocztku krtko zostanie omwiona tematyka neuroewolucji. Pomoe to zrozumie kontekst tej pracy inynierskiej.

Piotr Boryczko | Wstp

4|44

Rozdzia trzeci powicony zosta krtkiemu omwieniu dziaania sieci neuronowych. Przedstawiono w nim zasad uczenia sieci algorytmem wstecznej propagacji bdw. W kolejnym rozdziale zawarty zosta wstp dotyczcy algorytmw genetycznych. Omwiono w nim sposoby uycia algorytmw genetycznych do nauki i doboru najlepszych sieci neuronowych. Analizowane jest tu dokadne dziaanie algorytmu NEAT. Pity rozdzia powicony jest prbkom gosowym polskich cyfr. Przedstawi sposb ich zebrania oraz metod uyt do zwikszenia ich iloci. Wyjaniono metod uyt do obrbki tych prbek, tak aby mogy by pniej przetwarzane przez sieci neuronowe. W szstym rozdziale, omwione zostay technologie uyte przy wykonaniu aplikacji. Przedstawi przyczyny konkretnych decyzji, oraz przedstawi pochodzenie uywanych zewntrznych bibliotek lub algorytmw. W sidmym rozdziale zaprezentowane jest dziaanie aplikacji i jej interfejs graficzny. Zawiera architektur programu i stanowi instrukcj jego obsugi. Rozdzia 8 zawiera wyniki dowiadcze. Przedstawiono wyniki rozpoznawania prbek rozpoznawanych przez sieci uczone metod wstecznej propagacji oraz sieci dobierane przez algorytm genetyczny. Ostatni rozdzia to podsumowanie pracy.

Piotr Boryczko | Wstp

5|44

2 Neuroewolucja topologii sieci neuronowychNeuroewolucja, czyli rozwj sztucznej sieci neuronowej za pomoc algorytmw ewolucyjnych jest ostatnio bardzo intensywnie badan dziedzin uczenia maszynowego [Stanley 3]. Znajduje zastosowania w sytuacjach w ktrych moliwe jest ocenienie poprawnoci dziaania generowanych sieci neuronowych, ale trudne lub niemoliwe jest zdefiniowanie staej struktury sieci, ktrej wymagaj standardowe metody nauki z nauczycielem. Sednem dziaania algorytmw neuroewolucyjnych jest zakodowanie struktury sieci neuronowej w postaci chromosomu algorytmu genetycznego a nastpnie postpowanie z nim zgodnie z zasadami dziaania algorytmw genetycznych. Rozrniane s dwa typy algorytmw neuroewolucyjnych. W pierwszym zakada si sta struktur sieci neuronowej. Takie podejcie bezporednio zastpuje wykorzystanie standardowych metod nauki z nauczycielem. W dalszym cigu problemem pozostaje dobr odpowiedniej struktury sieci dla rozwizywanego problemu. Drugi typ algorytmw parametryzuje rwnie ksztat sieci neuronowych i wymaga okrelenia jedynie staej liczby wej i wyj sieci neuronowej. Umoliwia to tworzenie struktur, ktre w penie bd si w stanie adaptowa do wymaga. Sieci ktre podlegaj ewolucji zarwno pod wzgldem ich wag jak i topologii okrelane s jako TWEANNs (Topology & Weight Evolving Artificial Neural Networks). Istnieje kilka implementacji takich algorytmw, jednak w ninejszej pracy opisany zostanie algorytm NEAT (NeuroEvolution of Augmenting Topologies) .

Piotr Boryczko | Neuroewolucja topologii sieci neuronowych

6|44

3 Sztuczne sieci neuronoweSztuczne sieci neuronowe to matematyczne lub komputerowe modele, wzorowane ma strukturze i dziaaniu biologicznych sieci neuronowych. Modele te skadaj si z grupy powizanych ze sob sztucznych neuronw, ktre przetwarzaj sygnay wedug zadanego wzorca algorytmicznego. Sieci zazwyczaj skadaj si z warstwy wejciowej, ukrytych i wyjciowej. Moliwe s struktury bez warstw ukrytych. [WWW2]

Rysunek 1.Sie neuronowa

Nie s one s w stanie modelowa rzeczywistej pracy mzgu, ale s odpowiednim narzdziem do reprezentacji skomplikowanych zalenoci zachodzcych pomidzy bodcami (sygnaami wejciowymi) a reakcjami (sygnaami wejciowymi) [Tadeusiewicz 2007, s.4-5]. Tworzone s jako struktury adaptacyjne, dostosowujce zachowanie do zadanych warunkw. Z uwagi na te cechy s doskonaym narzdziem do analizy mowy. W przypadku niniejszej pracy inynierskiej badania mwionych cyfr .

Piotr Boryczko | Sztuczne sieci neuronowe

7|44

3.1

Nauka i optymalizacja sieci neuronowychSztuczne sieci neuronowe stanowi narzdzie, za pomoc ktrego mona rozwizywa

wiele problemw. Jednak ich struktury same w sobie nie pozwol na adne efektywne dziaanie. Konieczne jest wykorzystanie mechanizmw uczenia, ktre umoliwi dostosowywanie parametrw takich sieci do specyfiki analizowanego problemu. Jest kilka moliwych podej do tej kwestii. Najczciej stosowane s metody w ktrych stosuje si nauczyciela-nadzorc. Sprawno algorytmu jest po kadym kroku nauczania sprawdzana przez metod oceniajc i na podstawie tej oceny modyfikowane s odpowiednio wagi neuronw. Przykadem takiego podejcia jest metoda wstecznej propagacji bdw.

3.1.1

Metoda wstecznej propagacji bdwWsteczna propagacja bdw (backpropagation) to jedna z najpopularniejszych i

sztandarowych metod nauki sieci neuronowych. Metoda ta jest tak popularna, e w wikszoci gotowych programw sucych do tworzenia modeli sieci i ich uczenia stosuje si t metod jako domyln [Tadeusiewicz 2007, s.220]. Metoda zostaa dobrana jako element odniesienia dla bardziej zaawansowanych metod opierajcych si na neuroewolucji. Wymaga dostarczenia jej wektora oczekiwanych wartoci na wyjciach sieci. W oparciu o rnic midzy nimi a wartoci uzyskanymi na wyjciach, wyliczany jest bd. Na jego podstawie, modyfikowane s wartoci wag na wczeniejszych poczeniach, rozpoczynajc od warstwy poprzedzajcej wyjciow a koczc na poczeniach warstwy wejciowej.

Piotr Boryczko | Sztuczne sieci neuronowe

8|44

4 Algorytmy genetyczneMetoda backpropagation ma niewtpliw zalet prostoty i przewidywalnoci. Moliwe jest zastosowanie innego podejcia. Do nauczania i transformacji sieci neuronowych mona uy algorytmw genetycznych. Algorytmy genetyczne s to algorytmy poszukiwania oparte na mechanizmach doboru naturalnego oraz dziedzicznoci [Goldberg 2003]. Podstawow struktur jest chromosom. Reprezentuje on obiekt lub obiekty podlegajce mechanizmom algorytmu genetycznego. Na takim chromosomie kodowane s wartoci, struktury tych obiektw. Kolejne wyniki dziaania algorytmu genetycznego nazywamy populacjami zbiorami chromosomw przetworzonych przez algorytm. Zbir pocztkowy nazywamy populacj pocztkow. Na osobnikach populacji wykonuje si odpowiedniki zjawisk wystpujcych w przyrodzie. Najwaniejszymi z nich s mutacje i krzyowania (crossing-over). Ocen przydatnoci danego chromosomu dokonuje si na podstawie funkcji przystosowania. Moliwe jest zastosowanie algorytmw genetycznych do uczenia sieci neuronowych poprzez zakodowanie ich parametrw na chromosomach jest to opisana w rozdziale 2 neuroewolucja. Po tworzeniu kolejnych generacji, odbywa si tworzenie sieci neuronowych na podstawie informacji z chromosomu. Nastpnie przy pomocy zaprojektowanej funkcji dopasowania, podlegaj one ocenie. W metodach neuroewolucyjnych ze sta topologi sieci na chromosomach kodowana jest informacja jedynie o wagach chromosomw. Kolejne dekodowane informacje nanoszone s na z gry ustalon topologi sieci. Moliwe jest jednak zastosowanie algorytmw ze zmienn topologi sieci. Pierwszym problemem, ktry trzeba rozwiza w przypadku takich metod jest zakodowanie na chromosomie nie tylko wag neuronw ale take struktury powiza midzy nimi. Nastpnie naley opracowa odpowiednie algorytmy realizujce operacje genetyczne, tak aby modyfikoway oba elementy. Ostatecznie wane jest dopracowanie wydajnoci takiej metody, gdy do wykonania jest wicej operacji ni w przypadku poprzednich metod. Przykadem algorytmu stosujcego takie podejcie jest algorytm NEAT.

Piotr Boryczko | Algorytmy genetyczne

9|44

4.1

Algorytm N.E.A.T.Algorytm NEAT zosta stworzony przez dr Kennetha O. Stanleya. Jest to przykad

wykorzystania neuroewolucyjnych metod ze zmienn topologi sieci. Wymagane jest jedynie podanie staej liczby wej i wyj sieci [WWW2]. Populacj pocztkow algorytmu s sieci o dowolnej strukturze wewntrznej i losowych wagach na wzach sieci. Jedynym obostrzeniem jest wymg identycznej struktury topologii sieci dla caej populacji pocztkowej. Zalecane jest te dobranie na pocztek prostej struktury, bez warstw ukrytych.

Rysunek 2. Przykadowa populacja pocztkowa

4.1.1

Kodowanie chromosomwW kadym algorytmie neuroewolucyjnymi, wane jest opracowanie kodowania sieci.

W algorytmie N.E.A.T, ten problem rozwizano kodujc wzy sieci na jednym chromosomie a poczenia pomidzy nimi na drugim, powizanym chromosomie. Stworzony w ten sposb genotyp jest wystarczajcy do reprezentacji sieci neuronowej.

Piotr Boryczko | Algorytmy genetyczne

10|44

Rysunek 3. Przykadowy genotyp [Stanley 1]

Kady gen chromosomu reprezentujcego wzy sieci ma dwie skadowe. Pierwsza to identyfikator wza, a druga okrela gdzie w strukturze sieci znajduje si wze. Sensor to wze wejciowy, Output, to wze na wyjciu sieci a Hidden oznacza, e wze znajduje si w warstwie ukrytej. Struktura genu reprezentujcego poczenia pomidzy wzami jest bardziej zoona. Pierwsze dwie skadowe (In i Out) odpowiadaj za okrelenie miedzy ktrymi wzami jest to poczenie. Weight zawiera informacj o wadze na poczeniu. Kolejna skadowa informuje czy poczenie jest aktywne (Enabled) czy nie (Disabled). Ostatnia skadowa genu Innov okrela wspczynnik innowacyjnoci [Stanley 1 str. 8-10].

Rysunek 4. Fenotyp odpowiadajcy genomowi z rys. 6 [Stanley 1].

Piotr Boryczko | Algorytmy genetyczne

11|44

4.1.2

MutacjaPierwsz z dwch operacji genetycznych, wykorzystanych w algorytmie jest mutacja.

Moe ona dotyczy wag pocze. Losujemy z pewnym prawdopodobiestwem chromosom, zmieniajc losowo wag na poczeniach przez niego reprezentowanych. Ciekawszy jest drugi typ mutacji dotyczcy topologii. Tu rozrniane s kolejne dwa typy mutacji. Mutacja moe dotyczy dodania poczenia lub dodania wza. W pierwszym przypadku mutacja polega na doczeniu genu do chromosomu odpowiadajcego za poczenia. Dodatkowy gen zawiera losow wag, jest aktywny i czy losowo wybrane, niepoczone wzy sieci. W przypadku dodania nowego wza pomidzy 2 inne poczone wzy, dodaje si dodatkowy gen do chromosomu reprezentujcego wzy. Ponadto doczane s 2 geny reprezentujce poczenia miedzy nowo dodanym wzem. Gen reprezentujcy poczenie w ktre wstawiony zosta nowy wze zostaje zdezaktywowany.

Rysunek 5. Mutacje struktury [Stanley 1]

Piotr Boryczko | Algorytmy genetyczne

12|44

Dziki mutacjom, sie neuronowa rozwija si. Jednak sieci o rnych rozmiarach, sprawiaj, e nietrywialnym zagadnieniem staje si krzyowanie chromosomw [Stanley 1 str. 9-11].

4.1.3

KrzyowanieBezporednie krzyowanie 2 genotypw, reprezentujcych rne struktury sieci nie

jest moliwe. Aby taka operacja bya moliwa, wykorzystywany jest wspczynnik innowacyjnoci (Innov). Okrela on pochodzenie genu. Za kadym razem, gdy przez dodawanie nowego genu, modyfikowana jest struktura sieci, inkrementuje si globalny wspczynnik innowacji. Jego now warto przypisuje si do dodanego genu. Dziki temu, bez skomplikowanych oblicze moliwe jest obliczanie pochodzenia genu. Gdy nastpuje krzyowanie 2 chromosomw, geny dzielone s na 3 kategorie, wedug wspczynnika innowacyjnoci. Chromosomy obu rodzicw s ukadane wzdu siebie. Kolejne geny, o wsplnym wspczynniku innowacyjnoci okrela si jako geny dopasowane (W). Kolejne geny o niezgodnym wspczynniku s genami rozcznymi (D) lub nadmiarowymi (E) w zalenoci od tego czy znajduj si wewntrz czy na zewntrz wzgldem zakresu drugiego rodzica. W przypadku genw dopasowanych, potomek otrzymuje losowo wybrane genu od obu rodzicw. W przypadku pozostaych genw, potomek otrzymuje geny bardziej dopasowanego rodzica. Geny D i E mniej dopasowanego rodzica przekazywane s wtedy, gdy pasuj do struktury potomka. Takie podejcie do krzyowania rozwizuje problem rnych topologii. [Stanley 1 str. 9-12]

Piotr Boryczko | Algorytmy genetyczne

13|44

Rysunek 6. Krzyowanie sieci o rnych topologiach [Stanley 1]

4.1.4

PopulacjeDo rozwizania pozostaje jeden problem. Sieci o mao skomplikowanej strukturze s

w stanie szybciej osign wysokie dopasowanie ni te o bardziej zoonej topologii. Spowodowane jest to duszym czasem na nauk wymaganym dla bardziej zoonych struktur. W celu ochrony innowacyjnych rozwiza algorytm N.E.A.T wykorzystuje mechanizm gatunkw. Chromosomy reprezentujce sieci o podobnej topologii grupuje si w gatunki. Przynaleno do gatunku okrela wspczynnik odlegoci gatunkowej : N oznacza liczb gatunkw, redni rnic wag wrd genw dopasowanych, a wspczynniki c pozwalaj dopasowa wag dla poszczeglnych skadnikw. Kady gatunek posiada wspczynnikPiotr Boryczko | Algorytmy genetyczne

, gdzie t to numer identyfikacyjny gatunku. Przyporzdkowujc14|44

nowy genotyp do populacji, wyliczamy jego wspczynnik

wzgldem losowego jest

przedstawiciela gatunku. Nowy genotyp zostaje przyporzdkowany do gatunku, gdy mniejszy od [Stanley 1 str. 13].

Piotr Boryczko | Algorytmy genetyczne

15|44

5 Zbir prbek gosowychAby mc przystpi do jakichkolwiek bada, potrzebne s prbki na ktrych mona je przeprowadza. Z uwagi, e niniejsza praca inynierska, opiera si o badanie mwionych cyfr w jzyku polskim, konieczne byo zebranie dostatecznie duego zbioru nagra. Zebrano okoo 800 prbek gosowych. W tej liczbie na kad cyfr przypado, okoo 80 prbek. Kada prbka bya osobnym plikiem WAVE. Prbki byy monofoniczne, 32-bitowe i nagrane z czstotliwoci 44100 Hz. Z tak liczb nagra, przystpiono do dalszego procesu przygotowywania ich do dalszego uytku.

5.1

Poprawa prbekNagrane prbki miay pewne wady. Szczeglnie problematyczne byy fragmenty ciszy

oraz szumy. Do odpowiedniego przetworzenia prbek, uyto darmowego narzdzia Audacity. Przy jego pomocy wycito cisz z pocztku i koca nagra. W dalszym cigu rozwiza naleao problem szumw w niektrych nagraniach. W tym przypadku rwnie przydatny by edytor Audacity. Wykorzystujc opcj odszumiania, moliwe byo poprawienie jakoci prbek.

5.2

Zwikszenie iloci prbek

Liczba 80 pocztkowych prbek przypadajcych na kad cyfr, nie bya wystarczajca. W celu otrzymaniu bardziej realnych wynikw w pniejszym etapie pracy, konieczne byo uzyskanie wikszej liczby nagra. Z uwagi na trudnoci w uzyskaniu kolejnych nagra od kolejnych osb, konieczne byo uycie metod programistycznych. Uyto algorytmu, ktry zmodyfikowa istniejce prbki. Dla pozyskania wikszej iloci prbek, przepuszczono je przez filtr preemfazy. Na skutek jego dziaania, grne pasma przenoszenia s wzmacniane. W rezultacie otrzymywany jest sygna o mniejszej dynamice, stumionych niszych czstotliwociach a podbitych wyszych [WWW1]. Z jego pomoc udao si podwoi liczb nagra i w dalszej pracy moliwe byo wykorzystanie okoo 1600 prbek gosowych.

Piotr Boryczko | Zbir prbek gosowych

16|44

5.3

Zbadanie przebiegu faliPrbki gosu, s zbyt rnorodne, aby moliwe byo ich ocenianie na podstawie

samego ksztatu fali dwikowej. Dwa, na pozr zupenie inne, przebiegi mog reprezentowa te same cyfry. Dlatego te konieczne jest wykorzystanie metod badania czstotliwoci i okrelania na jej podstawie charakterystycznych cech prbki.. Moliwe jest wykorzystanie prostszych metod, takich jak badanie przej przez zero (zero-crossing).

5.3.1

Metoda zliczania przej przez zeroMetoda polega na podziale prbki na zadan liczb przedziaw i zliczenia sytuacji w

ktrych warto fali zmienia znak.

Rysunek 7. Badanie przej przez zero

Czsto zdarza si, e tego typu badanie generuje bdy. Mog one wynika np. z szumw lub maej wartoci waha fali w pobliu zera. W celu uniknicia bdw wynikych z tego powodu, konieczne jest modyfikowanie metody. Pierwsz modyfikacj jest badanie przej nie przez zero a przez warto redni prbki. Prbki mog mie wartoci przesunite wzgldem zera. Dla skrajnie zego przypadku mona otrzyma dla przebiegu fali brak przej przez zero, podczas gdy dla innego bardzo podobnego przebiegu, ilo przej przez zero jest prawidowa..

Piotr Boryczko | Zbir prbek gosowych

17|44

Kolejnym problemem s wahania fali wok redniej wartoci. niedoskonao metody mona zrekompensowa uwzgldniajc wspczynnik redukcji . Po jego uwzgldnieniu, przejcie przez zero jest zliczane jedynie w sytuacji, gdy warto bezwzgldna kolejnej wartoci jest wiksza od wspczynnika . W spczynnik redukcji jest zadawany dla caego zestawu prbek. Jego uelastycznienie i dostosowanie do kadej prbki z osobna, jest moliwe poprzez korelacj jego wartoci z amplitud fali.

Piotr Boryczko | Zbir prbek gosowych

18|44

6 Wybr technologii6.1 Jzyk programowaniaPo za poznaniu si z tematem, pierwsz decyzj ktr naleao podj by dobr jzyka programowania i rodowiska w ktrym wykonywana bdzie praca. Rozwaono kilka jzykw programowania jednak ostatecznie wybr pad na jzyk C++. Dziki swojemu stosunkowo dugiemu istnieniu, posiada wiele gotowych bibliotek i implementacji algorytmw. Jego kolejn niewtpliw zalet jest wydajno. Szybko wykonywania algorytmw w C++ jest w pesymistycznych przypadkach rwna wykonaniu algorytmw w jzyku Java czy C#, a czsto jest wiksza. Istotny wpyw na wybr jzyka miaa te liczba implementacji algorytmu NEAT w C++ . Postanowiono wykorzysta jedno z zintegrowanych rodowisk programistycznych (IDE Integrated Development Environment).

6.2

rodowisko pracyWybrano rodowisko Microsoft Visual Studio 2010. rodowisko to zapewnia

wygodn prac i solidne nowoczesne kompilatory. Dodatkowym atutem bya moliwo wykorzystania moliwoci platformy .Net za porednictwem jzyka C++/CLI. Dodatki zawarte w tym rozszerzeniu jzyka dostarczanym przez Microsoft, wymagaj uycia kodu zarzdzanego. Istnieje jednak metoda czenia kodu niezarzdzanego z kodem zarzdzanym. Przy uyciu flagi kompilacji mieszanej moliwe jest czenie obu styli programowania. Zmniejsza ona w pewnym stopniu wydajno rozwizania, ale na wspczesnych maszynach nie jest to zbyt odczuwalne. Ponadto pisany program nie wymaga obrbki sygnau w czasie rzeczywistym. Wykorzystanie dodatkw zarzdzanych uatwio znacznie budow interfejsu graficznego uytkownika, oraz pewne operacje systemowe.

Piotr Boryczko | Wybr technologii

19|44

6.36.3.1

Implementacje algorytmw i strukturImplementacja sieci neuronowychWykorzystywane s 2 implementacje sieci. Pierwsza prostsza wykorzystywana przy

algorytmie wstecznej propagacji jest oparta o tablice. Struktura sztucznej sieci neuronowej, po jej pocztkowym zadeklarowaniu, jest zawsze staa. Dlatego te aby zwikszy szybko przetwarzania, sie oparta jest o tablice a dokadniej macierz 3-wymiarow. Kady element macierzy zawiera wag na wyjciach konkretnych neuronw. Dodatkowe tablice zawieraj poprzednie wartoci wag neuronw, wyjcia neuronw oraz wartoci bdw na wyjciach. Druga sie neuronowa wykorzystywana w aplikacji to zmodyfikowana na potrzeby pracy, klasa uywana w implementacji algorytmu N.E.A.T. Oparta jest o szablonow klas wektora. Wykorzystanie takiej sieci jest dodatkowo uzasadnione jej dynamicznymi zmianami podczas dziaania algorytmu genetycznego.

6.3.2

Implementacja algorytmu NEATW pracy inynierskiej wykorzystano implementacj algorytmu NEAT stworzon

przez Mata Bucklanda [WWW3]. Opar on swoje klasy o wzorcow implementacj Stanleya. Z uwagi, e kod pisany by pod rodowiskiem Visual Studio 2005, moliwa bya jego migracja i uycie w Aplikacji do przeprowadzania dowiadcze. Kod klas udostpniony jest na wolnej licencji GNU GPL. Buckland w swojej przykadowej implementacji zaj si problemem omijania przeszkd, przez obiekty sterowane sieciami neuronowymi. Cz klas dotyczca tych zagadnie zostaa usunita z projektu. Zlikwidowane zostay nadmiarowe funkcje suce do rysowania i obsugi okien WINAPI. Konieczne byy te poprawki w wyraeniach sterujcych. Zastosowana przez autora skadnia, generowaa na uywanym rodowisku bdy kompilacji powodowane przez uycie zmiennej poza zakresem. .W miar pracy zostay dodane brakujce zabezpieczania dotyczce, przekroczenia zakresu wektorw, ktrych brako w oryginalnej implementacji.

Piotr Boryczko | Wybr technologii

20|44

Rysunek 8. Najwaniejsze klasy implementacji algorytmu NEAT

Implementacja oparta jest o kilka klas, z ktrych najwaniejsz jest klasa Cga. Zawarte s w niej implementacje operacji genetycznych, metody do podziau populacji na gatunki oraz pobranie informacji o stanie algorytmu. Metoda Epoch() wykorzystywana jest do tworzenia kolejnych pokole chromosomw. Jako parametr przekazuje si do niej wektor z wartociami funkcji dopasowania dla kolejnych chromosomw. Kade wywoanie metody zwraca wektor zawierajcy fenotypy w postaci stworzonych sieci neuronowych. Metoda GetBestPhenotypeFromLatGeneration() umoliwia otrzymanie n najlepszych sieci z ostatniego pokolenia. Parametr n tak jak i inne parametry (prawdopodobiestwa poszczeglnych mutacji, krzyowania, przetrwania okrelonych osobnikw z wczeniejszych generacji) ustalane s w klasie CParams. Jest to klasa skadajca si z statycznych pl i metod umoliwiajcych wczytanie parametrw z pliku. Kady neuron jest obiektem klasy SNeuron . Struktura ta posiada wektory pocze przychodzcych i wychodzcych wraz z ich wagami, typ neuronu, jego identyfikator i warto wyjcia.

Piotr Boryczko | Wybr technologii

21|44

6.4

Technologia uyta w GUIInterfejs uytkownika zosta zrealizowany w technologii Microsoft WindowsForms. Do

rysowania sieci, wykorzystano bibliotek GDI+.

6.5

Program do plikw z prbkami cyfrZa pomoc prostej aplikacji napisanej w C# (z wykorzystaniem bibliotek .NET),

moliwe jest wygenerowanie plikw .digits, ktre zawieraj przetworzon tre prbek gosowych z wykorzystaniem opisywanego algorytmu. Program wywouj si z konsoli poleceniem: ./transform.exe katalog_z_prbkami ilo_przedziaow nazwa_pliku , gdzie nazwa pliku, to nazwa pliku w ktrym zapisane zostan wartoci przej przez zero dla prbek, a to warto wspczynnika redukcji opisanego w rozdziale 5.

Piotr Boryczko | Wybr technologii

22|44

7 AplikacjaW celu umoliwienia przeprowadzania bada zwizanych z wymienionymi wczeniej metodami nauki sieci, zostaa stworzona aplikacja okienkowa.

7.1

ArchitekturaProgram posiada dosy prost architektur. Zbudowany jest z klas reprezentujcych

okna aplikacji i wykonujcych operacje zwizane z logik ich dziaania. Okna zbudowane s w oparciu o framework WindowsForms. Obiekty Samples reprezentuj prbki cyfr. Klasa Network odpowiada za realizacj zada zwizanych z metod wstecznej propagacji. Klasy NeatOne i NeatTen stanowi fasady dla metod wykonywanych przez klas Cga i umoliwiaj przeprowadzanie dowiadcze z neuroewolucj. Poza tym aplikacja posiada obiekty zwizane z uyt implementacj algorytmu NEAT.

StartWindow

BPWindow 1 1 1

1

NEATWindow 1 1 1 Cga

Experiment -signals 1 Network -weights : double[][][] +feedForward() +backPropagation() +fitness()

1

* DigitsExperiment CNeuralNet subsystem Elementy NEAT

Rysunek 9. Oglny diagram klas aplikacji

Piotr Boryczko | Aplikacja

23|44

7.2

Obsuga aplikacji.Po uruchomieniu aplikacji, wywietlane jest okno (rysunek 12) w ktrym wybieramy

obiekt dowiadcze i uywany algorytm. Na chwil obecn wybr jest ograniczony do jednego obiektu bada. Moliwe jest eksperymentowanie tylko na prbkach gosowych. Wybieramy te jeden z dwch algorytmw : wstecznej propagacji albo NEAT. Aby przej dalej konieczne jest wybranie po jednym elemencie z kadej listy.

Rysunek 10. Wybr eksperymentu i algorytmu

7.2.1

Okno do algorytmu NEATPo wyborze algorytmu NEAT (rysunek 13), wywietlone zostaje okno skadajce si z

trzech czci. Sekcja Parametry algorytmu: Eksperyment umoliwia wybr pomidzy dwoma dostpnymi dowiadczeniami z NEAT. S to rozpoznanie cyfry na podstawie prbki lub wykrywanie czy prbka zawiera zadan cyfr. Rozmiar populacji - okrela jak liczb chromosomw tworzymy dla kolejnych populacji. Neurony max. parametr wyznaczajcy maksymaln ilo neuronw, ktre mog znale si w sieci neuronowej.

Piotr Boryczko | Aplikacja

24|44

Przetrwanie prawdopodobiestwo przetrwania organizmu z poprzedniej generacji. Nowe po. i Nowy wze - prawdopodobiestwo mutacji polegajcej na dodaniu poczenia lub dodania wza sieci (neuronu). Mutacja - prawdopodobiestwo mutacji wagi na poczeniach pomidzy neuronami. Zmiana wag procentowy zakres zmian wagi podczas mutacji. Krzyowanie - prawdopodobiestwo, z ktrym dochodzi do operacji crossing-over, pomidzy dwoma osobnikami populacji. Max. liczba gatunkw - maksymalna liczba gatunkw jakie mog zosta stworzone podczas ewolucji. Gatunki chroni rnorodno populacji.

Sekcja Sterowanie: Ewolucja uruchamia algorytm dla zadanej liczby pokole Poka najlepsz sie wywietla okno z najlepsz sieci i jej parametrami. Cyfra wybr konkretnej sieci rozpoznajcej cyfr. Dostpne tylko po wyborze odpowiedniej opcji na licie rozwijalnej Eksperyment. Liczba pokole okrela ile kolejnych generacji ma zosta stworzonych po wciniciu przycisku Ewolucja.

Sekcja Dopasowanie: Licznik pokole wywietla liczb stworzonych pokole. rednie dopasowanie zawiera rednie dopasowanie sieci w nauce. Procentowe dopasowanie prbek testowych zawiera procentowe rozpoznanie cyfr zawartych w prbkach testowych. Jeeli dowiadczenie dotyczy rozpoznania cyfry na podstawie prbki, to wiersze reprezentuj rzeczywiste wartoci prbek a kolumny wartoci rozpoznane. Gdy wybrano wykrywanie czy prbka zawiera zadan cyfr, kolumny reprezentuj sieci majce rozpozna kolejne cyfry. Dopasowanie populacji zawiera wykres z rednim dopasowaniem populacji i dopasowaniem jej najlepszego osobnika, podczas trwania eksperymentu. Dla drugiego typu dowiadczenia wykres jest nieaktywny.Piotr Boryczko | Aplikacja 25|44

Rysunek 11. Okno z algorytmem NEAT

7.2.2

Okno do metody backpropagationJeeli wybrany na pocztku zosta algorytm wstecznej propagacji, wywietlane jest

inne okno (rys. 14). Zawiera ono elementy przydatne przy wykonywaniu dowiadcze z nauk sieci. Skada si z trzech sekcji. Sekcja Sie neuronowa: Ilo warstw ukrytych umoliwia ustalenie iloci warstw ukrytych w sieci neuronowej. Ilo neuronw tabela umoliwiajca ustalenie liczby neuronw na kadej z warstw ukrytych. Generuj sie tworzy now sie neuronow na podstawie tabeli Ilo neuronw i liczby przedziaw zadanych dla prbek gosowych.

Piotr Boryczko | Aplikacja

26|44

Rysunek 12. Okno z algorytmem wstecznej propagacji

Sekcja Sterowanie: Wspczynnik nauki daje moliwo okrelenie siy z jak odbywa si bdzie nauka algorytmu. Momentum umoliwia spowolnienie tempa nauki, ale chroni (w pewnym stopniu) sie przed przeuczeniem. Liczba iteracji definiuj ile razy w kadym kroku zostanie powtrzona operacja wstecznej propagacji bdw. Ucz rozpoczyna nauk sieci. Po rozpoczciu nauki, przycisk zmiana kolor na niebieski i zostaje opisany etykiet Stop. Nauka zatrzymana zostaje wraz z ponownym wciniciem przycisku.

Sekcja Dopasowanie prbek testowych: Procentowe dopasowanie prbek testowych tabela zawierajca procentowe rozpoznanie cyfr zawartych w prbkach testowych. Wiersze reprezentuj rzeczywiste wartoci cyfr, kolumny warto wykryt przez sie.

Piotr Boryczko | Aplikacja

27|44

Poprawno wywietla wspczynnik poprawnoci sieci na podstawie rozpoznania prbek testowych. Zmiana bdu podczas nauki wykres zmiany bdu sieci podczas nauki. Bd to bd redniokwadratowy obliczany podczas nauki.

Piotr Boryczko | Aplikacja

28|44

8 Wyniki dowiadczeRezultatem dziaania aplikacji byy wyniki dowiadcze dla prostego algorytmu wstecznej propagacji oraz dla algorytmu N.E.A.T. W biecym rozdziale przedstawione zostan wyniki tych bada dla obu metod. Dokonana zostanie analiza i ocena rezultat dziaania algorytmu wykorzystujcego neuroewolucj topologii sieci neuronowych.

8.1

Przedmiot badaBadaniu podlegay sieci, majce poprawnie interpretowa nagrane prbki cyfr w

jzyku polskim. Przeprowadzone zostan trzy dowiadczenia. W pierwszym badania dotyczy bd rezultatw nauki metod wstecznej propagacji bdw. Trenowane sieci maj poprawnie rozpoznawa jakie cyfry reprezentowane s przez nagrane prbki. Sieci bd posiaday regularn struktur. Dowolny neuron z danej warstwy bdzie czy si z kadym z neuronw z warstw ssiadujcych. Takie samo zadanie jak w dowiadczeniu pierwszym bdzie postawione przed sieciami w kolejnym badaniu. Bd one jednak trenowane za pomoc algorytmu NEAT. Topologia sieci bdzie zmienna, jak wynika to z zaoe metody. Trzecie dowiadczenie rwnie przeprowadzone bdzie przy pomoc algorytmu NEAT. Badane bd sieci, ktre rozpoznawa maj czy prbka zawiera, zadana odgrnie sieci, cyfr.

8.2

Dane dla sieciPrbki s zawarte w 2 plikach test.digits oraz teach.digits (prbki testowe i prbki do

nauki). Pliki wygenerowane s na podstawie zebranych i obrobionych prbek (rozdzia 5). Dane w plikach wygenerowane zostay z pomoc algorytmu przej przez zero z nastpujcymi parametrami : Warto wspczynnika alfa : 0,08 Ilo przedziaw : 20.

Piotr Boryczko | Wyniki dowiadcze

29|44

Zastosowana ilo przedziaw implikuje ilo wej w uywanych sieciach neuronowych. Jest ona rwna 20. Kady neuron warstwy wejciowej otrzyma na wejciu wspczynnik przejcia przez zero w zadanym przedziale. Nagrania cyfr podzielono na zbir prbek uczcych i zbir prbek testowych Zgodnie z przyjtymi normami, baza prbek zostaa podzielona w stosunku 2:1. W zbiorze przeznaczonym do nauki, znalaza si taka sama liczba wszystkich cyfr. Biorc pod uwag zebran liczb prbek, w zbiorze uczcym znalazo si okoo 100 prbek kadej cyfry. Prbki uczce dobrane zostay losowo - jednorazowo dla wszystkich dowiadcze. Ich dobr jest wsplny dla wszystkich dowiadcze i obu metod. Dziki temu na wyniki dowiadcze nie ma wpywu mniej lub bardziej korzystny dobr prbek do zbioru testowego.

8.3

rodowisko przeprowadzanych bada

Dowiadczenia zostay wykonane na komputerze klasy PC o nastpujcej konfiguracji: Intel Xeon 3440 2.53Ghz (4 rdzenie, 8 wtkw) 8 GB RAM DDR3 system Windows 7 .NET 4.0

8.4

Wyniki dla metody wstecznej propagacjiNa potrzeby dowiadcze zbadano kilka struktur. Zostay przyjte 4 przykadowe

topologie. Warto siy uczenia i momentum bya zmieniana w czasie. Na pocztku, momentum ustalane byo na 0, a sia uczenia na 0,25. W miar kolejnych iteracji zwikszano momentum stopniowo do 0,1 . Zmniejszano rwnie si uczenia. Przy ostatnich wykonywanych iteracjach, najczciej sia nauki bya rwna 0,15. Dziaanie algorytmu wstecznej propagacji pokazuje, e zmiana parametrw w tych kierunkach, jest korzystna dla rezultatu. Sie posiada 20 wej. Z uwagi na to e rozpoznajemy 10 cyfr, siec posiada 10 wyj. Uznaje si e sie uznaje prbk za reprezentujc cyfr n, jeeli warto n-tego wyjcia sieci jest wiksza od pozostaych.

Piotr Boryczko | Wyniki dowiadcze

30|44

8.4.1

Brak warstw ukrytychNa pocztku rozpatrzono najprostszy model sieci. Liczb iteracji w kroku ustalono na

1000 Parametry algorytmu zmieniane byy tak jak opisane to zostao w poprzednim akapicie. Algorytm dziaa do momentu w ktrym, bd redniokwadratowy ustabilizowa si na staym poziomie. Dusze dziaanie algorytmu zaczo powodowa nauk sieci na pami i nie przynosio korzystnych rezultatw. Rozpoznanie prbek testowych ksztatowao si na poziomie 63% . Bd redniokwadratowy wynosi w zaokrgleniu 0,27. Tabela 1 zawiera wyniki bada. Odpowied sieci zostaje uznana za poprawn, gdy sie uznaje prbk odpowiadajc cyfrze, ktr ta rzeczywicie reprezentuje. Cyfra Procent poprawnych 0 36% 1 72% 2 48% 3 81% 4 65% 5 69% 6 81% 7 33% 8 84% 9 61%Tabela 1. Wyniki dla sieci bez warstw ukrytych

8.4.2

Dua ilo neuronw w warstwach ukrytychDla porwnania przetestowano dziaanie sieci dla duej iloci warstw ukrytych.

Stworzono 5 warstw ukrytych. W pierwszej i drugiej umieszczono po 10 neuronw, trzecia skadaa si z 5 neuronw. Wygenerowao to dosy du i skomplikowana sie. Spowodowao to stworzeni duej iloci moliwych kombinacji wag. Rezultaty eksperymentu zawarte s w tabeli 2. Zwikszy si okoo dwukrotnie czas w jakim sie uzyskaa swoje najlepsze wyniki. Poprawno wyniosa 68%. Bd redniokwadratowy dla prbek uczcych ustabilizowa si na poziomie okoo 0,23

Piotr Boryczko | Wyniki dowiadcze

31|44

Cyfra Procent poprawnych 0 58% 1 58% 2 41% 3 75% 4 67% 5 76% 6 78% 7 66% 8 80% 9 78%Tabela 2. Wyniki dla sieci z du liczb neuronw w warstwie ukrytej

8.4.3

rednia ilo neuronw w warstwach ukrytychW kolejnym dowiadczeniu sprawdzono, jak uczenie metod wstecznej propagacji

przebiega dla sieci o bardziej umiarkowanej iloci neuronw w warstwie ukrytej w stosunku do dowiadczenia z 25 neuronami warstwy ukrytej. Dla obrania optymalnej liczby neuronw w warstwie uyto wzoru . Biorc pod uwag e liczb

neuronw na wyjciu i wejciu sieci, zaproponowano stworzenie dwch warstw ukrytych z ktrych kada posiada bdzie po siedem neuronw. Tabela 3 zawiera wyniki rozpoznawania mowy dla nauczonej sieci.

Cyfra Procent poprawnych 0 50% 1 64% 2 64% 3 70% 4 65% 5 66% 6 82% 7 66% 8 83% 9 67%Tabela 3. Wyniki dla wyrodkowanej iloci neuronw w warstwach ukrytych

Piotr Boryczko | Wyniki dowiadcze

32|44

Czas nauki zwikszy si w porwnaniu do sieci bez warstw ukrytych ale by znaczco mniejszy od czasu w jakim uczya si sie o 50 neuronach w warstwach ukrytych. Bd redniokwadratowy prbek uczcych ustabilizowa si na poziomie 0,23. Poprawno wzrosa o 2% i wyniosa 65% poprawnych detekcji dla zbioru testowego.

8.4.4

Eksperymentalny dobr iloci neuronwW kolejnych dowiadczeniach eksperymentalnie zmieniano liczb neuronw w

warstwach ukrytych i liczb tych warstw. Najlepsz wygenerowan sieci bya sie z dwoma warstwami. W pierwszej znalazo si 10 neuronw, a w drugiej 8. Poprawno sieci wyniosa 70% . Kolejne prby z innymi topologiami sieci nie przyniosy lepszych rezultatw. Rozpoznawalno cyfr dla takiej sieci zaprezentowana jest w tabeli 4. Cyfra Procent poprawnych 0 59% 1 67% 2 62% 3 68% 4 60% 5 76% 6 78% 7 71% 8 81% 9 77%Tabela 4. Rozpoznanie dla empirycznie dobranej iloci neuronw warstw ukrytych

8.4.5

WnioskiOtrzymano dosy przecitne rezultaty. Prawdopodobnie przy innym, lepszym zbiorze

prbek uczcych i bardziej dokadnej metodzie badania przebiegu fali na prbkach dwikowych, mona by osign jeszcze lepsze rezultaty. Niedogodnoci jest konieczno dopasowywania topologii sieci uczonej

samodzielnie. Zbyt proste topologie charakteryzuj si szybkim czasem nauki, ale ograniczonymi moliwociami wykrywania cyfr. Z kolei zbyt due sieci mog uczy si duej a nie osiga wystarczajco dobrych rezultatw. Konieczne jest znalezienie optimum. Wzory s pomocne tylko w okreleniu pewnego pocztkowego punktu z ktrego mona rozpocz poszukiwania optymalnej topologii.Piotr Boryczko | Wyniki dowiadcze 33|44

Po przeprowadzonych dowiadczeniach wida te, e najtrudniejsza do rozpoznania jest cyfra 0. Wartoci jej rozpoznania nie przekraczay 50 %. Najlepiej rozpoznawana bya semka. Jej rozpoznawalno oscylowaa wok 80%.

8.5 8.5.1

Wyniki dla algorytmu NEAT Sie rozpoznajca jak cyfra jest reprezentowana przez probkPocztkowa populacja skadaa si z neuronw o 20 wejciach i 10 wyjciach. Nie

posiaday one warstw ukrytych. Dodatkowo w sieci umieszczany by neuron odpowiedzialny za bias. Ustalono nastpujce parametry algorytmu: Kada populacja algorytmu skada si ze 150 chromosomw Sieci tworzone przez algorytm mog posiada maksymalnie 100 neuronw Wspczynnik przetrwania: 30% Prawdopodobiestwo dodania wza : 5% Prawdopodobiestwo dodania zwykego poczenia : 5% Prawdopodobiestwo poczenia zwrotnego: 1% Prawdopodobiestwo mutacji wagi: 10% Prawdopodobiestwo krzyowania: 50% Wahania wag: 20% pocztkowej wartoci Maksymalna liczba gatunkw: 20

Z tak dobranymi parametrami rozpoczto dziaanie algorytmu NEAT. Po 200 pokoleniach istniao 5 gatunkw genotypw. Uzyskano skuteczno rozpoznania prbek testowych na poziomie 36%. Wyniki zawarte s w tabeli 5.

Piotr Boryczko | Wyniki dowiadcze

34|44

Cyfra Procent poprawnych 0 0% 1 95% 2 0% 3 82% 4 27% 5 54% 6 45% 7 70% 8 0% 9 10%Tabela 5. Ilo poprawnie rozpoznanych prbek gosowych przy pomocy najlepszej sieci otrzymanej po 200 generacjach

Sie miaa do prost budow. Skadaa si z 4 warstw, w tym dwch ukrytych. Warstwa ukryta posiadaa 22 neurony w warstwie ukrytej. Topologia najlepszej sieci po 200 pokoleniach przedstawiona jest na rysunku 15. Na zielono zaznaczone s poczenia z neuronu biasu. Szarym kolorem zaznaczone s poczenia o wadze dodatniej, a na to - ujemnej. Ciekawe s poczenia pomidzy neuronami warstwy wyjciowej.

Rysunek 13. Topologia najlepszej sieci po 200 pokoleniach

Po 300 pokoleniach dokonano kolejnego przegldu populacji. Istniao ju 7 gatunkw. Ilo rozpoznanych prbek wzrosa do 42% caego zbioru. Sie nie rozpoznaje cyfr : 0,3 i 4. Widoczna jest jednak poprawa w rozpoznawaniu cyfr: 2,6,8 i 9.Piotr Boryczko | Wyniki dowiadcze 35|44

Cyfra Procent poprawnych 0 0% 1 30% 2 52% 3 0% 4 0% 5 46% 6 70% 7 56% 8 84% 9 86%Tabela 6. Rozpoznanie cyfr po 300 generacjach algorytmu NEAT

Sie nieco zmienia budow. Posiada teraz trzy warstwy. Najbardziej wewntrzna posiada wci najwicej neuronw. Warstwa najnisza ma 1 neuron a poprzedzajca wyjcia z sieci dwa. Struktura zaprezentowana jest na rysunku 14.

Rysunek 14. Topologia najlepszej sieci po 300 pokoleniach

Kolejn obserwacj wykonano po 500 generacjach algorytmu. Zwikszya si liczba gatunkw byo ich 8. Wspczynnik rozpoznawania cyfr wzrs do 44% zbioru testowego. Wyniki znajduj si w tabeli 7.

Piotr Boryczko | Wyniki dowiadcze

36|44

Cyfra Procent poprawnych 0% 0 0% 1 58% 2 64% 3 4% 4 60% 5 70% 6 74% 7 82% 8 30% 9Tabela 7. Rozpoznanie cyfr po 500 generacjach algorytmu NEAT

Cyfry 0 i 1 nie s w adnym stopniu wykrywane. Bardzo sabo (4%) rozpoznawana jest te liczba 4. Oglna wykrywalno wrosa do poziomu 44%. Zmienia si struktura sieci. Dodana zostaa kolejna warstw ukryta w porwnaniu do poprzedniego badania. Jest w niej tylko 1 neuron. Znacznie wzrosa liczba pocze. W sieci pojawiy si poczenia zwrotne. Na niebiesko zaznaczone s poczenia zwrotne o wadze ujemnej a na czerwono dodatniej. Topologi sieci po 500 pokoleniach przedstawia rysunek 15.

Rysunek 15. Topologia najlepszej sieci po 500 pokoleniach

Kolejne pokolenia nie zwikszay poziomu dopasowania.

Piotr Boryczko | Wyniki dowiadcze

37|44

8.5.2

Sie odrniajca zadan cyfr od pozostaychAby zbada jak dziaa algorytm NEAT dla mniejszych sieci, przeprowadzono kolejne

dowiadczenie. Zbadano trenowanie sieci, majcych rozpozna, czy prbka reprezentuje okrelon dla sieci cyfr. Stworzono 10 populacji sieci neuronowych. Kada z populacji niezalenie od pozostaych miaa rozrnia czy prbka reprezentuje zadan cyfr czy te nie. Kada populacja rozrniaa inna cyfr. Pocztkowe populacje skaday si z neuronw o 20 wejciach i 2 wyjciach. Nie posiaday one warstw ukrytych. Tak jak w poprzednim dowiadczaniu w sieci umieszczany by neuron odpowiedzialny za bias. Ustalono nastpujce parametry algorytmu: Kada populacja algorytmu skada si ze 100 chromosomw Sieci tworzone przez algorytm mog posiada maksymalnie 60 neuronw Wspczynnik przetrwania: 30% Prawdopodobiestwo dodania wza : 5% Prawdopodobiestwo dodania zwykego poczenia : 5% Prawdopodobiestwo poczenia zwrotnego: 1% Prawdopodobiestwo mutacji wagi: 10% Prawdopodobiestwo krzyowania: 50% Wahania wag: 20% pocztkowej wartoci Maksymalna liczba gatunkw: 10

Zbadano rezultat dziaania algorytmu, po 500 pokoleniach. Wikszo sieci osigaa wysokie wspczynniki dopasowania. Wyniki zaprezentowane s na rysunku. W kolumnach przedstawiane s wyniki dla kolejnych sieci. Wiersze reprezentuj cyfry zapisane na prbkach.

Piotr Boryczko | Wyniki dowiadcze

38|44

Rysunek 16. Wyniki najlepszych sieci po 500 pokoleniach

Jak wida wikszo sieci z wysokim prawdopodobiestwem uznaj prbk z okrelon dla siebie cyfr za swoj. Myl jednak niektre cyfry. Szczeglnie ze wyniki generuje sie dla cyfry 0. Prawie wszystkie prbki uznaje za reprezentujce zero. Sieci odpowiedzialne za cyfry posiadaj przecitne wyniki. Najlepiej dziaa sie wyszukujca cyfry 8. Dosy dobrze dziaa te sie odpowiedzialna za cyfry 3. Myli jednak je czsto z cyfr 7. Na rysunkach 17, 18 i 19 przedstawiono trzy topologie powstae po 500 pokoleniach. Reprezentuj one kolejno najlepsze sieci do wykrywania cyfr 0, 3 i 8. Sieci znacznie rni si od siebie. Najsabiej wykonujca swoje zadanie sie do rozpoznawania zer stworzya najbardziej nietypow sie z zbdnymi neuronami umieszczonymi w okolicach warstwy wyjciowej. Sieci o najlepszym wspczynniku dopasowania posiadaj bardziej ustrukturyzowane topologie.

Rysunek 17. Budowa sieci do rozpoznawania cyfry 0

Piotr Boryczko | Wyniki dowiadcze

39|44

Rysunek 18. Struktura sieci do rozpoznawania cyfry "3"

Rysunek 19. Topologia sieci do rozpoznawania cyfry "9"

8.6

Analiza wynikwAlgorytm neuroewolucyjny stworzy sieci rozpoznajce cyfr na podstawie prbki o

niszej skutecznoci od, sieci trenowanych przez algorytm wstecznej propagacji. Wyniki osigane przez analogiczne sieci rni si o 24%. Jednym z moliwych powodw takiej rnicy jest niedokadna funkcja dopasowania. W trakcie implementacji testowane byy rwnie inne sposoby oceniania dopasowania od uytego. adna jednak nie daa lepszych wynikw rozpoznawania. Niektre metody takie jakPiotr Boryczko | Wyniki dowiadcze 40|44

bd redniokwadratowy, sprawiay, e sieci tworzone przy pomocy algorytmu rozpoznaway poprawnie najczciej 1/10 prbek testowych. Zastosowanie lepszej funkcji dopasowania mogoby poprawi wyniki. Kolejn moliw przyczyn jest zbyt may zbir prbek uczcych. Algorytm neuroewolucyjny moe potrzebowa wikszej liczby danych dla sensorw, aby byo moliwe stworzenie odpowiedniego optimum dla sieci do rozpoznawania prbek gosowych. Podczas drugiego dowiadczenia z pojedynczymi sieciami, dziaanie algorytmu dawao duo lepsze rezultaty. Sieci tworzone w kolejnych iteracjach osigaj coraz lepsze wartoci funkcji dopasowania i bliskie s czasem osigniecia maksimum. We wszystkich dowiadczeniach wida problemy z rozpoznawaniem prbek z 0. Algorytm uczcy metod backproapgation osiga najsabsze wyniki wanie dla 0. Rwnie wyniki dowiadcze z algorytmem neuroewolucyjnym wskazuj na problemy wanie z t cyfr. Przyczyn mog by najsabsze prbki, lub charakterystyka przebiegu fali dwikowej dla tej cyfry. Podczas badania budowy najlepszych neuronw w populacjach algorytmu NEAT, wida pewne zalenoci. Wzrost efektywnoci rozpoznawania mowy wie si z dodawaniem nowych pocze i wzw. Sieci ewoluuj w coraz bardziej skomplikowane struktury. Mimo moliwoci powstania sieci o poczeniach zwrotnych, nie pojawiaj si one podczas kolejnych pokole. Istnieje wiele gatunkw, jednak mimo moliwoci usuwania niedopasowanych gatunkw, ich liczba ronie wraz z kolejnymi generacjami. Najlepiej dopasowane neurony, w cigu kilkudziesiciu populacji, nale do grupy kilku gatunkw. Nie rni si te zbytnio od siebie.

Piotr Boryczko | Wyniki dowiadcze

41|44

PodsumowanieCelem pracy byo stworzenie oprogramowania umoliwiajcego przeprowadzenie dowiadcze z neuroewolucj sieci neuronowych. Program opierajc si o zgromadzone prbki cyfr mwionych w jzyku polskim, generowa sieci neuronowe o jak najoptymalniejszym dziaaniu. Dodatkowo, konieczne byo przygotowanie zbioru prbek do dowiadcze. W rezultacie przedstawiono i przeanalizowano wyniki przeprowadzonych dowiadcze. W pracy zostay zaprezentowane mechanizmy przydatne w rozpoznawaniu mowy. Przedstawiono dziaanie prostego algorytmu wstecznej propagacji oraz bardziej zaawansowane mechanizmy algorytmw genetycznych. Omwiono dziaanie algorytmu neuroewolucyjnego N.E.A.T. Za ich pomoc trenowano sieci neuronowe, tak aby osigay jak najlepsze wyniki w rozpoznawaniu elementw ludzkiej mowy a w przypadku tej pracy inynierskiej polskich cyfr. Zaproponowano dostosowanie algorytmu zliczania przej przez zero, tak aby jak najlepiej reprezentowa badane prbki mowy. W ramach przyszego rozwoju programu, moliwe jest zastosowanie bardziej zaawansowanych technik takich jak wykorzystujce szybkie transformaty Furiera. Istotne jest te poszukiwanie innych lepszych metod oceny sieci. Zaprezentowano i przeanalizowano wyniki dowiadcze przeprowadzonych zarwno prost metod wstecznej propagacji oraz z wykorzystaniem algorytmu N.E.A.T.. Jego wyniki bardzo znaczco odstaway od rezultatw, prostszej metody. Przedstawiono kilka moliwych wyjanie tego faktu. Przeprowadzono te dowiadczenia na prostszych sieciach majcych rozrnia zadan cyfr od pozostaych. Wyniki byy zachcajce. Neuroewolucja w kontekcie zmiennych topologii sztucznych sieci neuronowych jest zoonym ale i interesujcym zagadnieniem. Jest godna zainteresowania w kontekcie problemw w ktrych nie jest znana optymalna topologia sieci. Warto w dalszym cigu prowadzi nad ni badania i szuka miejsc, gdzie moe znale zastosowania.

Piotr Boryczko | Podsumowanie

42|44

Spis tabel i rysunkwSpis tabelTabela 1. Wyniki dla sieci bez warstw ukrytych ................................................................ 31 Tabela 2. Wyniki dla sieci z du liczb neuronw w warstwie ukrytej ............................. 32 Tabela 3. Wyniki dla wyrodkowanej iloci neuronw w warstwach ukrytych ................... 32 Tabela 4. Rozpoznanie dla empirycznie dobranej iloci neuronw warstw ukrytych ........ 33 Tabela 5. Ilo poprawnie rozpoznanych prbek gosowych przy pomocy najlepszej sieci otrzymanej po 200 generacjach ............................................................................... 35 Tabela 6. Rozpoznanie cyfr po 300 generacjach algorytmu NEAT................................... 36 Tabela 7. Rozpoznanie cyfr po 500 generacjach algorytmu NEAT................................... 37

Spis rysunkwRysunek 1.Sie neuronowa ............................................................................................... 7 Rysunek 2. Przykadowa populacja pocztkowa .............................................................. 10 Rysunek 3. Przykadowy genotyp [Stanley 1] ................................................................... 11 Rysunek 4. Fenotyp odpowiadajcy genomowi z rys. 6 [Stanley 1].................................. 11 Rysunek 5. Mutacje struktury [Stanley 1] ......................................................................... 12 Rysunek 6. Krzyowanie sieci o rnych topologiach [Stanley 1] ..................................... 14 Rysunek 7. Badanie przej przez zero ........................................................................... 17 Rysunek 8. Najwaniejsze klasy implementacji algorytmu NEAT ..................................... 21 Rysunek 9. Oglny diagram klas aplikacji ........................................................................ 23 Rysunek 10. Wybr eksperymentu i algorytmu ................................................................ 24 Rysunek 11. Okno z algorytmem NEAT ........................................................................... 26 Rysunek 12. Okno z algorytmem wstecznej propagacji ................................................... 27 Rysunek 13. Topologia najlepszej sieci po 200 pokoleniach ............................................ 35 Rysunek 14. Topologia najlepszej sieci po 300 pokoleniach ............................................ 36 Rysunek 15. Topologia najlepszej sieci po 500 pokoleniach ............................................ 37 Rysunek 16. Wyniki najlepszych sieci po 500 pokoleniach .............................................. 39 Rysunek 17. Budowa sieci do rozpoznawania cyfry 0 ...................................................... 39 Rysunek 18. Struktura sieci do rozpoznawania cyfry "3" .................................................. 40 Rysunek 19. Topologia sieci do rozpoznawania cyfry "9" ................................................. 40

Piotr Boryczko | Spis tabel i rysunkw

43|44

Bibliografia[Goldberg 2003] Dawid E. Goldberg: Algorytmy genetyczne i ich zastosowania

[Tadeusiewicz 2007] R. Tadeusiewicz, T Gciarz: Odkrywanie waciwoci sieci neuronowych

[Stanley 1]

Kenneth O. Stanley and Risto Miikkulainen: Evolving Neural Networks Through Augmenting Topologies

[Stanley 2]

Kenneth O. Stanley and Risto Miikkulainen: Efficient Reinforcement Learning Through Evolving Neural Network Topologies

[Stanley 3]

Kenneth O.Stanley, RISTO Miikkulainen.: Real-Time Neuroevolution in the NERO Video Game

[WWW1] [WWW2] [WWW3]

http://www.koder.yoyo.pl/ http://en.wikipedia.org/ http://nn.cs.utexas.edu/

Piotr Boryczko | Bibliografia

44|44