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