metody sztucznej inteligencji

advertisement
Prof.nadzw.dr hab.inż. Władysław Brzozowski
Politechnika Częstochowska
Instytut Elektroenergetyki
Częstochowa-Gliwice, 5.09.2003 r.
Wykłady z przedmiotu:
METODY SZTUCZNEJ INTELIGENCJI
Wykład 1. Literatura przedmiotu. Zakres wykładów. Pojęcie Sztucznej Inteligencji.
Klasyfikacja kierunków i metod Sztucznej Inteligencji. Wprowadzenie do sztucznych sieci
neuronowych. Jednokierunkowe sztuczne sieci neuronowe.
1. Literatura przedmiotu.
1.1. Pozycje podstawowe.
[1] Arabas J.: Wykłady z algorytmów ewolucyjnych. WNT, Warszawa 2001.
[2] Cholewa W., Pedrycz W.: Systemy doradcze. Skrypt. Politechnika Śląska, Gliwice 1987.
[3] Czogała E., Pedrycz W.: Elementy i metody teorii zbiorów rozmytych. Skrypt.
Politechnika Śląska, Gliwice 1983 (także książka: PWN, Warszawa 1985).
[4] Findeisen W., Szymanowski W., Wierzbicki A.: Teoria i metody obliczeniowe
optymalizacji. PWN, Warszawa 1977.
[5] Goldberg D.E., Algorytmy genetyczne i ich zastosowania. WNT, Warszawa 1995.
[6] Handbook of Evolutionary Computation. Editors in Chief: Bäck T., Fogel D.B.,
Michalewicz Z. Institute of Physics Publishing Bristol-Philadelphia, Oxford University
Press New York–Oxford, 1997.
[7] Kasperski M.J.: Sztuczna inteligencja. Wydawnictwo Helion, Gliwice 2003.
[8] Korbicz J., Obuchowicz A., Uciński D.: Sztuczne sieci neuronowe. Podstawy i
zastosowania. Akademicka Oficyna Wydawnicza PLJ, Warszawa 1994.
[9] Michalewicz Z.: Algorytmy genetyczne + struktury danych = programy ewolucyjne.
WNT, Warszawa 1996.
[10] Mulawka J.J.: Systemy ekspertowe. WNT, Warszawa 1996.
[11] Niederliński A.: Regułowe systemy ekspertowe. Wydawnictwo Pracowni Komputerowej
Jacka Skalmierskiego, Gliwice 2000.
[12] Osowski S.: Sieci neuronowe w ujęciu algorytmicznym. WNT, Warszawa 1996.
[13] Rutkowska D., Piliński M., Rutkowski L.: Sieci neuronowe, algorytmy genetyczne i
systemy rozmyte. PWN, Warszawa 1997.
[14] Sieci neuronowe i neurokomputery. Red.: Rutkowski L. Wydawnictwo Politechniki
Częstochowskiej, Częstochowa 1996.
[15] Tadeusiewicz R.: Sieci neuronowe. Akademicka Oficyna Wydawnicza RM, Warszawa
1993 (także http://www.winntbg.bg.agh.pl/skrypty).
[16] Żurada J., Barski M., Jędruch W.: Sztuczne sieci neuronowe. Podstawa teorii i
zastosowania. PWN, Warszawa 1996.
1.2. Pozycje uzupełniające.
[17] Artificial Intelligence III. Methodology, Systems, Applications. Red.: O’Shea T., Sgurev
V. Elsevier, North-Holland, Amsterdam 1988.
[18] Berg P., Singer M.: Język genów. Poznawanie zasad dziedziczenia. Wydawnictwo
Prószyński i S-ka, Warszawa 1997.
[19] Brzozowski W.: Algorytm genetyczny w zastosowaniu do optymalizacji procesu
1
eksploatacji elektrowni. Archiwum Energetyki, 3-4/1998, ss.19-36.
[20] Brzozowski W.: Ekspercki system diagnostyki technicznej młynów węglowych
elektrowni. Przegląd Mechaniczny, 1-2/1995.
[21] Dąsal K.: Model sieci neuronowej do prognozy obciążeń dobowych w systemie
elektroenergetycznym. W: Materiały Konferencji Prognozowanie w Elektroenergetyce
PE’2000. Politechnika Częstochowska, Częstochowa 2000.
[22] Dudek G.: Ekonomiczny rozdział obciążeń z zastosowaniem algorytmów ewolucyjnych.
Rozprawa doktorska. Politechnika Częstochowska, Częstochowa 2003.
[23] Dudek G.: Krótkoterminowe prognozowanie obciążenia systemu elektroenergetycznego z
zastosowaniem sieci neuronowych o radialnych funkcjach bazowych. W: Materiały
Konferencji Prognozowanie w Elektroenergetyce PE’2000. Politechnika Częstochowska,
Częstochowa 2000.
[24] Kacprzak T., Slot K.: Sieci neuronowe komórkowe. PWN, Warszawa 1995.
[25] Lula P.: Wykorzystanie sztucznej inteligencji w prognozowaniu
(http://www.statsoft.com.pl/czytelnia).
[26] Malko J., Mikołajczak H., Skorupski W.: Sieć radialna gaussowska jako predyktor
neuronowy godzinowego zapotrzebowania mocy. W: Materiały Konferencji
Prognozowanie w Elektroenergetyce PE’2000. Politechnika Częstochowska,
Częstochowa 2000.
[27] Marecki J.: Metody Sztucznej Inteligencji. Wydawnictwo Pracowni Komputerowej Jacka
Skalmierskiego, Gliwice 2000.
[28] Osyczka A.: Evolutionary Algorithms for Single and Multicriteria Design Optimization.
Physica – Verlag, Heidelberg 2002.
[29] Różne materiały z Internetu z zakresu AI:
http://www.qed.pl/ai/nai2002/index.html,
http://www.ci.pwr.wroc.pl/~surma/education/ai.html,
http://www.ci.pwr.wroc.pl/~surma/education/ai.txt,
http://www.zpeir.ict.pwr.wroc.pl/~witold/aiuwr/zagadnienia.html,
http://www-idss.cs.put.poznan.pl/~stefan/aedteaching.html,
http://aragorn.pb.bialystok.pl/~radev/ai/wykl1a.htm,
http://www-zo.iinf.polsl.gliwice.pl/przedmioty/kons232.html,
http://www-zo.iinf.polsl.gliwice.pl/przedmioty/kons207.html,
http://www.phys.uni.torun.pl/~duch/Wyklady/nn_plan.html,
http://venus.wis.pk.edu.pl/~danio/artint.htm
[30] Russell S., Norvig P.: Artificial Intelligence – a Modern Approach. Prentice – Hall, 1995.
[31] Software 2.0, nr. 2/2001.
[32] Szajna J., Adamski M., Kozłowski T.: Turbo-Prolog. Programowanie w języku logiki.
WNT, Warszawa 1991.
[33] Tadeusiewicz R.: Wprowadzenie do praktyki stosowania sieci neuronowych
(http://www.statsoft.com.pl/czytelnia).
[34] Waloch M.: Prognozowanie krótkoterminowe obciążeń systemów elektroenergetycznych
technikami sztucznych sieci neuronowych z użyciem pakietu Sphinx. Praca magisterska.
Politechnika Częstochowska, Częstochowa 2003.
[35] Wspomaganie decyzji. Systemy eksperckie. Red.: Kulikowski R., Bogdan L. IBS PAN,
Warszawa 1995.
[36] Wójtowicz P.: Polska wersja STATISTIKA Neural Networks
(http://www.statsoft.com.pl/czytelnia).
2. Cel i zakres wykładów. Pojęcie Sztucznej Inteligencji. Klasyfikacja kierunków i metod AI.
2
Wykłady poświęcone są kierunkom i metodom Sztucznej Inteligencji.
Sztuczna Inteligencja (po angielsku Artificial Intelligence – AI; tego skrótu będziemy
dalej używać) jest gałęzią nauki, wchodzącą w skład Informatyki (Computer
Science).
AI zajmuje się konstruowaniem maszyn oraz algorytmów, których działanie posiada
znamiona inteligencji.
Inteligencją (z łaciny intelligentia – pojętność) nazywamy (za Wielką Internetową
Encyklopedią Multimedialną http://wiem.onet.pl) zespół zdolności umysłowych
umożliwiających jednostce korzystanie z nabytej wiedzy przy rozwiązywaniu nowych
problemów i umożliwiających racjonalne zachowanie w różnych sytuacjach
życiowych.
AI stawia sobie za cel stworzenie maszyn, które dorównają inteligencją człowiekowi, a
nawet go przewyższą. Stanisław Lem już ok. 30 lat temu sformułował pogląd, że ewolucja
człowieka na określonym etapie doprowadzi do zastąpienia człowieka maszyną. Nie brak
również i sceptyków, którzy uważają że jest to niemożliwe i nierealne. Tym niemniej już dziś
maszyna (komputer) w różnych wąskich dziedzinach okazuje się bardziej sprawna niż umysł
człowieka (np. masowe obliczenia, szachy itp.)
W skład AI wchodzą następujące kierunki (w kolejności historycznej):
1. Systemy eksperckie (spotyka się też określenie „ekspertowe”; te dwie nazwy
funkcjonują w literaturze równolegle).
2. Sztuczne sieci neuronowe.
3. Logika rozmyta i zbiory rozmyte.
4. Algorytmy ewolucyjne, w tym algorytmy genetyczne.
5. Zbiory przybliżone.
6. Teoria agentów.
W AI wyróżniono podgałąź nauki nazwaną Inteligencja Obliczeniowa (Computational
Intelligence). Ma ona charakter matematyczny i obejmuje: sztuczne sieci neuronowe, zbiory
rozmyte, modele statystyczne oraz modele uczenia maszynowego (Machine Learning).
Na bazie teorii zbiorów przybliżonych wykształcił się pochodny kierunek Eksploracja
(Wydobywanie) Danych (Data Mining).
Teoria agentów liczy sobie zaledwie ok. 2 lata i dopiero się formalizuje. Stanowi ona
próbę unifikacji poszczególnych kierunków AI.
Agentem, w rozumieniu AI, nazywamy system (w szczególności może to być
maszyna), który w sposób inteligentny realizuje określone zadanie (misję).
Od lat natomiast rozwijają się, i to szczególnie, w ostatnich latach żywiołowo, 4 pierwsze
wymienione powyżej kierunki, tj. sztuczne sieci neuronowe, algorytmy ewolucyjne, systemy
eksperckie oraz logika i zbiory rozmyte. Do tych kierunków ograniczać się będzie nasz
wykład z zakresu metod AI, w kolejności jak wymieniono.
3
Zaczniemy od sztucznych sieci neuronowych z tego względu, że metody tego kierunku
będą w szczególny sposób podstawą, realizowanego równolegle, Laboratorium Metod
Sztucznej Inteligencji.
Na koniec omawiania klasyfikacji kierunków AI trzeba jeszcze koniecznie zwrócić
uwagę na zjawisko hybrydyzacji kierunków i metod AI. Przykładowo: do optymalizacji wag
synaptycznych sztucznej sieci neuronowej stosuje się już algorytmy ewolucyjne. Istnieje też
już np. klasa sieci neuronowych o logice rozmytej.
Metody AI mają już rozliczne dziedziny praktycznego zastosowania. Taką dziedziną w
szczególności są systemy rozpoznawania obrazów (przykładem może być system
automatycznego, komputerowego rozpoznawania obiektów typu wojskowego na zdjęciach
satelitarnych).
Metody AI bazują silnie na informatyce (komputerach). Dla potrzeb tych metod
wypracowano specjalne języki programowania. Są nimi PROLOG oraz LISP.
3. Sztuczne sieci neuronowe.
3.1. Definicja sztucznej sieci neuronowej.
Sztuczna sieć neuronowa (za Wielką Internetową Encyklopedią Multimedialną
http://wiem.onet.pl) jest to maszyna (neurokomputer) lub algorytm, którego
działanie wzorowane jest na w pewnym stopniu na działaniu sieci zwierzęcych
(ludzkich) komórek nerwowych (w szczególności mózgu).
Jak wynika z definicji, sztuczna sieć neuronowa jest maszyną (neurokomputerem). W
odróżnieniu jednak [16] od konwencjonalnych komputerów, które są programowane dla
realizacji określonych zadań (obliczeń), większość sieci neuronowych jest uczona
(trenowana). Projektanci sieci (programiści) określają jedynie architekturę sieci, tj. liczbę i
strukturę warstw neuronów, następnie charakterystyki neuronów, początkowe wartości wag
synaptycznych neuronów oraz wybierają metodę uczenia sieci, natomiast nie określają
parametrów obliczeń użytkowych. Parametry takie są determinowane przez samą sieć w
procesie uczenia.
Neurokomputer w rozumieniu wyżej podanej definicji nie musi być jednostką
hardware'ową. Można go też z powodzeniem symulować (emulować) na zwykłym
komputerze PC w postaci programu.
3.2. Klasyfikacja sztucznych sieci neuronowych ze względu na ich funkcje.
Z punktu widzenia funkcji sieci, sztuczne sieci neuronowe dzielimy na [16]:
 Klasyfikatory. Klasyfikator wyprowadza na wyjściu sygnały 0/1 oznaczające
przyporządkowanie badanego obiektu do określonej klasy. Na wejściu klasyfikatora
wprowadza się sygnały odzwierciedlające cechy obiektu, zmierzone lub
zaobserwowane;
 Aproksymatory. Aproksymator wyprowadza na wyjściu aproksymantę, czyli
elementarną funkcję matematyczną, która jest najlepiej (z punktu widzenia
określonego kryterium np. minimum sumy kwadratów odchyleń) dopasowana do
jakiejś krzywej empirycznej, np. zdjętej z pomiarów lub zaobserwowanej.
Aproksymanta może być wyprowadzana w postaci wartości współczynników funkcji.
4



Układy sterujące. Układ sterujący wyprowadza na wyjściu sygnały sterujące, np.
ruchem samochodu na drodze, przy czym sygnałem wejściowym jest obraz drogi z
kamery.
Pamięci asocjacyjne, lub krótko pamięci. Pamięci odtwarzają przedstawiony im
wcześniej obraz.
Optymalizatory. Optymalizator, ogólnie, wyprowadza na wyjściu optymalne (tj.
najlepsze z punktu widzenia określonego kryterium) wartości zmiennych decyzyjnych
procesu. Sygnałami na wejściu są wartości parametrów (zmiennych niedecyzyjnych)
danego optymalizowanego procesu. Sztuczne sieci neuronowe można zastosować do
tych problemów optymalizacyjnych, w których kryterium optymalizacji da się
sprowadzić do minimum pewnej wielkości charakterystycznej, zależnej od stanu sieci,
zwanej funkcją energii sieci.
3.3. Historia badań.
Badania nad sztucznymi sieciami neuronowymi datują się [15, 16] od 1943 roku, kiedy to
opracowano pierwszy matematyczny model neuronu McCulloch’a-Pitts’a. Pierwszą sieć
neuronową – perceptron, klasyfikującą obrazy, zbudował Rosenblatt w 1958 r. Pierwszą
liniową sieć neuronową jednowarstwową MADALINE, bazującą na neuronie o liniowej
funkcji aktywacji zwanym ADALINE, zbudował Widrow i Hoff w 1960 roku, podając
równocześnie nową metodę uczenia sieci zwaną regułą DELTA Widrow’a-Hoff’a (metoda
uczenia sieci z nauczycielem).
W 1968 roku opracowano sieć neuronową wielowarstwową.
W latach 70-tych badania uległy wyhamowaniu.
Punktem zwrotnym stało się opracowanie neuronu i sieci o nieliniowej funkcji aktywacji.
Dla nieliniowej jednowarstwowej sieci neuronowej można było nadal zastosować regułę
DELTA uczenia sieci, brakowało jednak początkowo efektywnej metody uczenia sieci
nieliniowej wielowarstwowej. Dopiero w połowie lat 80 opracowano dla takich sieci metodę
uczenia nazwaną algorytmem wstecznej propagacji błędów (backpropagation).
Innym punktem zwrotnym było opracowanie przez Hopfielda w 1982 roku rekurencyjnej
architektury pamięci neuronowych oraz sieci neuronowej ze sprzężeniem zwrotnym. W tym
samym roku Kohonen opracował także nową metodę uczenia sieci bez nauczyciela.
Od tego czasu datuje się szybki rozwój badań nad sztucznymi sieciami neuronowymi.
3.4. Mózg.
Skoro, zgodnie z wcześniejszą definicją, sztuczna sieć neuronowa jest wzorowana na
działaniu mózgu, konieczne jest przypomnieć jak mózg jest zbudowany i jak działa. Trzeba
jednak zastrzec się, że badania nad mózgiem są zaledwie w stadium początkowym i do
pełnego zrozumienia sposobu działania mózgu droga jest jeszcze niezmiernie daleka.
Mózg ludzki pokazany jest na rysunku 1.
Ważniejsze części mózgu na rysunku, to: 1 - rdzeń przedłużony, 4 - półkula mózgu, 10 móżdzek. Powierzchnia mózgu nazwana korą, zbudowana jest z komórek nerwowych
(neuronów) i ma barwę szarawą. Wnętrze mózgu jest utworzone z istoty białej, która powstaje
z wypustek komórek nerwowych. Wypustki tworzą pęczki, przechodzące w nerwy. Nerwy
składają się z włókien 3 rodzajów: czuciowych - prowadzących sygnały z obwodowego
układu nerwowego do mózgu, ruchowych - prowadzących sygnały z mózgu do mięśni oraz
wydzielniczych - prowadzących sygnały z mózgu do gruczołów wydzielania wewnętrznego.
5
Rys. 1. Mózg ludzki (zaczerpnięto z: Sylwanowicz W.: Mały atlas anatomiczny. PZWL,
Warszawa 1987, tablica XXXII)
Liczba neuronów w mózgu wynosi [16] około 1011. Komunikują się one wzajemnie
poprzez sieć wypustek - aksonów i synaps, w liczbie około 104 synaps na neuron.
Przekazywane sygnały są natury elektrycznej i biochemicznej. Sygnały wejściowe do sieci
pochodzą od receptorów, zaś sygnały wyjściowe prowadzone są do efektorów.
Pojedynczy neuron biologiczny pokazany jest na rysunku poniżej.
Rys. 2. Neuron biologiczny (zaczerpnięto z [16], rys.2.2, str. 34).
6
Neuron reaguje, tzn. wysyła sygnał wyjściowy, jeśli suma sygnałów elektrycznych
dochodzących poprzez synapsy przekroczy wartość progową (ok. 40 mV), przy czym sygnały
przychodzące mogą być pobudzające lub hamujące. Jeden z sygnałów wejściowych do
neuronu może także pochodzić z wyjścia tego samego neuronu (sprzężenie zwrotne).
3.5. Model neuronu McCulloch’a-Pitts’a.
Pierwszym matematycznym modelem neuronu, opracowanym na bazie badań
biologicznych, był model McCulloch’a-Pitts’a.
Rys. 3. Model neuronu McCulloch’a-Pitts’a (zaczerpnięto z [16], rys. 2.3 str. 37).
Neuron posiada n wejść synaptycznych, o wskażniku i (i=1, 2, ...,n). Na każde i-te
wejście synaptyczne dochodzi 0-1-kowy sygnał xi, przy czym obecność sygnału w danej k-tej
chwili interpretuje się jako 1, zaś brak sygnału jako 0. Na wyjściu neuronu, w chwili k+1
pojawia się sygnał wyjściowy yk+1, będący funkcją sygnałów wejściowych xi (i=1, 2, ...,n).
Funkcję tę nazywamy funkcją aktywacji neuronu. Ma ona postać następującą:
y k 1
n

1
,
gdy
w i x ik  T


i 1

n
0, gdy  w i x ik  T
i 1

(1)
gdzie:
x ik - sygnał wejściowy 0-1-kowy na i-tym wejściu synaptycznym neuronu w chwili k;
w i - waga synaptyczna na i-tym wejściu neuronu, równa +1 dla synaps pobudzających, lub
-1 dla synaps hamujących;
T - wartość progowa pobudzenia neuronu.
7
Model neuronu McCullocha-Pittsa okazał się przydatny do skonstruowania sieci
odwzorowującej złożone funkcje logiczne (bramki) NOR, NAND lub realizujące komórkę
pamięci, jak to jest pokazane na rysunku 3.
3.6. Współczesny model neuronu [16].
Współczesny model neuronu przedstawia rys. 4.
Rys. 4. Współczesny model neuronu (zaczerpnięto z [16], rys. 2.4 str. 38).
Neuron składa się z n wejść synaptycznych, elementu przetwarzającego oraz wyjścia.
Sygnał wyjściowy neuronu dany jest zależnością:
 n

y  f wtx  f  wixi 
 i 1

gdzie w jest wektorem wag synaptycznych (kolumnowym), zdefiniowanym jako:


w  w 1 w 2 ... w n 
t
(2)
(3)
zaś x jest wektorem wejściowym (kolumnowym), zdefiniowanym jako:
x  x 1 x 2 ... x n 
t
(4)
gdzie, we wzorach (2)-(4):
i
- wskaźnik wejścia synaptycznego neuronu, i=1, 2, .., n;
n - liczba wejść synaptycznych neuronu;
wi - waga i-tego wejścia synaptycznego;
xi - sygnał na i-tym wejściu synaptycznym;
t
- górny indeks oznaczający transpozycję wektora z wierszowego na kolumnowy;
y - sygnał wyjściowy neuronu;
f() - funkcja aktywacji neuronu.
Dziedziną funkcji aktywacji neuronu jest zbiór łącznych pobudzeń neuronu. Łączne
pobudzenie neuronu oznacza się jako net. Zatem:
net  w t x
(5)
gdzie:
net
- łączne pobudzenie neuronu;
wt, x - jak we wzorze (2).
Aby neuron został pobudzony, wartość net w zapisie jak powyżej musi być >0. Wiadomo
jednak, że neuron biologiczny ma próg pobudzenia nie 0 lecz T. Uwzględnia się ten fakt w
8
powyższym modelu przez przyjęcie, że faktycznie neuron posiada n-1 wejść synaptycznych,
natomiast na i=n – tym wejściu sygnał zawsze wynosi –1, zaś waga tego i=n – tego wejścia
zawsze równa się T:
xn = -1, wn = T
(6)
Ogólny symbol neuronu oraz równanie (2) są powszechnie stosowane w literaturze
przedmiotu. Nie powiedziano jednak nic jeszcze o postaci funkcji aktywacji f(). Postacią tej
funkcji różnią się poszczególne klasy sieci neuronowych.
I tak, najstarszą zastosowaną postacią tej funkcji jest bipolarna funkcja binarna
(dyskretna, tzn. inaczej nieciągła, lub jeszcze inaczej skokowa), dana wzorem:
 1, gdy net  0
f (net )  sgn( net )  
 - 1, gdy net  0
(7)
gdzie:
f(net), net
sgn
- jak we wzorach (2) i (5);
- signum, inaczej funkcja znakowa zmodyfikowana (niezmodyfikowana
przyjmuje ponadto [15] wartość 0 dla net=0).
Postać geometryczna tej funkcji pokazana jest poniżej na rysunku 5 a.) jako progowy
układ logiczny. Neuron z taką funkcją aktywacji nazywany jest neuronem binarnym lub
inaczej perceptronem dyskretnym. Pierwsza sieć neuronowa wprowadzona w roku 1958 przez
Rosenblatta była właśnie perceptronem dyskretnym, prekursorem współczesnych sztucznych
sieci neuronowych.
Rys. 5. Modele neuronu z dyskretną i ciągłą funkcją aktywacji (zaczerpnięto z [16], rys. 2.7
str. 41).
Dyskretna, skokowa funkcja aktywacji okazała się, z matematycznego punktu widzenia
niedogodna. Chodzi o to, że w metodzie uczenia DELTA Widrow’a-Hoff’a zastosowano
później metody gradientowe do optymalizacji wag synaptycznych. Metody te wymagają
jednak ciągłości i różniczkowalności funkcji aktywacji. Dlatego też dyskretną funkcję
9
aktywacji zastąpiono funkcją ciągłą, ale taką która jest maksymalnie zbliżona do bipolarnej
funkcji binarnej. Funkcją tą jest bipolarna funkcja ciągła, dana wzorem:
f (net ) 
2
 1,   0
1  exp    net 
(8)
f(net), net - jak we wzorach (2) i (5);
exp
- eksponent, inaczej funkcja wykładnicza e  net , gdzie e – podstawa logarytmów
naturalnych;
λ
- czyt. lambda małe - parametr ciągłej funkcji aktywacji;
*
- operator mnożenia.
Geometryczna postać powyższej funkcji pokazana jest na rysunku 6 a.) dla różnych
wartości parametru λ. Im bardziej parametr λ rośnie tym bardziej bipolarna funkcja ciągła
upodabnia się do bipolarnej funkcji dyskretnej.
Rys. 6. Ciągłe funkcje aktywacji neuronu (zaczerpnięto z [16], rys. 2.5 str. 40).
Neuron z ciągłą funkcją aktywacji nazywa się neuronem ciągłym lub inaczej
perceptronem ciągłym. Neuron ciągły z bipolarną funkcją aktywacji pokazany jest na rysunku
6 b.).
Nazwa bipolarna (funkcja aktywacji) oznacza, że odpowiedź neuronu na wyjściu może
przybierać wartości zarówno dodatnie jak i ujemne. Większość sztucznych sieci neuronowych
bazuje na bipolarnych funkcjach aktywacji. Niekiedy jednak ujemne wartości na wyjściu
neuronu są niedogodne. Przesuwając i przeskalowując bipolarną binarną (dyskretną) funkcję
aktywacji, otrzymujemy unipolarną binarną funkcję aktywacji, o postaci:
1, gdy net  0
f (net )  
0, gdy net  0
(9)
gdzie:
oznaczenia jak we wzorze (7).
10
Przesuwając i przeskalowując bipolarną ciągłą funkcję aktywacji, otrzymujemy
unipolarną ciągłą funkcję aktywacji, o postaci:
f (net ) 
1
, 0
1  exp    net 
(10)
gdzie:
oznaczenia jak we wzorze (8).
Geometryczna postać powyższej funkcji pokazana jest na rysunku 6 b.) dla różnych
wartości parametru λ. Im bardziej parametr λ rośnie tym bardziej unipolarna funkcja ciągła
upodabnia się do unipolarnej funkcji dyskretnej. Funkcje unipolarne, zarówno dyskretna jak i
ciągła mogą przybierać wartości wyłącznie dodatnie.
Funkcje ciągłe, dane wzorami (8) i (10) są też nazywane inaczej funkcjami
sigmoidalnymi. Funkcje sigmoidalne są najczęściej stosowanymi funkcjami aktywacji w
odniesieniu do sztucznych sieci neuronowych. Nie wyczerpują one jednak możliwości
stosowania innych postaci funkcji nieliniowych. W [15] wymienia się jeszcze takie funkcje
aktywacji jak: funkcja signum niezmodyfikowana, funkcja perceptronowa, funkcja BAM
(Bidirectional Associative Memory), funkcja BSB (Brain State in a Box), funkcja SPR
(Spatio-Temporal Pattern Recognition) oraz funkcja logarytmiczna. Funkcje te mają
znaczenie dla różnych wąsko specjalizowanych sieci; w razie potrzeby, przy omawianiu tych
sieci zostaną później w wykładzie przytoczone.
Opisane powyżej modele neuronów są bardzo uproszczone w stosunku do neuronów
biologicznych. Neurony biologiczne wykazują dodatkowo takie cechy jak opóźnienie reakcji,
działanie w dyskretnej skali czasu oraz czas oporności. Są już rozwiązania sieci
uwzględniające te cechy, jednak obliczenia na takich sieciach wymagają wielkiej mocy
obliczeniowej komputerów i długiego czasu obliczeń.
3.7. Modele sztucznych sieci neuronowych.
3.7.1. Sieć jednokierunkowa jednowarstwowa [16].
Sieć jednokierunkowa jest to sieć bez sprzężenia zwrotnego. Sieć taka może być
jednowarstwowa lub wielowarstwowa.
Jednowarstwowa jednokierunkowa sieć neuronowa pokazana jest na rysunku 7.
11
Rys. 7. Jednowarstwowa jednokierunkowa sieć neuronowa (zaczerpnięto z [16], rys. 2.8 str.
43).
W sieci jednowarstwowej każdy z n sygnałów wejściowych x podawany jest na każdy z
m neuronów sieci. Każde wejście każdego neuronu cechuje się jednak inną wartością wagi
synaptycznej. Z każdego z m neuronów wyprowadzony jest sygnał wyjściowy y. Istnieje
zatem m sygnałów wyjściowych sieci. Sygnały te różnią się między sobą, gdyż, w związku z
różniącymi się wartościami wag synaptycznych, wartości net łącznego pobudzenia
poszczególnych neuronów różnią się pomiędzy sobą.
Wektor wejściowy sieci (nazywany też obrazem wejściowym) ma postać:

x  x 1 x 2 ... x j ... x n

t
(11)
gdzie:
j
- wskaźnik sygnału wejściowego sieci, j=1, 2, .., n;
n - liczba sygnałów wejściowych sieci;
xj - sygnał na j-tym wejściu sieci;
t
- górny indeks oznaczający transpozycję wektora z wierszowego na kolumnowy.
Wektor wyjściowy sieci (nazywany też obrazem wyjściowym) ma postać:
y  y1 y 2 ... y i ... y m 
t
(12)
gdzie:
i
- wskaźnik neuronu a zarazem sygnału wyjściowego sieci, i=1, 2, .., m;
m - liczba neuronów a zarazem sygnałów wyjściowych sieci;
yi - sygnał na i-tym wyjściu sieci.
Jak już wspomniano, każde j-te wejście każdego i-tego neuronu ma różniącą się wartość
wagi synaptycznej wij (kolejność indeksów jest istotna – na pierwszym miejscu wskaźnik
neuronu, na drugim wskażnik wejścia).
Łączne pobudzenie i-tego neuronu można przedstawić wzorem:
n
net i   w ij x j , i  1, 2, .., m
(13)
j1
gdzie:
neti
wij
i, j, m, n, xj
- łączne pobudzenie i-tego neuronu;
- waga synaptyczna na j-tym wejściu i-tego neuronu;
- jak we wzorach (11)-(12).
W i-tym neuronie dokonuje się transformacja wektora wejściowego x w sygnał
wyjściowy neuronu yi:
 
y i  f w ti x , i  1, 2, ..., m
(14)
gdzie wi jest wektorem wag synaptycznych (kolumnowym), na n wejściach i-tego neuronu,
zdefiniowanym jako:

w i  w i1 w i2 ...w ij ... w in

t
(15)
12
Wprowadzając nieliniowy operator macierzowy Γ można zapisać odwzorowanie
przestrzeni wejść x w przestrzeń wyjść y, dokonywane przez sieć, w postaci wzoru:
y  ΓWx 
(16)
gdzie W jest macierzą wag, nazywaną też inaczej macierzą połączeń, daną w postaci wzoru:
 w 11
w
 21
 
W
 w i1
 

 w m1
w 12
 w 1j

w 22
 w 2j 




w i2

w ij





w m 2  w mj

w 1n 
w 2 n 
 

w in 
 

w mn 
(17)
W macierzy wag poszczególne wiersze oznaczone są wskaźnikiem i (i=1, 2, ..., m) i grupują
wagi na wszystkich n wejściach i-tego neuronu, natomiast poszczególne kolumny oznaczone
są wskaźnikiem j (j=1, 2, ...,n) i grupują wagi na j-tym wejściu wszystkich m neuronów.
Operator Γ ma postać:
f () 0
 0 f ()

 

Γ
 
0
 0
 


0
 0

0


0




 f () 




0

0 
0 
 

0 
 

f ()
(17)
gdzie:
f(.) - nieliniowa funkcja aktywacji neuronów, ciągła lub dyskretna.
Przykład 1:
Mamy daną sztuczną sieć neuronową jednokierunkową jednowarstwową składającą się z 5
neuronów (m=5). Sieć posiada 4 wejścia (n = 4) przy czym czwarte, ostatnie wejście
reprezentuje próg pobudzenia neuronów (x4 = -1). Przyjęto ten sam próg pobudzenia
wszystkich neuronów T = 2. Neurony cechują się bipolarną binarną funkcją aktywacji (wzór
(7) dla przypomnienia):
 1, gdy net  0
f (net )  sgn( net )  
.
 - 1, gdy net  0
Przyjęto przykładowe wartości wag, zgrupowane w macierzy W:
1
2
 1 2
1.5 2  0.5 2


W   1 0
3
2 .


1
2
 0 0.5
 3
2
0
2
Przyjęto przykładowe wartości sygnałów wejściowych, przedstawione jako składowe wektora
wejściowego x:
13
3
  2
x   .
1 
 
  1
Należy określić wartości składowych wektora wyjściowego y.
Rozwiązanie:
Określamy wektor łącznego pobudzenia net dla poszczególnych neuronów, za pomocą wzoru
n
(13): net i   w ij x j , i  1, 2, .., m .
j1
6
  2
 
net   2 .
 
  2
 3 
Określamy wektor y, posługując się, kolejno dla poszczególnych neuronów, wzorem (7):
 1, gdy net  0
:
f (net )  sgn( net )  
 - 1, gdy net  0
1
 1
 
y   1 .
 
 1
 1 
□ Koniec przykładu 1.
3.7.1. Sieć jednokierunkowa wielowarstwowa.
Sieć jednokierunkowa wielowarstwowa jest to kaskadowe połączenie dwu lub więcej
sieci jednowarstwowych w taki sposób, że wektor wyjściowy y warstwy poprzedniej staje się
wektorem wejściowym x warstwy następnej. Liczba neuronów w kolejnych warstwach może
być różna. Różna może być też w ogólności funkcja aktywacji neuronów w poszczególnych
warstwach (na ogół jednak przyjmuje się dla całej sieci taką samą funkcję aktywacji).
Natomiast dla wszystkich neuronów w obrębie jednej wyróżnionej warstwy przyjmuje się
zawsze taką samą funkcję aktywacji.
Pierwszą warstwę sieci przyjęto nazywać warstwą wejściową, ostatnią – warstwą
wyjściową, zaś wszystkie pośrednie – warstwami ukrytymi.
• Koniec wykładu 1.
plik WY01SZT3.DOC
edytor Word 7.0 PL
14
Download