Sztuczne Sieci Neuronowe Wiktor Tracz Katedra Urządzania Lasu, Geomatyki i Ekonomiki Leśnictwa, Wydział Leśny SGGW
SN są częścią dziedziny Sztucznej Inteligencji Sztuczna Inteligencja (SI) zajmuje się zagadnieniami tworzenia i rozwoju właściwości maszyn sztucznych tak, aby właściwości te były podobne do najcenniejszej cechy człowieka inteligencji. Inteligencja to zdolność rozpoznawania obserwowanego wycinka rzeczywistości, jego rozumowania, określania właściwych celów oraz poszukiwania sposobów osiągnięcia tych celów.
Poddziedziny Sztucznej Inteligencji : systemy ekspertowe sieci neuronowe algorytmy genetyczne robotyka przetwarzanie języka naturalnego programy automatyki rozpoznawanie mowy, percepcji, wizja komputerowa rozwiązanie problemów metodami sterowania i przeszukiwania oprogramowanie i języki programowania
Dwa sposoby tworzenia modelu problemu 1. Budowa modelu poprzez opis za pomocą równań matematycznych, jeżeli znane są prawa rządzące zachowaniem zjawiska 2. Identyfikacja modelu, jeżeli prawa rządzące zjawiskiem nie są znane. Wtedy wystarczające są informacje o wejściu i wyjściu
Sztuczna Sieć Neuronowa (SN) jest systemem wzajemnie połączonych prostych elementów przetwarzających informacje, zwanych neuronami. Zasada działania SN polega na symulacji pracy komórek nerwowych mózgu człowieka.
Właściwości SN przetwarzanie równoległe, rozproszone szybkie i efektywne przetwarzanie dużych ilości danych zdolność przetwarzania niekompletnych danych możliwość wytwarzania rezultatów przybliżonych skojarzeniowy dostęp do informacji zawartej w sieci, tzw. pamięć skojarzeniowa informacja rozproszona (zawarta w połączeniach) duża tolerancja na błędy i uszkodzenia możliwość przetwarzania informacji rozmytych, chaotycznych, niekompletnych, a nawet sprzecznych
SN wytwarza się i wykorzystuje się w postaci: programowej oprogramowanie symulujące neurony i ich połączenia na konwencjonalnym komputerze sprzętowej realizacja SN w postaci fizycznie połączonych elementów półprzewodnikowych tworzących
Inspiracją do stworzenia SN była budowa mózgu ludzkiego
Model neuronu sztucznego w 1 x 1 x 2... w 2 w n Σ e ϕ y x n e n = w x i i i= 1 y = ϕ (e)
Funkcje przejścia (aktywacji) neuronu ϕ(e) 1 1 0.5-20 -10 10 20 0.5-0.5-1 tangens hiperboliczny -10-5 5 10 logistyczna
Dwie fazy działania SN faza treningowa (uczenia się) faza reakcji na określony bodziec zewnętrzny (pracy)
Grupy algorytmów uczących nadzorowane (z nauczycielem) bez nadzoru (bez nauczyciela)
x 1 x 2 w i y Architektura perceptronu wielowarstwowego (MLP)
y 0 y 1 y n-1 y n... x 0 x 1 x n-1 x n Architektura sieci Hopfielda
warstwa wejściowa warstwa konkurencyjna x 1... x n Architektura sieci Kohonena
Przetwarzanie realizowane przez SN klasyfikacja, realizowana przez podział zbioru wejściowego na klasy lub kategorie skojarzenia każdego wejścia z kategorią rozpoznawanie, rozumiane jako klasyfikowanie wejścia, mimo że nie odpowiada ono żadnemu z przechowywanych wzorców predykcja, określenie przyszłych zachowań lub stanów systemu na podstawie ciągu wartości z przeszłości estymacja, realizacja następujących zadań: aproksymacja, interpolacja, filtrowanie optymalizacja, w tym rozwiązywanie liniowych i nieliniowych, równań sterowanie, realizowane inteligentnie bez konieczności opracowania modelu, oparte wyłącznie na doświadczeniu
Dobór parametrów SN. Problemy. Architektura wybór architektury liczba warstw liczba neuronów w każdej warstwie postaci funkcji przejścia Uczenie podział zbioru danych wielkość zbioru uczącego wartość współczynników uczenia początkowe wartości wag czas uczenia sieci
Wybór architektury SN Różnorodność architektur SN, liczebność ich modyfikacji, możliwość doboru dowolnej liczby warstw sieci oraz neuronów w każdej warstwie umożliwia zaprojektowanie sieci najbardziej odpowiedniej do rozwiązywanego problemu Jednokierunkowe (MLP) Rekurencyjne sygnał wyj. może być przekazywany na wejście sieci (sieć Hopfielda) Komórkowe tylko neuronów znajdujących się tylko w obrębie sąsiedztwa są połączone między sobą (sieć SOM Kohonena)
Liczba neuronów w warstwach SN Warstwy wejściowa i wyjściowa zawsze występują w architekturze SN Liczba neuronów w tych warstwach jest określona przez model problemu, który sieć rozwiązuje Liczba neuronów w warstwach ukrytych wpływa na leprze lub gorsze zdolności rozwiązywania określonego problemu
Liczba neuronów w warstwach ukrytych Zbytmała liczba neuronów ukrytych powoduje niezdolność sieci do zgromadzenia dostatecznej wiedzy o rozwiązywanym problemie Zaduża liczba neuronów jest z kolei przyczyną zbyt dokładnego zapamiętywania przez sieć danych treningowych, co powoduje kłopoty z uogólnieniem ich na przypadki nie objęte procesem uczenia. Problem ten rozwiązuje się zwykle eksperymentalnie
Postaci funkcji przejścia Obecnie jako funkcji przejścia neuronu najczęściej używa się funkcje logistyczną i tangens hiperboliczny 1 1 0.5 0.5-20 -10 10 20-0.5-10 -5 5 10-1
Podział zbioru danych Zbiór danych dzieli się na dwa podzbiory uczący i testowy Podzbiór uczący wykorzystywany jest do uczenia SN Podzbiór testowy do sprawdzenia dobroci nauczonej sieci Można przyjąć podział zbioru danych w proporcji: U90/T10
Wielkość zbioru uczącego Zbiór danych uczących powinien pokrywać skale rozwiązywanego problemu Liczba przypadków uczących powinna być co najmniej kilka razy większa niż liczba połączeń w SN Liczb połączeń: LP= (LNWe+1)*LNUk +(LNUk+1)*LNWy
Wartość współczynników uczenia Dobór odpowiedniej wartości współczynnika uczenia ma istotne znaczenie dla szybkości i jakości procesu uczenia Zbyt mała wartość tego współczynnika spowalnia proces uczenia sieci Zbyt duża zaś powoduje oscylację wokół optymalnego rozwiązania i uniemożliwia przyjęcie rozwiązania optymalnego co też powoduje spowolnienie uczenia Zwykle należy ona do przedziału od 0,5 do 0,9 i jest jednakowa dla wszystkich neuronów w sieci Wartość współczynnika uczenia dobiera się eksperymentalnie w fazie budowy modelu sieci. Wartość ta jest zmniejszana w miarę postępów uczenia się sieci
Początkowe wartości wag Dobór początkowych wartości wag znacząco wpływa na szybkość działania algorytmu uczenia SN Istotny jest przedział, z którego te wartości są wybierane Zwiększenie szerokości przedziału wpływa na ogół korzystnie na dynamikę uczenia Zwykle wartości początkowe wag nadawane są losowo
Czas uczenia sieci Czas uczenia sieci jest określony stopniem złożoności problemu jaki sieć ta ma rozwiązywać Sygnałem ku zakończeniu procesu uczenia jest moment, gdy sieć nauczy się rozpoznawać cały zbiór uczący i cały lub zdecydowaną większość zbioru testującego
Ocena dobroci nauczonej SN w programie Neuronix Błąd RMS Tolerancja (0, 1) określa dopuszczalny błąd na pojedynczym wyjściu sieci Ilość wzorców poza tolerancją Epoka uczenia
Poprawa dobroci SN W praktyce aby uzyskać dobrą zdolność uogólniania SN należy: 1) ograniczyć liczbę neuronów ukrytych 2) ograniczyć liczbę powiązań międzyneuronowych 3) stosować takie metody wstępnego przetworzenia danych, które umożliwiają zmniejszenie wymiarowości wektora wejściowego sieci
Jak sieć uczy się prognozować uczenie sieci Dane wej. i wyj. są znane WEJŚCIE zmienna wej. 1 zmienna wej. 2 zmienna wej. n SN (czarna skrzynka) WYJŚCIE zmienna wyj.
Jak sieć uczy się prognozować wykorzystanie sieci WEJŚCIE zmienna wej. 1 zmienna wej. 2 zmienna wej. n SN (czarna skrzynka) WYJŚCIE? prognozowana zmienna wyj.
SN stosuje się wtedy, gdy: nie dysponujemy całą wiedzą potrzebną do rozwiązania danego problemu a czas rozwiązania metodami znanymi (np. algorytmicznymi) jest zbyt długi; dane są nie tylko w postaci numerycznej ale też w postaci symbolicznej; informacja jest dostępna raczej w postaci heurystyk niż dobrze zdefiniowanych procedur algorytmicznych; wiedza o przedmiocie nie jest pełna a koszt pozyskania niezbędnych ekspertyz jest duży; wiedza jest niepewna.
Funkcje przejścia (aktywacji) neuronu Liniowa Progowa Logistyczna Hiperboliczna (tangens hiperboliczny) Wykładnicza Sinus Pierwiastek kwadratowy
1. Liniowa Architektury SN 2. Jednokierunkowa wielowarstwowa (MLP) 3. Sieć o radialnych funkcjach bazowych (RBF) 4. Realizująca regresję uogólnioną (GRNN) 5. Kohonena 6. Probabilistyczna
1. Sieci liniowe Składają się z dwóch warstw: liniowej wejściowej i liniowej wyjściowej. Nie posiadają warstw ukrytych Neurony warstwy wyjściowej posiadają liniową funkcję aktywacji Sieci liniowe są dogodnym narzędziem do opisu zależności o charakterze liniowym Do uczenia sieci stosuje się uczenie z nauczycielem
Architektura sieci liniowej - przykład X 1 X 2 y X 3
2. Sieci jednokierunkowe wielowarstwowe Składają się z kilku warstw: wejściowej, wyjściowej i jednej lub kilku warstw ukrytych Każdy neuron warstwy poprzedniej jest połączony z każdym neuronem warstwy następnej Funkcje przejścia poszczególnych warstw: -wejściowa funkcja liniowa - ukryte funkcja nieliniowa -wyjściowa funkcja liniowa lub nieliniowa Do uczenia sieci stosuje się uczenie z nauczycielem
Architektura sieci typu MLP - przykład x 1 x 2 w i y
Wybrane metody uczenia sieci jednokierunkowych Algorytm wstecznej propagacji błędu (ang. BP) Gradienty sprzężone Quasi-Newton Levenberg-Marquardt Szybka propagacja Delta-Bar-Delta inne
3. Sieć o radialnych funkcjach bazowych Składają się z trzech warstw: wejściowej, wyjściowej i jednej warstw ukrytej Funkcje przejścia neuronów w poszczególnych warstwach: -wejściowa funkcja liniowa - ukryta funkcja radialna -wyjściowa funkcja liniowa Warunkiem utworzenia przez sieci RBF skutecznego modelu jest zapewnienie dostatecznej liczby neuronów radialnych Neuron radialny jest zdefiniowany przez swoje centrum oraz parametr określony jako promień lub odchylenie. Centrum jest przechowywane jako wagi zaś promień jako wartość progowa Powierzchnia odpowiedzi pojedynczego neuronu ma charakter funkcji gaussowskiej z wierzchołkiem w centrum
Architektura sieci RBF - przykład t i RBF x 1 x 2 RBF w i y RBF
4. Sieci realizujące regresję uogólnioną Sieci GRNN (ang. General Regression Neural Networks) składają się z 4 warstw: liniowa, radialna, regresyjna i wyjściowa. Warstwa wejściowa zawiera neurony liniowe o liczbie równej liczbie zmiennych wejściowych Warstwa radialna zawiera neurony sposób działania których zbliżony jest do neuronów sieci RBF Warstwa regresyjna składa się neuronów typu A (o liczbie równej liczbie neuronów w warstwie wejściowej) i jednego neuronu typu B Warstwy wyjściowej, która służy do obliczenia ilorazu wartości obliczonych przez neurony typu A i B, w ten sposób szacowana jest wartość wyjściowa Sieci te posiadają niewielkie zdolności do ekstrapolacji
Architektura sieci GRNN - przykład RBF x 1 x 2 RBF y RBF warstwa radialna warstwa regresyjna
5. Sieć Kohonena Sieć Kohonena składa się z dwu warstw: wejściowej i wyjściowej Warstwa wejściowa służy do wprowadzenia danych do sieci Warstwa wyjściowa może składać się z dowolnej liczby neuronów uporządkowanych. Najczęściej spotyka się następujące uporządkowania: - liniowe neurony ułożone w jednym rzędzie - płaszczyznowe neurony tworzą prostokąt lub kwadrat Jest siecią typu zwycięzca bierze wszystko (ang. WTA) Każdy neuron warstwy wejściowej jest połączony z każdym neuronem warstwy wyjściowej Do uczenia stosuje się uczenie bez nauczyciela
Architektura sieci Kohonena warstwa wejściowa warstwa konkurencyjna x 1... x n
6. Sieci probabilistyczne Sieci probabilistyczne najczęściej składają się z 3 lub 4 warstw Funkcje przejścia neuronów w poszczególnych warstwach: -wejściowa funkcja liniowa - ukryta funkcja radialna -wyjściowa (klasyfikująca) funkcja Suma jednostkowa Liczba neuronów w warstwie radialnej jest najczęściej równa liczbie przypadków uczących Kolejne neurony w warstwie wyjściowej reprezentują wyróżnione klasy
Architektura sieci probabilistycznych warstwa wejściowa warstwa radialna RBF warstwa klasyfikacyjna x 1 x 2 RBF... RBF y y 1 2 RBF
Wybór właściwej architektury SN Modele regresyjne: - sieci liniowe - jednokierunkowe sieci wielowarstwowe (MLP) - sieci o radialnych funkcjach bazowych (RBF) - sieci realizujące regresję uogólnioną (GRNN) Modele klasyfikacji wzorcowej - jednokierunkowe sieci wielowarstwowe (MLP) - sieci o radialnych funkcjach bazowych (RBF) - sieci probabilistycznych Modele klasyfikacji bezwzorcowej - sieci Kohonena
Rozwiązywanie problemów za pomocą SN 1. Zdefiniowanie problemu do rozwiązania 2. Zapoznanie się z literaturą na temat problemu 3. Określenie modelu problemu: czynniki, dane opisujące czynniki, zmienna wejściowa, zmienna wyjściowa 4. Określenie rodzaju przetwarzania, który będzie realizowała SN 5. Pozyskanie i przygotowanie danych dla SN 6. Wybór sposobu postępowania przy uczeniu SN: dodawanie lub odejmowanie zmiennych 7. Dobór parametrów SN 8. Uczenie SN 9. Ocena dobroci nauczonej SN 10. Wykorzystanie SN
Przykład zastosowania SN - zadanie Należy zrealizować narzędzie służące do rozpoznawania 3 grup obiektów na podstawie ich opisów Wybrano SN jako narządzie do identyfikacji modelu klasyfikacji Na podstawie rozeznania wiadomo, że rozpatrywany problem uwarunkowany jest 5 czynnikami. Cztery spośród tych czynników są opisane jedną wartością danej a jeden z czynników trzema wartościami. 1) Jakie przetwarzanie będzie realizowała SN 2) Zaproponuj wstępne parametry SN
Przykład zastosowania SN - rozwiązanie SN będzie realizowała klasyfikacje wzorcową Jest jedna zmienna wyjściowa, która może przybierać 3 wartości Wszystkich zmiennych wejściowych jest 7 Klasyfikację wzorcową realizują trzy architektury SN. Wybrana zastała architektura MLP Złożoność problemu nie jest wielka, wiec zakłada się, że wystarczy jedna warstwa ukryta. Liczba neuronów w warstwach: -wejściowa: 7 - ukryta: 4 -wyjściowa: 1
Przykład zastosowania SN - rozwiązanie Wartość współczynnika uczenia przyjmujemy z zakresu 0,5-0,9 Na podstawie zaproponowanej architektury obliczamy liczbę połączeń w sieci: LP = (LNWe+1)*LNUk +(LNUk+1)*LNWy LP = (7+1)*4+(4+1)*1 = 37 Szacunkowa minimalna wielkość zbioru uczącego wynosi więc około 80-100 przypadków uczących Przyjmujemy następujący podział zbioru danych: podzbiór uczący 85 %, podzbiór testowy 15%
Przykłady wykorzystania SN Prognoza zapotrzebowania na energie elektryczną Określenie profilu klienta Monitorowanie stanu urządzeń Generowanie mowy na podstawie tekstu pisanego (Nettalk) Sterowanie procesami Analiza języka mówionego
Wybrane narzędzia do tworzenia SN Najczęściej stosuje się symulatory SN narzędzia programistyczne służące do symulacji pracy sztucznej sieci neuronowej Neuronix (AITECH) www.aitech.com.pl/neuronix.htm Statistica Neural Network (StatSoft Inc.) www.statsoft.pl/stat_nn.html BrainMaker (California Scientific Software) www.calsci.com NeuroSolution (NeuroDimension Inc.) www.neurosolutions.com SPSS Neural Connection (SPSS Inc.) www.spss.pl Stuttgart Neural Network Simulator www-ra.informatik.uni-tuebingen.de/snns
Literatura Mulawka J., 1996: Systemy ekspertowe. WNT. Warszawa Tadeusiewicz R. 1998: Elementarne wprowadzenie do sieci neuronowych z przykładami. Akademicka Oficyna wydawnicza PLJ. Warszawa Tadeusiewicz R. 1993: Sieci neuronowe. Akademicka Oficyna wydawnicza PLJ. Warszawa Korbicz J., Obuchowicz A., Usiński D. Sztuczne sieci neuronowe podstawy i zastosowanie. Akademicka Oficyna wydawnicza PLJ. Warszawa. 1994 Zieliński J., 2000: Inteligentne systemy w zarządzaniu. Teoria i praktyka. WNT. Warszawa Refenes A. (red.), 1995: Neural Networks in the Capital Markets. John Wiley and Sons. Chichester Duch W., Korbicz J., Rutkowski L., Tadeusiewicz R. (red.). 2000: Sieci neuronowe. Akademicka oficyna wydawnicza Exit. Warszawa