Literatura Wprowadzenie Obliczenia Naturalne - Sztuczne sieci neuronowe Paweł Paduch Politechnika Świętokrzyska 13 marca 2014 Paweł Paduch Obliczenia Naturalne - Sztuczne sieci neuronowe 1 z 43
Plan wykładu Literatura Wprowadzenie 1 Literatura Wprowadzenie 2 3 Rekurencyjne Przegląd 4 Paweł Paduch Obliczenia Naturalne - Sztuczne sieci neuronowe 2 z 43
Literatura Literatura Wprowadzenie Mariusz Flasiński - do sztucznej inteligencji, PWN, 2011 Ryszard Tadeusiewicz - neuronowe, Akademicka Oficyna Wydaw. RM, 1993 http://winntbg.bg.agh.edu.pl/skrypty/0001/ppframe.html Paweł Paduch Obliczenia Naturalne - Sztuczne sieci neuronowe 3 z 43
Literatura Wprowadzenie Pod koniec XIX wieku Santiago Ramón y Cajal pokazał, że mózg ludzki składa się z neuronów. W 1943 roku Walter Pits i Warren McCulloch - stworzyli matematyczny model neuronu wraz z dowodem, że może odwzorować dowolną funkcję logiczną. Paweł Paduch Obliczenia Naturalne - Sztuczne sieci neuronowe 4 z 43
Neuron Literatura Wprowadzenie a dentryty - wejścia neuronu b ciało komórki c jądro komórkowe - centrum obliczeniowe d akson - wyjście neuronu e otoczka mielinowa f komórka Schwanna g przewężenie Ranviera h zakończenia aksonu Neuron Rysunek: Neuron źródło wikipedia Paweł Paduch Obliczenia Naturalne - Sztuczne sieci neuronowe 5 z 43
Neuron Literatura Wprowadzenie Przy dentrytach umieszczone są synapsy, to one regulują moc sygnału wejściowego. Właściwości transmisyjne synaps zależą od substancji zwanych neurotransmiterami. Gdy całkowita siła oddziaływań synaps na neuron przekracza pewną progową wartość w neuronie pojawia się tzw. potencjał czynnościowy, który wędruje jako impuls nerwowy. Mówimy, że neuron został pobudzony. Paweł Paduch Obliczenia Naturalne - Sztuczne sieci neuronowe 6 z 43
dendryty synapsy ciało komórki akson X 0 W 0 X 1. W 1. v f (v) y X n W n wagi synaptyczne Sygnały wejściowe X 0, X 1,..., Xn będące odpowiednikami impulsów nerwowych od innych neuronów tworzą wektor wejściowy X = (X 0, X 1,..., Xn). Zakładamy, że X 0 = 1. Wektor wag synaptycznych W = (W 0, W 1,..., W n ) określają w jakim stopniu sygnały od innych neuronów oddziałują na neuron. Paweł Paduch Obliczenia Naturalne - Sztuczne sieci neuronowe 7 z 43
Funkcja potencjału postsynaptycznego g(w, X) określa całkowitą siłę oddziaływania sygnałów na neuron. Wektor X jest mnożony przez wektor W, następnie wyniki są sumowane dając w wyniku sygnał v. n v = g(w, X) = W i, X i i=0 Teraz wystarczy sprawdzić czy sygnał osiągnął wystarczający poziom do aktywacji neuronu, czy osiągnął wartość progową. Sprawdzenie następuje za pomocą funkcji aktywacji. y = f (v) Paweł Paduch Obliczenia Naturalne - Sztuczne sieci neuronowe 8 z 43
Funkcja aktywacji neuronu McCullocha-Pittsa W. S. McCulloch i W. Pitts jako funkcji aktywacji użyli funkcji skokowej Heaviside a, którą oznacza się często przez 1(v) tzw. tłustą jedynką. 1(v) = { 1, jeśli v 0, 0, jeśli v < 0 y = f (v) 1 4 2 2 4 1 v Paweł Paduch Obliczenia Naturalne - Sztuczne sieci neuronowe 9 z 43
neuronu Tak jak mózg ludzki jest zdolny do nauki tak samo sztuczny neuron można czegoś nauczyć. Chcemy aby neuron nauczył się reagować w poprawny sposób na prezentowane mu wzorce, reprezentowane przez wektory wejściowe. zainicjowanie wektora wag W i ustawienie ciągu uczącego na wejście neuronu wprowadzenie kolejnego wektora X ciągu uczącego na wejście neuronu ponowne ustawienie ciągu uczącego na wejście neuronu wyznaczenie sygnałów v i y wyznaczenie wektora wag W neuron nauczony Paweł Paduch Obliczenia Naturalne - Sztuczne sieci neuronowe 10 z 43
neuronu Cykl uczenia się neuronu można opisać następująco: Na wejście neuronu wprowadzamy wektor X Obliczany jest poziom sygnału v Wyznaczona wartość y zgodna z funkcją aktywacji jest reakcją na pokazany wzorzec. Proces uczenia się polega na korygowaniu wag wprowadzanego wektora w zależności od reakcji na dany wzorzec. Korygujemy wektor wag W, poczym przechodzimy do wprowadzenia nowego ciągu uczącego. Po wprowadzeniu wszystkich wektorów ciągu uczącego, sprawdzamy czy neuron nauczył się rozpoznawać wzorce, jeśli nie, ponownie ustawiamy cały ciąg uczący i wprowadzamy wszystkie wektory. Paweł Paduch Obliczenia Naturalne - Sztuczne sieci neuronowe 11 z 43
neuronu - z nauczycielem Istnieją dwie techniki uczenia neuronu, z nauczycielem i bez. W pierwszym przypadku ciąg uczący ma postać: U = ((X(1), u(1)), (X(2), u(2)),..., (X(M), u(m))) Gdzie X(j) = (X 0 (j), X 1 (j),..., X n (j)), j = 1,..., M jest j-tym wektorem wejściowym, a u(j) jest sygnałem jakiego nauczyciel oczekuje od neuronu. Neuron poprawnie reaguje na wzorce gdy dla każdego X(j) generuje sygnał wyjściowy y(j) zgodny w granicach błędu z u(j). Paweł Paduch Obliczenia Naturalne - Sztuczne sieci neuronowe 12 z 43
neuronu - bez nauczyciela W uczeniu bez nauczyciela ciąg uczący ma postać: U = (X(1), X(2),..., X(M)) Tu neuron samodzielnie modyfikuje swoje wagi tak, żeby dla podobnych wzorców generować taki sam sygnał wyjściowy a dla różnych inne sygnały wyjściowe. Paweł Paduch Obliczenia Naturalne - Sztuczne sieci neuronowe 13 z 43
Perceptron Perceptron zbudował w 1957 roku Frank Rosenblatt. Funkcja aktywacji perceptronu jest bipolarną funkcją skokową. { 1, jeśli v > 0, f (v) = 1, jeśli v 0. X 2 X0 = 1 W 0 X 1 X 3 W 1 X 4 W 2 W 3 v f (v) 1 y W 4 v -1 X 7 X 5 W 5 W 6 W 7 X 6 Paweł Paduch Obliczenia Naturalne - Sztuczne sieci neuronowe 14 z 43
perceptronu W celu uczenia perceptronu modyfikujemy jego wagi w następujący sposób: Jeżeli w j-tym kroku uczenia y(j) u(j), to nowe wagi dla następnego kroku (j + 1) obliczamy według: W i (j + 1) = W i (j) + u(j)x i (j), jeżeli w j-tym kroku uczenia y(j) = u(j) to wagi w następnym kroku nie zostają zmienione. Paweł Paduch Obliczenia Naturalne - Sztuczne sieci neuronowe 15 z 43
perceptronu Przykładowo chcemy nauczyć perceptron rozpoznawania liter A i C pojawiających się na 7 segmentowym wyświetlaczu. X 2 X 2 X 1 X 3 X 1 X 3 X 4 X 4 X 7 X 5 X 7 X 5 X 6 X 6 Paweł Paduch Obliczenia Naturalne - Sztuczne sieci neuronowe 16 z 43
perceptronu Będą im przypisane sygnały wejściowe odpowiednio: X A = (X 0, 1, 1, 1, 1, 1, 0, 1) gdzie chcemy by perceptron generował na wyjściu sygnał u = 1 oraz X C = (X 0, 1, 1, 0, 0, 0, 1, 1) gdzie oczekujemy sygnału wyjściowego u = 1 Początkowy wektor wag jest wyzerowany: W(1) = (W 0 (1), W 1 (1), W 2 (1), W 3 (1), W 4 (1), W 5 (1), W 6 (1), W 7 (1)) = (0, 0, 0, 0, 0, 0, 0) Paweł Paduch Obliczenia Naturalne - Sztuczne sieci neuronowe 17 z 43
perceptronu przebiegać będzie w kilku krokach: Wprowadzamy ciąg uczący X A wyliczamy wartość v ponieważ wszystkie wagi były równe 0 więc i v = 0 a co za tym idzie y = f (v) = 1 u gdzie u powinno być 1. Modyfikujemy wagi według W i (j + 1) = W i (j) + u(j)x i (j), nowy W(2) = (1, 1, 1, 1, 1, 1, 0, 1). Wprowadzamy ciąg uczący X C wyliczamy wartość v ponieważ wszystkie wagi zostały zmodyfikowane do W(2) więc i v = 4 a co za tym idzie y = f (v) = 1 u gdzie u dla C powinno być -1. Modyfikując wektor wag zgodnie z nowym ciągiem uczącym otrzymujemy W(3) = (0, 0, 0, 1, 1, 1, 1, 0) Paweł Paduch Obliczenia Naturalne - Sztuczne sieci neuronowe 18 z 43
perceptronu Kolejne kroki to ponowne wprowadzenie ciągów uczących i sprawdzenie aktywacji neuronu. Dla X A i wag W(3) v = 3 a więc sygnał wyjściowy y = 1 jest zgodny z wymaganym u = 1, dlatego nie zmieniamy wag W(4) = W(3). Dla X C i wag W(4) v = 1 a więc sygnał wyjściowy y = 1 jest zgodny z wymaganym u = 1, też nie zmieniamy wag W(5) = W(4). Nauka zakończona. W 1 = W 2 = W 7 = 0 ma wagi neutralne, cechy w obu wzorcach są takie same. W 3 = W 4 = W 5 = 1 wzmacniają cechy występujące we wzorcu litery A i nie występujące w C. W 6 = 1 osłabia cechę X 6 występującą we wzorcu C i nie występującą we wzorcu A. Paweł Paduch Obliczenia Naturalne - Sztuczne sieci neuronowe 19 z 43
Typologia sztucznych neuronów Sztuczne neurony zwykle różnią się od przedstawionego modelu podstawowego. Cechami je różniącymi zwykle są: strukturalny schemat funkcjonalny, rodzaj formuły wykorzystanej w metodzie uczenia, rodzaj funkcji aktywacji, rodzaj funkcji potencjału postsynaptycznego. Paweł Paduch Obliczenia Naturalne - Sztuczne sieci neuronowe 20 z 43
Strukturalne schematy funkcjonalne Schemat perceptronu (góryny) Schemat Adeline (ang. adaptive linear neuron) (dolny) stworzonego przez Bernarda Widrowa i Marciana E. Teda Hoffa w 1960 roku. Różnią się nie tylko schematem funkcjonalnym ale i metodą uczenia. η w drugim wzorze jest współczynnikiem szybkości uczenia dobieranym eksperymentalnie. X 0 X 1. X n X 0 X 1. X n W 0 W 1. W n V f (v) 1 W i (j + 1) = W i (j) + u(j)x i (j), y(j) u(j) W 0 W 1. W n u f (v) 1 W i (j + 1) = W i (j) + η[u(j) v(j)]x i (j) V u -1-1 v v y y Paweł Paduch Obliczenia Naturalne - Sztuczne sieci neuronowe 21 z 43
Reguła Hebba Symuluje zjawisko stowarzyszania się nuronów. Gdy poprzedni neuron jest aktywowany to następny jest też w tym czasie pobudzony. Realizacje takiego zachowania można osiągnąć, podłączając wyjście poprzedniego neuronu y 1 do wejścia X i następnego, oraz ustawić odpowiednio wysoko jego wagę W i. y1 X 0 X 1.. X ị. X n W 0 W 1. W i. W n y 2 Reguła uczenia Hebba: W i (j + 1) = W i (j) + ηy(j)x i (j) Paweł Paduch Obliczenia Naturalne - Sztuczne sieci neuronowe 22 z 43
Postacie funkcji aktywacji Jak zauważyliśmy modele neuronów różnią się postacią funkcji aktywacji. Heaviside, tzw. tłusta jedynka. Stan 0 lub 1, (progowa unipolarna) funkcja progowa bipolarna, stany -1 lub 1, obcieta funkcja liniowa, funkcja sigmoidalna, funkcja tangesoidalna. Paweł Paduch Obliczenia Naturalne - Sztuczne sieci neuronowe 23 z 43
Obcięta funkcja liniowa 1 f (v) 0.5 2 1 1 2 v 0.5 1 1, jeśli v > 1, f (v) = v, jeśli 1 v 1, 1, jeśli v < 1. Paweł Paduch Obliczenia Naturalne - Sztuczne sieci neuronowe 24 z 43
Sigmoidalna (unipolarna) funkcja aktywacji 1 f (v) 0.8 0.6 0.4 β = 0.5 0.2 β = 1 β = 5 4 2 2 4 v f (v) = 1 1 + e βv Paweł Paduch Obliczenia Naturalne - Sztuczne sieci neuronowe 25 z 43
Tangesoidalna / Sigmoidalna (bipolarna) funkcja aktywacji f (v) = tgh(βv) 1 0.5 4 2 2 4 β = 0.5 0.5 β = 1 β = 5 1 v f (v) = tgh(βv) = 1 eβv 1 + e βv Paweł Paduch Obliczenia Naturalne - Sztuczne sieci neuronowe 26 z 43
Postacie funkcji potencjału postsynaptycznego Zwykle przyjmuje się, że jest to funkcja sumy, choć można też spotkać inne np. w sieciach radialnych czy w systemach neuronowo-rozmytych. Paweł Paduch Obliczenia Naturalne - Sztuczne sieci neuronowe 27 z 43
Rekurencyjne Przegląd Podstawowe struktury sieci neuronowych Przyjmijmy następujące oznaczenia: N (r)(k) k-ty neuron r-tej warstwy, y (r)(k) sygnał wyjściowy danego neuronu, X (r)(k) i W (r)(k) i sygnały wejściowe danego neuronu, wagi wejść danego neuronu, i = 1,...n, n to liczba wejść danego neuronu Paweł Paduch Obliczenia Naturalne - Sztuczne sieci neuronowe 28 z 43
Sieć jednowarstwowa Rekurencyjne Przegląd Najprostszą strukturą sieci neuronowych jest sieć jednowarstwowa. Zwykle sygnały wejściowe trafiają do wszystkich neuronów. Wejście Jedna warstwa Wyjście X 1 N (1)(1) y (1)(1) X 2 N (1)(2) y (1)(2) X 3 N (1)(3) y (1)(3) Paweł Paduch Obliczenia Naturalne - Sztuczne sieci neuronowe 29 z 43
Sieć wielowarstwowa Rekurencyjne Przegląd Drugą strukturą jest sieć wielowarstwowa. Wejście Warstwa wejściowa Warstwa ukryta Warstwa wyjściowa Wyjście X 1 N (1)(1) N (2)(1) N (3)(1) y (3)(1) X 2 N (1)(2) N (2)(2) N (3)(2) y (3)(2) X 3 N (1)(3) N (2)(3) N (3)(3) y (3)(3) Paweł Paduch Obliczenia Naturalne - Sztuczne sieci neuronowe 30 z 43
Sygnał wyjściowy Rekurencyjne Przegląd Można zauwazyć, że y (r 1)(k) = X (r)(p) k dla dowolnego p-tego neuronu r-tej warstwy. Sygnał wyjściowy dla neuronu N (r)(k) uwzględniając powyższe, można wyliczyć za pomocą zależności: y (r)(k) = f ( i ) ( ) W (r)(k) i X (r)(k) i = f W (r)(k) i y (r 1)(i) i Paweł Paduch Obliczenia Naturalne - Sztuczne sieci neuronowe 31 z 43
Wsteczna propagacja błędu Rekurencyjne Przegląd Wsteczną propagację błędu opublikował w 1986 roku David E. Rumelhart i Geoffrey E. Hinton. Obliczamy sygnał wyjściowy dla neuronów ostatniej warstwy L Dla każdego k-tego neuronu ostatniej warstwy obliczamy błąd δ (L)(k) = (u (k) y (L)(k) ) df (v (L)(k) ) dv (L)(k), gdzie u (k) jest wymaganym sygnałem wyjściowym k-tego neuronu L-tej warstwy a f funkcją aktywacji. Paweł Paduch Obliczenia Naturalne - Sztuczne sieci neuronowe 32 z 43
Wsteczna propagacja błędu Rekurencyjne Przegląd Propagujemy wstecz błędy neuronów na warstwy poprzednie: δ (r)(k) = m ( δ (r+1)(m) W (r+1)(m) k ) df (v (r)(k) ) dv (r)(k) gdzie m indeksuje zbiór neuronów warstwy (r + 1) dla każdego neuronu N (r)(k) obliczamy nowe wagi W (r)(k) i = W (r)(k) i +ηδ (r)(i) X (r)(k) i = W (r)(k) i +ηδ (r)(i) y (r 1)(i), gdzie η jest współczynnikiem szybkości uczenia. Paweł Paduch Obliczenia Naturalne - Sztuczne sieci neuronowe 33 z 43
Podstawowe problemy Rekurencyjne Przegląd W procesie uczenia podstawowymi problemami są: określenie warunku zatrzymania uczenia się metoda obliczania błędu uczenia dobór wag inicjalnych manipulowanie współczynnikiem szybkości uczenia wraz z kolejnymi etapami Paweł Paduch Obliczenia Naturalne - Sztuczne sieci neuronowe 34 z 43
Sieć rekurencyjna Hopfielda Rekurencyjne Przegląd Do tej pory prezentowane sieci były jednokierunkowe. w których sygnał wyjściowy może trafiać na wejścia tej samej warstwy lub poprzedniej nazywamy rekurencyjnymi. Charakteryzują się one dużą mocą obliczeniową. Pierwsza taka sieć została zaproponowana przez Johna Hopfielda w 1982 roku. Wyjścia kierowane są na wejścia neuronów i krążą dopóki sygnał wyjściowy nie przestanie się zmieniać. Może być wykożystana jako model pamięci skojarzeniowej. W (1)(1) 1 W (1)(1) 2 N (1)(1) W (1)(1) 3 W (1)(2) 1 X 1 W (1)(2) 2 N (1)(2) W (1)(2) 3 W (1)(3) 1 X 2 W (1)(3) 2 N (1)(3) W (1)(3) 3 X 3 y (1)(1) y (1)(2) y (1)(3) Paweł Paduch Obliczenia Naturalne - Sztuczne sieci neuronowe 35 z 43
Inne sieci rekurencyjne Rekurencyjne Przegląd W 1986 roku Michael I. Jordan zaprezentował model zwany siecią Jordana. Model wielowarstwowy oprócz 3 podstawowych warstw posiada dodatkową warstwę zawierającą tzw. neurony stanu, których wejścia połączone są z wyjściami neuronów warstwy wyjściowej a wyjścia podłączone są do wejść warstwy ukrytej. Elmana (Jeffrrey L. Elman) różnią się tym, że warstwa dodatkowa (kontekstowa) czerpie sygnały nie z warstwy wyjściowej a ukrytej. Paweł Paduch Obliczenia Naturalne - Sztuczne sieci neuronowe 36 z 43
pamięci skojarzeniowej Rekurencyjne Przegląd Zapamiętuje wektory wzorcowe w celu późniejszego rozpoznawania podobnych wektorów przez mechanizm skojarzenia. Sprawdza się dobrze w sytuacjach kiedy informacja jest niepełna lub zniekształcona. dwuwarstwowa, jednokierunkowa, uczona z nauczycielem sieć Hintona. BAM (ang. Bidirectional Associative Memory) - uogólniona sieć Hopfielda na dwuwarstwową sieć rekurencyjną. Sygnały przebiegają w cyklach raz w jedną stronę raz w drugą, aż osiągnie stan stabilny. sieć Hamminga uogólnienie sieci Hopfielda na 3 warstwową strukturę rekurencyjną, tylko warstwa ukryta jest rekurencyjna, opiera się na minimalizowaniu odległości Hamminga wejściowego wektora testującego od wektorów wzorcowych zapamiętanych w sieci. Paweł Paduch Obliczenia Naturalne - Sztuczne sieci neuronowe 37 z 43
samoorganizujące się Rekurencyjne Przegląd SOM - (ang. Self-Organizing Maps). Wykorzystywane w analizie skupisk. na podstawie ciągu uczącego generują dyskretną reprezentację, zwaną mapą (zwykle 2-3 wymiarową). Na mapie znaleźć można skupiska wektorów ciągu uczącego. bez nauczyciela, z konkurencją. Neurony konkurują ze sobą, w trakcie uczenia tylko najlepszy neuron wygrywa inne wyjścia są zerowane. Mamy dwie metody korekty wag. WTA (ang. Winer Takes All) - wagi koryguje się tylko w zwycięskim neuronie WTM (ang. Winner Takes Most) - wagi koryguje się nie tylko u zwycięzcy ale i u sąsiadów. Paweł Paduch Obliczenia Naturalne - Sztuczne sieci neuronowe 38 z 43
ART Rekurencyjne Przegląd ART (ang. Adaptive Resonanse Theory), stosowane do rozpoznawania obrazów. Zwykle gdy dodajemy nowe wzorce uczące, trzeba cały proces uczenia przeprowadzić od początku, tak by sieć nie osłabiła wyuczonych starych wzorców. W sieci ART nowy wzorzec jest dołączany do już wyuczonego jeżeli jest bardzo podobny, jeżeli nie tworzona jest nowa klasa wzorców. To jak bardzo wzorce mają być podobne w swoich klasach zależy od parametru sterującego stopniem uogólnienia. Paweł Paduch Obliczenia Naturalne - Sztuczne sieci neuronowe 39 z 43
Probabilistyczne Rekurencyjne Przegląd Probabilistyczne sieci neuronowe klasyfikują wzorce na podstawie funkcji gęstości prawdopodobieństwa dla poszczególnych klas. Jednym z pierwszych modeli, który możemy potraktować jako probabilistyczny jest maszyna Boltzmanna. radialnych funkcji bazowych (RBF). Zamiast jednej wspólnej funkcji aktywacji użyte są dla każdego neuronu różne tzw. radialne funkcje bazowe np. funkcje Gausa, wielomianowa, Hardy ego. Składają się z dwóch warstw, warstwa neuronów wyjściowych i radialnych. Paweł Paduch Obliczenia Naturalne - Sztuczne sieci neuronowe 40 z 43
Zalety Wady Nie wymagają programowania, uczą się same. Są odporne na uszkodzenia, w przypadku utraty kilku połączeń nadal może działać. Posiada zdolności do uogólnienia. Są mało precyzyjne, operuje pojęciami, wysoki, niski, duży, mały. Nie rozumują wieloetapowo, kiedy trzeba wyciągać wnioski z poprzedniego rozumowania i z tych wniosków wyciągać kolejne. Takie działanie wymaga zastosowania kilku sieci. Paweł Paduch Obliczenia Naturalne - Sztuczne sieci neuronowe 41 z 43
Pytania? Paweł Paduch Obliczenia Naturalne - Sztuczne sieci neuronowe 42 z 43
koniec Dziękuję Państwu za uwagę. Paweł Paduch Obliczenia Naturalne - Sztuczne sieci neuronowe 43 z 43