wersja * - Politechnika Częstochowska
Transkrypt
wersja * - Politechnika Częstochowska
POLSKIE TOWARZYSTWO SIECI NEURONOWYCH POLITECHNIKA CZĘSTOCHOWSKA Zakład Elektroniki, Informatyki i Automatyki Maciej Piliński Robert Nowicki - GA Program "FLiNN-GA" wersja 2.10.β Podręcznik użytkownika Częstochowa 1996 Spis treści SPIS TREŚCI....................................................................................................................................................1 WSTĘP ..............................................................................................................................................................2 OPIS ZMIAN ....................................................................................................................................................2 IMPORT FROM FLEXTOOL(EFM) .........................................................................................................................2 ALGORYTMY GENETYCZNE W DOBORZE PARAMETRÓW STRUKTURY ...................................................................3 ALGORYTMY GENETYCZNE W DOBORZE PARAMETRÓW STEROWNIKA .................................................................4 WIZUALIZACJA PRZEBIEGU ALGORYTMÓW GENETYCZNYCH ...............................................................................5 REALIZACJA ALGORYTMÓW GENETYCZNYCH ...............................................................................5 KODOWANIE CHROMOSOMÓW .............................................................................................................................5 Parametry ......................................................................................................................................................5 Reguły ............................................................................................................................................................6 OKREŚLANIE FUNKCJI PRZYSTOSOWANIA ............................................................................................................6 METODY SELEKCJI ...............................................................................................................................................6 Metoda koła ruletki........................................................................................................................................6 Metoda rankingowa .......................................................................................................................................7 Metoda turniejowa.........................................................................................................................................7 Steady-state....................................................................................................................................................7 REALIZACJA OPERATORÓW GENETYCZNYCH .......................................................................................................7 Krzyżowanie...................................................................................................................................................7 Mutacja ..........................................................................................................................................................7 FLiNN-GA - Suplement 1 Wstęp W niniejszej wersji program „FLiNN” został uzupełniony o nowe moduły uwzględniające obecnie prowadzone prace w kierunku komputerowych modeli sztucznej inteligencji. Modułami tymi są: moduł konwersji wyników otrzymywanych z pakietu FlexTool(EFM) wyprodukowanego przez Flexible Intelligence Group oraz moduł algorytmów genetycznych. Zostaną one omówione w następnych punktach. Opis zmian Import from FlexTool(EFM) Menu główne przedstawione poniżej zostało uzupełnione o przycisk umożliwiający uruchomienie modułu konwersji. Konwersji mogą podlegać pliki ftfsinfo.txt generowane przez pakiet FlexTool(EFM). Plik taki zawiera opis sterownika rozmytego z wyszczególnieniem funkcji opisujących wejściowe i wyjściowe zbiory rozmyte oraz reguł. Plik wynikowy może zawierać opis zbiorów rozmytych i reguł w formacie programu FLiNN (*.rul) lub opis struktury realizującej sterownik zbliżony do opisanego w pliku źródłowym(*.str). Jest to rozbudowana wersja uproszczonego sterownika Wanga. Na poniższym rysunku przedstawiony jest przykład takie struktury. W celu uniknięcia stanów nieokreślonych zrealizowane są w niej wszystkie możliwe reguły uzupełnione o 2 FLiNN-GA - Suplement współczynniki prawdziwości kolejnych reguł. Reguły opisane w zbiorze źródłowym mają współczynnik ten równy 1, a pozostałe 0.2. Każda z reguł ma ponadto własny zbiór wyjściowy, co umożliwia bardziej elastyczny proces modyfikacji struktury w trakcie uczenia, będąc pewnym substytutem doboru reguł. O wyniku każdej przeprowadzonej konwersji informuje pasek stanu. Algorytmy genetyczne w doborze parametrów struktury Okienko dialogowe Setup zostało umożliwia rezygnację z mechanizmu propagacji wstecznej w celu modyfikacji bloków PARAM na rzecz algorytmu genetycznego. Dokonujemy tego za pomocą przycisku „Genetic Algorithms”. FLiNN-GA - Suplement 3 Pierwszym parametrem jest ilość bajtów przeznaczonych do przechowywania w chromosomie informacji o wartości jednego bloku typu PARAM. Od wartości tej zależy rozdzielczość dobierania wartości. Rozdzielczość (∆x), przedział zmienności (xmin xmax) i ilość przeznaczonych bajtów (b) związane są zależnością: x −x ∆x = max8*b min 2 −1 Wybranie opcji „FineTune” powoduje, że wartość parametru będzie ulegać zmianie w zakresie ograniczonym do części zakresu zmienności ustalonego w procentach w okolicy wartości aktualnej. Parametr SteadyState ustala jaka część populacji rodzicielskiej ma przejść do nowej populacji zgodnie z mechanizmem Steady State. Zatem w wyniku krzyżowań powstanie n-k nowych chromosomów, gdzie n jest licznością populacji, a k parametrem Steady State. Kolejne parametry to liczność populacji, ilość punktów krzyżowania oraz prawdopodobieństwa krzyżowania i mutacji. Do wyboru mamy trzy metody selekcji: metoda koła ruletki, metoda rankingowa oraz turniejowa o dowolnie ustalanej wielkości turnieju. Podobnie jak w przypadku uczenia metodą wstecznej propagacji możemy wyszczególnić, które warstwy mają podlegać modyfikacji. Ustalone parametry GA dotyczą wówczas wszystkich wyszczególnionych warstw. Algorytmy genetyczne w doborze parametrów sterownika Wybierając z menu głównego opcję „Load Table Lookup Scheme” otrzymujemy oprócz dotychczasowych metod (Wang, Wang+, Lin-Lee) nową: GanAlgor. Po jej wybraniu i potwierdzeniu, na górnej listwie pojawia się nowy przycisk dzięki któremu mamy możliwość ustalenia parametrów działania algorytmów genetycznych. Możemy zdecydować czy dobierane będą tylko reguły (Rules), funkcje przynależności zbiorów rozmytych (Membership function), czy też jedne i drugie. Reguły kodowane są w sposób niezmienny, natomiast dla współczynników określających funkcje przynależności 4 FLiNN-GA - Suplement możemy ustalić ilość bajtów przeznaczonych na parametr oraz ewentualnie wybrać opcję FineTune. Pozostałe parametry są identyczne jak opisane w poprzednim punkcie. Wizualizacja przebiegu algorytmów genetycznych W trakcie działania algorytmów genetycznych, w pliku ga_fitfn.dat zapisywane są wartości minimalne, średnie, i maksymalne błędu (będącego wartością funkcji przynależności) dla każdej kolejnej generacji. Można je obejrzeć (także w trakcie trwania uczenia) za pomocą opcji „Plot 2D Graph” programu FLiNN. Realizacja algorytmów genetycznych Kodowanie chromosomów Parametry Wielkościami podlegającymi działaniom algorytmu genetycznego w strukturze sterownika są wyłącznie wartości bloków PARAM. Dla każdej takiej wielkości zapamiętywany jest w specjalnej strukturze dopuszczalny przedział losowania (xmin, xmax - w obecnej wersji jest on ustalony z góry na <-200; 200>) oraz wartość początkowa. Użytkownik może ustawić ilość bajtów (b) jaka przeznaczona będzie w chromosomie na każdy parametr (domyślnie 2). Wartość ta jest wspólna dla wszystkich parametrów i determinuje ona rozdzielczość dobierania wartości. Wzór określający zależność między tymi parametrami zawarty jest w punkcie „Algorytmy genetyczne w doborze parametrów struktury”. Długość chromosomy jest iloczynem ilości parametrów w strukturze dopuszczonych do modyfikacji i ilości bajtów przeznaczonych na każdy parametr. Na potrzeby przechowywania informacji o wszystkich chromosomach alokowany jest obszar pamięci o wielkości będącym iloczynem długości chromosomu i liczności populacji. Zakodowana wartość parametru zapisana w b bitach traktowana jako liczba całkowita bez znaku (w) zawiera się w przedziale od 0 do 28*b-1. W trakcie rozkodowywania jest ona przeskalowywana na przedział od xmin do xmax zgodnie ze wzorem: x −x x = xmin + ∆x * w = xmin + max8*b min * w 2 −1 Jeżeli opcja „FineTune” jest wyłączona, obliczona w ten sposób wartość staje się nową wartością odpowiedniego bloku PARAM. Jeżeli opcja „FineTune” jest włączona, obliczona FLiNN-GA - Suplement 5 wartość jest mnożona przez współczynnik podawany przy opcji i dodawana do wartości początkowej danego parametru. Parametry zbiorów rozmytych w module „Load Table Lookup Scheme” przy wybraniu algorytmów genetycznych traktowane są identycznie jak wartości bloków PARAM w strukturze, z tą różnicą, że dopuszczalne przedziały losowania są określone na podstawie podanych przez użytkownika przedziałów zmienności wielkości wejściowych i wyjściowych. Reguły W przypadku kodowania reguł zakłada się, że istnieją wszystkie reguły, określone przez wszystkie możliwe kombinacje poprzedników, a więc ilość reguł jest zdeterminowana przez ilość wejściowych zbiorów rozmytych na każdym z wejść. Przy takim założeniu kodowaniu podlegać muszą tylko następniki reguł. Ilość różnych następników jest równa ilości wyjściowych zbiorów rozmytych (Nout). Możliwe następniki są numerowane od 0 do Nout-1, a ponieważ każdej regule poświęcony jest jeden bajt mogący posiadać wartość (w) od 0 do 255 konieczne jest przeskalowanie jego wartości aby otrzymać numer (n) właściwego danej regule następnika, według wzoru: N n = out * w 256 W module „Load Table Lookup Scheme” chromosom składa się zatem z części opisującej parametry zbiorów rozmytych oraz z części opisującej następniki reguł. W szczególnym przypadku jedna z części może być zerowej długości. Określanie funkcji przystosowania W celu określenia funkcji przystosowania danego chromosomu jest on dekodowany. Powstała w ten sposób struktura o nowych parametrach jest testowana przez wszystkie elementy ciągu uczącego. W każdym takim teście określany jest błąd będący różnicą między wartością wyjściową określoną w ciągu uczącym, a faktycznie otrzymaną na wyjściu sterownika. Suma kwadratów tych błędów jest funkcją przystosowania. Operacja ta jest przeprowadzana dla każdego chromosomu w populacji. Metody selekcji Metoda koła ruletki Metoda ruletki jest metodą, którą możemy wykorzystać w procesie poszukiwania maksimum funkcji przystosowania. Opisana powyżej funkcja przystosowania jest sumą kwadratów błędów, a więc poszukujemy jej minimum. Dlatego przed przystąpieniem do właściwego procesu selekcji wykonywana jest konwersja obliczonych wartości funkcji przystosowania na wartość możliwą do wykorzystania w metodzie koła ruletki. Najprostszą metodą byłoby zastąpienie dotychczasowych wartości ich odwrotnościami. W obecnej wersji zastosowano jednak inny algorytm. Wyszukiwany jest najgorszy chromosom o największej wartości funkcji przystosowania (Fmaks), a następnie wartości funkcji przystosowania wszystkich chromosomów są przeliczane według wzoru: Fnowa = 1,2 * Fmaks − Fpoprzednia W ten sposób sprowadzono problem minimalizacji do problemu maksymalizacji dla którego metoda koła ruletki została stworzona. 6 FLiNN-GA - Suplement Algorytm koła ruletki został zrealizowany według klasycznych wzorców. Losowana jest N wartość (k) z przedziału 0 ; ∑ Fi , gdzie N jest liczbą chromosomów w populacji. i =1 Następnie poszukiwane jest takie najmniejsze n dla którego spełniona jest nierówność: n ∑F ≤ k i =1 i Takie n jest numerem pierwszego chromosomu rodzicielskiego. Drugi chromosom rodzicielski wybierany jest w identyczny sposób. Metoda rankingowa Jest to metoda, w której krotność występowania danego chromosomu w puli rodzicielskiej powinna być odwrotnie proporcjonalna do jego wartości funkcji przystosowania. Ponieważ liczba chromosomów jest niewielką liczbą całkowitą, podobnie jak krotność występowania danego chromosomu w puli rodzicielskiej, nie jest możliwe dokładne spełnienie tego założenia. Realizacja tej metody w programie FLiNN-GA jest następujące: Do puli rodzicielskiej wybierane są kolejno najlepsze chromosomy (o najmniejszej wartości funkcji przystosowania) po czym ich wartość funkcji przystosowania zwiększana jest dwukrotnie. Metoda turniejowa W metodzie tej każdy chromosom rodzicielski jest wyłaniany z turnieju rozgrywanego na zasadzie „lepszy zostaje”. Wielkość grupy turniejowej (Nt) jest określana przez użytkownika. Z istniejącej populacji wybierana jest w sposób losowy określona liczba chromosomów. Kolejno porównywane są wartości funkcji przystosowania tych chromosomów. Chromosom o wyższej wartości funkcji przystosowania odpada, ten drugi pozostaje do dalszych porównań, przy czym prawdopodobieństwo zwycięstwa lepszego jest ustalone na 0,9. Po przeprowadzeniu Nt-1 porównań wyłoniony zostaje jeden chromosom wykorzystywany następnie jako rodzic. Steady-state Opcja ta określa jaka liczba chromosomów starej populacji ma trafić bez operacji krzyżowania do nowej populacji. Nawet gdy wartość ta wynosi 0, jeden najlepszy chromosom jest kopiowany do populacji potomnej. Chromosom ten jest również chroniony przed operacją mutacji. Realizacja operatorów genetycznych Krzyżowanie Na podstawie wybranej metody selekcji wybierana jest para rodzicielska. Następnie chromosomy te są krzyżowane w punktach wybranych losowo na długości chromosomu. Punkt krzyżowania może być ustalony w dowolnym punkcie chromosomu, także w środku bajtu. Ilość punktów krzyżowania danej paru rodzicielskiej jest ustalana przez użytkownika (domyślnie 2). Operacja krzyżowania w wylosowanym punkcie jest wykonywana z prawdopodobieństwem określonym przez użytkownika (domyślnie 0,77). Mutacja Mutacja jest wykonywana na każdym bicie chromosomu z prawdopodobieństwem określonym przez użytkownika (domyślnie 0,077). Polega ona na zanegowaniu wartości FLiNN-GA - Suplement 7 mutowanego bitu. Jest ona wykonywana na chromosomach populacji potomnej bezpośrednio po operacji krzyżowania. 8 FLiNN-GA - Suplement