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) j1 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 . j1 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