ALGORYTMY GENETYCZNE JAKO NARZĘDZIE OPTYMALIZACYJNE STOSOWANE W SIECIACH NEURONOWYCH

Podobne dokumenty
Algorytmy genetyczne

Algorytm genetyczny (genetic algorithm)-

Optymalizacja optymalizacji

Aproksymacja funkcji a regresja symboliczna

Dobór parametrów algorytmu ewolucyjnego

PROGNOZOWANIE OSIADAŃ POWIERZCHNI TERENU PRZY UŻYCIU SIECI NEURONOWYCH**

w analizie wyników badań eksperymentalnych, w problemach modelowania zjawisk fizycznych, w analizie obserwacji statystycznych.

Algorytm Genetyczny. zastosowanie do procesów rozmieszczenia stacji raportujących w sieciach komórkowych

WYZNACZANIE WARTOŚCI PODSTAWOWYCH PARAMETRÓW TECHNICZNYCH NOWOCZESNYCH KOMBAJNÓW ZBOŻOWYCH PRZY UŻYCIU SSN

Algorytmy genetyczne. Materiały do laboratorium PSI. Studia niestacjonarne

Algorytmy ewolucyjne NAZEWNICTWO

Algorytmy genetyczne

Systemy uczące się Lab 4

Sztuczna Inteligencja Tematy projektów Sieci Neuronowe

Algorytmy genetyczne. Materiały do laboratorium PSI. Studia stacjonarne i niestacjonarne

FOLIA POMERANAE UNIVERSITATIS TECHNOLOGIAE STETINENSIS Folia Pomer. Univ. Technol. Stetin. 2009, Oeconomica 275 (57), 53 58

Sieci neuronowe w Statistica

6. Klasyczny algorytm genetyczny. 1

Sztuczne Sieci Neuronowe. Wiktor Tracz Katedra Urządzania Lasu, Geomatyki i Ekonomiki Leśnictwa, Wydział Leśny SGGW

Algorytmy stochastyczne, wykład 01 Podstawowy algorytm genetyczny

Metody i techniki sztucznej inteligencji / Leszek Rutkowski. wyd. 2, 3 dodr. Warszawa, Spis treści

WYKORZYSTANIE SIECI NEURONOWEJ DO BADANIA WPŁYWU WYDOBYCIA NA SEJSMICZNOŚĆ W KOPALNIACH WĘGLA KAMIENNEGO. Stanisław Kowalik (Poland, Gliwice)

Wykorzystanie metod ewolucyjnych w projektowaniu algorytmów kwantowych

SCHEMAT ROZWIĄZANIA ZADANIA OPTYMALIZACJI PRZY POMOCY ALGORYTMU GENETYCZNEGO

PROGNOZOWANIE CENY OGÓRKA SZKLARNIOWEGO ZA POMOCĄ SIECI NEURONOWYCH

Zadanie 5 - Algorytmy genetyczne (optymalizacja)

IMPLEMENTACJA SIECI NEURONOWYCH MLP Z WALIDACJĄ KRZYŻOWĄ

WYKORZYSTANIE SZTUCZNYCH SIECI NEURONOWYCH W PROGNOZOWANIU

PRZETWARZANIE GRAFICZNYCH DANYCH EMPIRYCZNYCH DLA POTRZEB EDUKACJI SZTUCZNYCH SIECI NEURONOWYCH, MODELUJĄCYCH WYBRANE ZAGADNIENIA INŻYNIERII ROLNICZEJ

ALGORYTMY GENETYCZNE ćwiczenia

Algorytm wstecznej propagacji błędów dla sieci RBF Michał Bereta

Odkrywanie algorytmów kwantowych za pomocą programowania genetycznego

Algorytmy genetyczne. Dariusz Banasiak. Katedra Informatyki Technicznej Wydział Elektroniki

Uczenie sieci neuronowych i bayesowskich

Sieci neuronowe w Statistica. Agnieszka Nowak - Brzezioska

Inteligentne systemy informacyjne

Przykład optymalizacji struktury sztucznej sieci neuronowej metodą algorytmów genetycznych

Zastosowania sieci neuronowych

LABORATORIUM 3: Wpływ operatorów krzyżowania na skuteczność poszukiwań AE

1. Historia 2. Podstawy neurobiologii 3. Definicje i inne kłamstwa 4. Sztuczny neuron i zasady działania SSN. Agenda

Temat: Sztuczne Sieci Neuronowe. Instrukcja do ćwiczeń przedmiotu INŻYNIERIA WIEDZY I SYSTEMY EKSPERTOWE

Algorytmy ewolucyjne - algorytmy genetyczne. I. Karcz-Dulęba

Wstęp do Sztucznej Inteligencji

Wstęp do teorii sztucznej inteligencji Wykład III. Modele sieci neuronowych.

Tomasz Pawlak. Zastosowania Metod Inteligencji Obliczeniowej

Zagadnienia optymalizacji i aproksymacji. Sieci neuronowe.

Streszczenie. Słowa kluczowe: modele neuronowe, parametry ciągników rolniczych

Wstęp do sieci neuronowych, wykład 6 Wsteczna propagacja błędu - cz. 3

Algorytmy ewolucyjne 1

ZASTOSOWANIE SZTUCZNYCH SIECI NEURONOWYCH DO OCENY ZDOLNOŚCI KREDYTOWYCH ROLNIKÓW KLIENTÓW FIRMY LEASINGOWEJ

Wstęp do sieci neuronowych, wykład 02 Perceptrony c.d. Maszyna liniowa.

OPTYMALIZACJA NASTAW UKŁADU NAPĘDOWEGO STATKU ZE ŚRUBĄ NASTAWNĄ

Algorytmy genetyczne

SZTUCZNA INTELIGENCJA

Podstawy Sztucznej Inteligencji (PSZT)

Zastosowanie optymalizacji rojem cząstek (PSO) w procesie uczenia wielowarstwowej sieci neuronowej w problemie lokalizacyjnym

Problemy z ograniczeniami

Zadania laboratoryjne i projektowe - wersja β

Zastosowanie sieci neuronowych w problemie klasyfikacji wielokategorialnej. Adam Żychowski

ZASTOSOWANIE AUTORSKIEJ METODY WYZNACZANIA WARTOŚCI PARAMETRÓW NOWOCZESNYCH SYSTEMÓW TECHNICZNYCH DO PŁUGÓW I OPRYSKIWACZY POLOWYCH

Algorytmy sztucznej inteligencji

Metody przeszukiwania

MODELOWANIE PROCESÓW PRZETWÓRCZYCH Z UŻYCIEM SZTUCZNYCH SIECI NEURONOWYCH

LABORATORIUM 4: Algorytmy ewolucyjne cz. 2 wpływ operatorów krzyżowania i mutacji na skuteczność poszukiwań AE

ALGORYTMY SZTUCZNEJ INTELIGENCJI

Algorytmy ewolucyjne. wprowadzenie

Zastosowania sieci neuronowych

Temat: ANFIS + TS w zadaniach. Instrukcja do ćwiczeń przedmiotu INŻYNIERIA WIEDZY I SYSTEMY EKSPERTOWE

Równoważność algorytmów optymalizacji

Standardowy algorytm genetyczny

Algorytmy genetyczne w optymalizacji

Algorytmy stochastyczne, wykład 02 Algorytmy genetyczne

Automatyczny dobór parametrów algorytmu genetycznego

Wstęp do sieci neuronowych, wykład 02 Perceptrony c.d. Maszyna liniowa.

Budowa sztucznych sieci neuronowych do prognozowania. Przykład jednostek uczestnictwa otwartego funduszu inwestycyjnego

PRÓBA ZASTOSOWANIA SIECI NEURONOWYCH DO PROGNOZOWANIA OSIADAŃ POWIERZCHNI TERENU POWSTAŁYCH NA SKUTEK EKSPLOATACJI GÓRNICZEJ**

Metody Sztucznej Inteligencji II

Najprostsze modele sieci z rekurencją. sieci Hopfielda; sieci uczone regułą Hebba; sieć Hamminga;

Sztuczne sieci neuronowe. Uczenie, zastosowania

SIECI RBF (RADIAL BASIS FUNCTIONS)

ZACHODNIOPOMORSKI UNIWERSYTET TECHNOLOGICZNY W SZCZECINIE

Obrona rozprawy doktorskiej Neuro-genetyczny system komputerowy do prognozowania zmiany indeksu giełdowego

ALGORYTMY GENETYCZNE (wykład + ćwiczenia)

Sztuczne sieci neuronowe. Krzysztof A. Cyran POLITECHNIKA ŚLĄSKA Instytut Informatyki, p. 311

Widzenie komputerowe

KARTA MODUŁU KSZTAŁCENIA

Uczenie sieci typu MLP

Gospodarcze zastosowania algorytmów genetycznych

8. Neuron z ciągłą funkcją aktywacji.

Zastosowanie optymalizacji rojem cząstek (PSO) w procesie uczenia wielowarstwowej sieci neuronowej w problemie lokalizacyjnym, kontynuacja badań

Rozdział 1 Sztuczne sieci neuronowe. Materiały do zajęć dydaktycznych - na podstawie dokumentacji programu Matlab opracował Dariusz Grzesiak

Strategie ewolucyjne. Gnypowicz Damian Staniszczak Łukasz Woźniak Marek

S O M SELF-ORGANIZING MAPS. Przemysław Szczepańczyk Łukasz Myszor

Modelowanie jako sposób opisu rzeczywistości. Katedra Mikroelektroniki i Technik Informatycznych Politechnika Łódzka

METODY OPTYMALIZACYJNE W PROBLEMACH REGRESYJNYCH

OCENA EFEKTYWNOŚCI NEURONOWEGO PROGNOZOWANIA W OPARCIU O WYBRANE METODY NA PRZYKŁADZIE DYSTRYBUCJI PRODUKTÓW ROLNICZYCH

FOLIA POMERANAE UNIVERSITATIS TECHNOLOGIAE STETINENSIS Folia Pomer. Univ. Technol. Stetin. 2011, Oeconomica 285 (62), 45 50

Algorytm poprawny jednoznaczny szczegółowy uniwersalny skończoność efektywność (sprawność) zmiennych liniowy warunkowy iteracyjny

InŜynieria Rolnicza 14/2005. Streszczenie

METODY STATYSTYCZNE W BIOLOGII

Transkrypt:

Inżynieria Rolnicza 2/2005 Instytut Inżynierii Rolniczej Akademia Rolnicza w Poznaniu ALGORYTMY GENETYCZNE JAKO NARZĘDZIE OPTYMALIZACYJNE STOSOWANE W SIECIACH NEURONOWYCH Streszczenie Rewolucyjne wynalazki człowieka bardzo często powstają w wyniku obserwacji przyrody. Korzysta ona z rozwiązań najlepszych i optymalnych, tak więc wartych naśladowania. Niestety czasami jest to bardzo trudne. Przykładem może być mózg ludzki, którego funkcjonowania nadal nie rozumiemy do końca. Obserwując jego budowę stworzono Sztuczne Sieci Neuronowe, które są jego bardzo uproszczonym modelem mającym wykorzystywać jego najważniejsze cechy czyli zdolność uczenia i kojarzenia. Ewolucja naturalna jest swoistym procesem optymalizacyjnym mającym na celu najlepsze przystosowanie osobników do otaczającego świata, a co się z tym wiąże - przetrwania gatunku. Również mechanizmy ewolucyjne zostały wykorzystane przez człowieka. Jedną z metod odwzorowującą te mechanizmy są algorytmy genetyczne pozwalające na optymalne rozwiązanie różnych problemów. W artykule zostało przedstawione połączenie obu idei. Słowa kluczowe: sztuczne sieci neuronowe, algorytmy genetyczne Dobór zmiennych wejściowych sieci neuronowej Przy doborze zmiennych wejściowych dla sieci neuronowej można spotkać się z wieloma trudnościami. Pierwszą z nich jest duża liczba zmiennych, które mogą pełnić funkcję danych wejściowych dla sieci. Sieci stosuje się najczęściej wtedy gdy użytkownik nie jest do końca pewien zależności pomiędzy danymi wejściowymi a otrzymaną na ich podstawie odpowiedzią sieci neuronowej, tak więc trudno jest również określić które z danych wejściowych są bardziej istotne, a które mniej. W celu zabezpieczenia przed przeuczeniem przyjmuje się, że najbardziej korzystna jest mała liczba zmiennych wejściowych, tak więc czasami dobrze jest odrzucić niektóre zmienne zawierające oryginalne dane. 137

Przy rozwiązywaniu problemów nieliniowych, między zmiennymi często zachodzą wzajemne zależności i występuje redundancja. Na przykład dwa parametry mogą mieć osobno niewielką wartość a użyte razem okazują się być bardzo ważne. Jest to więc kolejny problem związany z trudnością określenia wzajemnych zależności pomiędzy zmiennymi. Jedyną metodą, która gwarantuje najlepszy wybór zbioru zmiennych wejściowych jest wypróbowanie wszystkich możliwych zestawów i wszystkich możliwych architektur sieci. Jednak w praktyce, przy dużej ilości zmiennych jest to niemożliwe [Tadeusiewicz 2001]. Alternatywnym podejściem do rozwiązywania tego typu problemów jest zastosowanie algorytmów genetycznych. Wykorzystanie algorytmów genetycznych Jednym z symulatorów sztucznych sieci neuronowych, który umożliwia wykorzystanie algorytmów genetycznych jest Statistica Neural Networks. Działanie algorytmu genetycznego użytego w symulatorze polega na modelowaniu ewolucji osobników występujących pod postacią łańcuchów binarnych. Po uruchomieniu tworzy on w losowy sposób populacje łańcuchów binarnych zwanych maskami (rys. 1). Określają one które zmienne wejściowe powinny zostać użyte, a które nie. Wartość 0 mówi, że dana zmienna nie powinna być użyta natomiast 1 oznacza potrzebę użycia danej zmiennej. Myślnik oznacza, że dana zmienna nie została rozpatrzona (jest to zmienna wyjściowa). Rys. 1. Przykład łańcuchów binarnych (masek) reprezentujących zmienne wejściowe Fig. 1. The example of binary chains (the masks) representing the entrance variables 138

Algorytmy genetyczne... Łańcuchy te są punktem wyjścia do wytworzenia nowej populacji. Poddaje się je procesom mutacji i krzyżowania. W każdym pokoleniu następuje selekcja i wybór najlepszych osobników (łańcuchów binarnych), które wezmą udział w tworzeniu nowych potomków. Na końcu, z ostatniego pokolenia wybierany jest najlepszy łańcuch. Podczas działania algorytmu testowane jest jak dobre rozwiązanie daje konkretny układ wejść czyli jak dobra jest sieć posiadająca te wejścia. Po zakończeniu pracy program wyświetla najlepsze dotąd znalezione maski. Do optymalizacji zmiennych wejściowych wykorzystuje się tutaj standardowy algorytm genetyczny Hollanda z elitaryzmem polegającym na pozostawieniu w niezmienionej postaci najlepszych łańcuchów z każdego pokolenia, natomiast selekcja następuje zgodnie z regułą ruletki. Po uruchomieniu algorytmu genetycznego Statistica Neural Network ukazuje okno, w którym można dostosować jego wszystkie, najważniejsze parametry (rys. 2). Rys. 2. Fig. 2. Okno doboru zmiennych wejściowych za pomocą algorytmu genetycznego The window of selection of entrance variables with the help of the genetic algorithm Można tutaj ustawić wartości: współczynnika wygładzania wpływającego na wielkość sieci, próbkowania umożliwiającego przyspieszenie lub zwolnienie algorytmu, współczynnika mutacji sterującego liczbą bitów, których wartość zamieniana jest na przeciwną. Ważne są również wartości współczynnika krzyżowania, wielkość populacji oraz liczba pokoleń. Do ocenienia danego układu zmiennych wejściowych program tworzy dla każdego z osobników (masek) sieć probabilistyczną (PNN) lub sieć z uogólnioną regresją (GRNN). Istotny wpływ na proces uczenia obu typów sieci ma wartość współczynnika wygładzania [Tadeusiewicz 2001]. Dobór topologii sieci neuronowej Kolejną ważną decyzją, którą należy podjąć przy stosowaniu sieci neuronowych jest wybór jej topologii. Nieodpowiednia budowa sieci nie pozwoli na rozwiązanie 139

zadanego problemu sieć albo nie nauczy się wprowadzonych danych lub nie będzie umiała ich uogólnić. Bardzo trudno jest znaleźć sieć o najmniejszej złożoności, która szybko i dobrze się nauczy. I właśnie do odnalezienia tej optymalnej topologii mogą posłużyć algorytmy genetyczne. Sieć neuronowa może być kodowana genetycznie w sposób bezpośredni lub pośredni. Kodowanie bezpośrednie polega na tym, że każdy neuron w sieci oraz każde połączenie z odpowiadającą mu wagą jest bezpośrednio zakodowane w genotypie. Przy kodowaniu pośrednim koduje się tylko najważniejsze elementy sieci w genotypie a następnie buduje się sieć z tych elementów według wcześniej zdefiniowanych zasad. Kolejną metodą kodowania, różniącą się znacznie od dwóch poprzednich jest wykorzystanie modelu jednostka klaster. W tym podejściu wyróżnia się dwa poziomy kodowania struktury sieci neuronowej: liczba neuronów w poszczególnych warstwach, połączenia pomiędzy neuronami. Neurony oraz ich położenie kodowane są w genotypie natomiast strukturę połączeń koduje się na wyższym poziomie. W modelu tym jako jednostkę rozumiemy pojedynczy neuron. Jego działanie polega na wykorzystaniu sytemu opartego o tzw. rejestr poziomu oraz trójznakowy alfabet: rejestr poziomu określa poziom, na który zostanie utworzony klaster. Na początku jego wartość wynosi 0 co oznacza warstwę wejściową. U tworzy jednostkę > zwiększa rejestr poziomu o 1. Przed inkrementacją tworzy wszystkie jednostki U tym samym tworząc klaster. Następnie łączy nowopowstały klaster z poprzednim (jeśli taki został wcześniej stworzony). < zmniejsza rejestr poziomu o jeden. Jeżeli wartość rejestru jest równa 0 to bieżący klaster będzie przypisany do warstwy wejściowej [Kowal, Wojtkiewicz, 2000]. Translacja przykładowego genotypu (w postaci: UU>UUUU>UU) na sieć neuronową z wykorzystaniem przedstawionego wcześniej alfabetu przebiega następująco (rys. 3): Na początku rejestr poziomu ustawiany jest na 0 i tworzone są dwie jednostki. Kolejny symbol powoduje, że rejestr poziomu zwiększany jest o 1. Przed inkrementacją dwie poprzednio utworzone jednostki definiowane są jako klaster. Ponieważ jest to pierwszy stworzony klaster to wszystkie znajdujące się w nim neurony będą traktowane jako warstwa wejściowa. 140

Algorytmy genetyczne... W następnym kroku rejestr posiada wartość 1, tworzone są również 4 jednostki. Przedostatni symbol powoduje inkrementacje rejestru poziomu o jeden i definiuje cztery poprzednio utworzone jako klaster. W tym przypadku dokonywane jest również połączenie tego klastra z klastrem z niższego poziomu. Ostatnie symbole powodują, że tworzone są dwie kolejne jednostki a rejestr poziomu ustawiany jest na 2. Osiągnięcie końca łańcucha powoduje, że dwie ostatnio utworzone jednostki definiowane są jako klaster, który następnie zostaje połączony z klastrem niższego poziomu. Następnie każdy klaster przypisywany jest do odpowiedniej warstwy sieci neuronowej. Rys. 3. Fig. 3. Przebieg translacji przykładowego genotypu w sieć neuronową The course of translation of the example genotype in neural net Wybór funkcji oceny Przy genetycznym budowaniu sieci neuronowej bardzo ważny jest wybór odpowiedniej funkcji oceny. Możemy ją oprzeć na różnych parametrach: liczbie jednostek w sieci jest pomocna przy znalezieniu sieci o możliwie najmniejszej topologii ponieważ taka najlepiej uogólnia dane wejściowe. Jednak jako oddzielna funkcja oceny jest ona mało przydatna. 141

liczbie połączeń w sieci może być przydatna do wybierania osobników o mniejszej lub większej liczbie połączeń. Jednak wcześniej trzeba znać pożądaną liczbę połączeń. Oddzielnie również mało przydatna. train error w metodzie nauczania ze wsteczną propagacją błędów mierzy możliwość uczenia się przez sieć przedstawionych danych wejściowych. Może być wykorzystywana samodzielnie jako funkcja oceny. test error - służy do oceny możliwości uogólniania sieci neuronowej. Również ta funkcja może być używana jako pojedyncza funkcja oceny. Wybór odpowiedniej funkcji zależy od problemu, którego rozwiązania poszukujemy. Dobrze jest oprzeć funkcje oceny na wielkości parametrów błędu uczenia sieci niż na ocenie samej topologii [Kowal, Wojtkiewicz 2000]. Możliwości zastosowania algorytmów genetycznych w agroinżynierii Dziedzina inżynierii rolniczej jest bogata w wiele zjawisk trudnych do opisania za pomocą tradycyjnych, deterministycznych metod. Pomocne mogą się wówczas okazać sieci neuronowe wraz ze swoimi charakterystycznymi cechami m.in. możliwością generalizacji i uogólniania, predykcji czy klasyfikacji. Nauki rolnicze posiadają wiele obszarów, w których z powodzeniem wykorzystuje się SN. Prognozowanie poziomu zbiorów, klasyfikacja owadów, czy użycie w komputerach pokładowych agregatów rolniczych to tylko niektóre z wielu możliwości zastosowania sieci neuronowych. Jednak aby sieć zadziałała poprawnie a wyniki jej pracy były zgodne z wymaganiami użytkownika należy wstępnie dobrać jej parametry. Cechą charakterystyczną przy pracy z sztucznymi sieciami neuronowymi jest fakt, iż użytkownik nie jest do końca pewien zależności jakie wpływają na otrzymywany wynik. Szczególną trudność może sprawić właśnie dobór zmiennych wejściowych czy topologii sieci neuronowej. Wykorzystanie algorytmów genetycznych jako narzędzia wspomagającego podjęcie decyzji w takich sytuacjach umożliwi na szybsze i dokładniejsze rozwiązanie zadanych problemów. Podsumowanie 1. Algorytmy genetyczne można stosować w sieciach neuronowych do różnych celów. Na przykład do wyboru zmiennych wejściowych, doboru topologii, czy do ustalenia wstępnej wartości wag neuronów. 2. Zaletami modelu jednostka klaster jest niewątpliwie mały alfabet kodowania, który prowadzi bezpośrednio do topologii sieci neuronowej oraz liniowy wzrost genotypu. 142

Algorytmy genetyczne... 3. Połączenie sieci neuronowych i algorytmów genetycznych jest na pewno bardzo wygodnym i wydatnym narzędziem, które umożliwia rozwiązanie wielu problemów. Bibliografia Tadeusiewicz R. 2001. Wprowadzenie do sieci neuronowych. StatSoft Polska, Kraków. Kowal T., Wojtkiewicz M. 2000. Zastosowanie algorytmów genetycznych w sieciach neuronowych. Politechnika Wrocławska GENETIC ALGORITHMS AS A OPTIMIZATION TOOL APPLIED IN NEURAL NETWORKS Summary Revolutionary human inventions very often arise as a result of nature observation. Nature use the best and optimal solutions therefore deserves to copy. Unfortunately, sometimes it s very hard. Human s brain can be example, whose functions we don t fully understand. As a result of observations of the build of human s brain made artificial neural networks. They are its very simplified model, which use its main features: ability to learn and associate. Natural evolution is peculiar optimization process which purpose is the best adaptation of specimen to the surrounding world and it is in connection with survival of the species. Evolutionary mechanics were exploit by the human as well. Genetic algorithms are one of many methods which model evolutionary mechanics. They allow to find optimal solution for different problems. This article presents the combination both ideas. Key words: artificial neural networks, genetic algorithms 143