Budowa i własności sztucznych neuronów i sieci
Uwaga: Slajdy w tej prezentacji są intensywnie animowane, więc na statycznych kopiach mogą być mało czytelne (elementy pokazywane podczas animacji sekwencyjnie na statycznej kopii są nałożone jedne na drugie!)
Droga postępowania
Jak zbudowane są sztuczne neurony i sieci? A) B) w x x 1 x 2 w 1 w 2 g(x, w) x f(x) y X 1 X 2 w w x w x Y 1 x 3 w 3....... x n w n X 3....... w x w x Y 2 x w X n w w x w w x
Elementy, z których buduje się neuronowy model
Budowa wiernego modelu pojedynczego neuronu (komórki Purkinjego)
Budowa wiernego modelu nawet pojedynczego neuronu (komórki Purkinjego) jest bardzo kosztowna (de Schutter 05) Do zbudowania modelu użyto: 1600 kompartmentów 8021 modeli kanałów jonowych 10 typów różnych złożonych opisów matematycznych kanałów zależnych od napięcia 32000 równań różniczkowych! 19200 parametrów do oszacowania przy dostrajaniu modelu Opisu morfologii zrekonstruowanej za pomocą mikroskopu
Obrazy wyników symulacji komputerowej modelu komórki Purkinjego uzyskane w badaniach de Schuttera: u góry aktywność elektryczna symulowanej komórki, u dołu zjawiska biochemiczne (przepływ jonów wapnia
Neuron - podstawowy element sieci x 1 x 2 x n w 1 w 2 s g w, x i i w n i 1,, n... Zadania Jak zróżnicować y sygnały wejściowe???? f s y agregacja danych wejściowych obliczenie wartości funkcji aktywacji
Procesy składania sygnałów w biologicznym neuronie
Kwestia wag różnicujących wejścia do neuronu informatyka + 12
Załóżmy, że oceniany kwiat ma ładny kolor, ale brzydki zapach. neuron wyśle na wyjściu sygnał, że kwiat mu się podoba do sygnału wejściowego zapach przypiszemy małą wagę a do sygnału kolor wagę dużą informatyka + 13
Przy przeciwnym rozłożeniu wag wynik jest odwrotny neuron wyśle na wyjściu sygnał, że kwiat mu się nie podoba informatyka + 14
Wagi mają przemożny wpływ na zachowanie neuronów! Przy tym samym zestawie sygnałów wejściowych mamy dwie całkiem różne reakcje neuronu! informatyka + 15
Wniosek: to wagi decydują o zachowaniu neuronu i całej sieci!
Przykład sieci mającej budowę opartą na próbie odwzorowania rzeczywistego mechanizmu neurofizjologicznego
Schemat odruchu warunkowego Pawłowa Reakcja: wydzielanie śliny
Wracamy do modelu neuronu używanego w praktycznie stosowanych sieciach neuronowych
Własności neuronu determinują: przyjęta agregacja danych wejściowych oraz założona funkcja wyjścia Agregacja liniowa s n w i x i i 1 Neuron liniowy x 1 w 1 x 2 x n w 2 s g w, x i i w i 1,, n n... y = s y Tożsamościowa funkcja aktywacji
W przypadku neuronu liniowego jego zachowanie daje się łatwo zinterpretować
Z neuronem liniowym (i z innymi neuronami budowanymi na jego bazie) związana jest jeszcze sprawa wyrazu wolnego w formule agregacji Czysta agregacja liniowa: x 0 1 w 0 s n w i x i i 1 ma wadę, polegającą na tym, że charakterystyka neuronu musi tu przechodzić przez początek układu x 1 x 2 x n w 1 s g w, x i i w n i 1,, n w 2... y = s To nadal jest neuron liniowy! y Żeby zachować liniową postać wzoru opisującego neuron dodaje się dodatkowe pseudowejście nazywane BIAS, które zawsze dostarcza sygnał 1 Bogatsze możliwości daje agregacja afiniczna (z wyrazem wolnym w formule): Wtedy agregacja jest nadal liniowa: s n i 1 n s i 0 w x i i w i x i w 0
W strukturze sieci neuronowej czasem zaznacza się bias jako osobne wejście
W przypadku neuronu nieliniowego nie jest tak łatwo, ponieważ zagregowany (w taki lub inny sposób) sygnał wejściowy może być przetworzony przy użyciu funkcji nieliniowej o teoretycznie dowolnym kształcie.
Własności neuronu determinują: przyjęta agregacja danych wejściowych oraz założona funkcja wyjścia n ---------------- Agregacja liniowa ---------- s w i x -------------- i neuron radialny liniowy i 1 neuron nieliniowy x 1 w 1 x 2 x n w 2 s g w, x i i w i 1,, n n... -------- y = s y f s y s n i 1 2 w x i i Agregacja radialna
Funkcja przejścia wiąże zagregowane wejścia do neuronu z jego sygnałem wyjściowym
Najstarsze prace dotyczące sieci neuronowych wykorzystywały jako charakterystykę neuronu funkcję progową ( wszystko albo nic ). Potem wprowadzono obszar monotonicznej zależności wejścia od wyjścia, wzbogacając możliwości obliczeniowe sieci.
Warto odróżnić dwie nieliniowe charakterystyki neuronu: unipolarną (po lewej) i bipolarną (po prawej)
Różne przykładowe formuły matematyczne, wykorzystywane jako funkcje przejścia
y Funkcje aktywacji neuronu może być dowolna, ale najczęściej stosowane są niżej podane kształty. 1,5 1 0,5 0 S x -2,9-2,7-2,5-2,3-2,1-1,9-1,7-1,5-1,3-1,1-0,9-0,7-0,5-0,3-0,1 0,1 0,3 0,5 0,7 0,9 1,1 1,3 1,5 1,7 1,9 2,1 2,3 2,5 2,7 2,9 Liniowa -0,5 Sigmoidalna -1 Tangensoidalna -1,5 Gaussa
Wykres sigmoidy w zależności od parametru β β=0,5 β=1 β=2 1 y 0,8 0,6 0,4 0,2 S 0-10 -5 0 5 10 f ( s) 1 1 exp( s)
W wielowymiarowych przestrzeniach charakterystyka neuronu ma formę urwiska sigmoidalnego
jakość działania sieci Dobór współczynnika β ma wpływ na jakość działania sieci! y :=1/(1+exp(-0.5*x)) 1.1 0.9 0.7 0.5 0.3 0.1-0.1-10 -5 0 5 10 β
Aproksymacja sigmoidy przy realizacji sprzętowej
Inne przybliżenie sigmoidy funkcjami sklejanymi
Funkcja tangens hiperboliczny ma praktycznie taki sam kształt, tylko jej wartości zmieniają się od -1 do +1, a nie od 0 do +1 jak w sigmoidzie +1-1 f ( s) tanh( s) exp( s) exp( s) exp( s) exp( s)
Porównanie: β=0,5 β=1 β=2 1 y 0,8 0,6 0,4 0,2 S 0 0-5 0 5 10 Sigmoida Funkcja tangens hiperboliczny f ( s) 1 1 exp( s) f ( s) tanh( s) exp( s) exp( s) exp( s) exp( s)
Nieliniowe funkcje aktywacji też bywają różne inne, niż omówione wyżej:
Dobierając współczynniki wagowe wejść neuronu można wpływać na kształt jego nieliniowej charakterystyki!
Podsumowując do typowego użytkowania mamy do dyspozycji głównie trzy typy neuronów:
Neuron liniowy x 0 1 w 0 x 1 x 2 w 1 w 2... n s i 0 w i x i y = s y x n w n
Najbardziej popularny neuron nieliniowy sigmoidalny, nadający się do budowy sieci MLP x 1 w 1 1.1 y :=1/(1+exp(-0.5*x)) x 2 x n w 2... w n s n i 1 w i x i 0.9 0.7 0.5 0.3 0.1 y -0.1-10 -5 0 5 10
Neuron radialny używany w sieci RBF i GRNN x 1 w 1 x 2 x n w 2... w n s n i 1 2 w x i i y
Sposób separacji przestrzeni danych przez: (a) neuron sigmoidalny, (b) neuron radialny
Porównanie zasady działania perceptronu wielowarstwowego (MLP) i sieci radialnej (RBF)
To samo pokazane w inny sposób
Możliwości uzyskiwania różnych kształtów i rozmiarów obszarów decyzyjnych przy pomocy neuronów RBF
Neuron radialny używany w sieci Kohonena x 1 w 1 x 2 x n w 2... w n s n i 1 2 w x i i y
Sztuczny neuron jest więc w sumie dosyć prostą strukturą, dzięki czemu stosunkowo łatwo jest stworzyć sieć takich elementów Sygnały wejściowe x x x 1 2 n. w 1 w 2 w n Zmienne "wagi" Sygnał Synał wyjściowy y
Jak łączyć neurony, żeby wyszła dobra sieć?
Obserwacja połączeń w małych skrawkach mózgu pozwala lokalizować połączenia i ustalać ich liczbę
Jednak z tej wiedzy z reguły się nie korzysta przy ustalaniu struktury sztucznych sieci neuronowych
Niektórzy autorzy silą się na tworzenie sieci o bardzo oryginalnej architekturze
Bywały próby budowania sieci o architekturze ściśle dopasowanej do natury rozwiązywaneg o zadania (tutaj pokazana struktura sieci przeznaczona była do rozpoznawania kodów pocztowych na kopertach)
Nie zdało to jednak egzaminu i obecnie przy budowie sztucznych sieci neuronowych najczęściej przyjmuje się arbitralnie, że ich budowa jest złożona z warstw, podobnie jak na przykład struktury neuronowe zlokalizowane w siatkówce oka
Również w korze mózgowej daje się zaobserwować warstwowa budowa Kora wzrokowa Połączenia do i od poszczególnych warstw w mózgu
Warstwowość kory wzrokowej widać lepiej przy wyborze małych jej fragmentów
Trzeba jednak dodać, że sieci neuronowe w mózgu miewają też znacznie bardziej skomplikowaną strukturę
Przykład: schemat kory móżdżku
Schemat sztucznej sieci neuronowej (uproszczonej) Warstwa wejściowa Warstwa ukryta (jedna lub dwie) x 1 Warstwa wyjściowa y x 2 Działanie sieci zależy od: przyjętego modelu neuronu, topologii (struktury) sieci, wartości parametrów neuronu, ustalanych w wyniku uczenia
Prawdziwe sieci neuronowe mają zwykle bardzo wiele wejść, mnóstwo neuronów ukrytych oraz najczęściej kilka wyjść. Tymczasem na prezentowanych tu rysunkach chętnie stosujemy schemat, w którym mamy zaledwie dwa wejścia, jedno wyjście oraz niewiele neuronów ukrytych. x 1 y x 2 Dlaczego? sygnał na wejściu nr 2 Bo zbiór sygnałów wejściowych dla sieci o dwóch wejściach można łatwo pokazać w postaci punktu na płaszczyźnie, a wartość sygnału na wyjściu sieci można sygnalizować na przykład kolorem punktu min max sygnał na wejściu nr 1
Przykłady połączeń międzyneuronowych występujących w sieciach neuronowych. (m) - połączenia międzywarstwowe, (w) - połączenia wewnątrzwarstwowe, (n) - połączenia nadwarstwowe, (s) samosprzężenia, (r) - połączenia rekurencyjne s m m nr n m m m w n w s m n r
W strukturze sieci istotne jest to, że każdy neuron warstwy wcześniejszej komunikuje się z każdym neuronem warstwy następnej natomiast neurony w warstwach nie komunikują się pomiędzy sobą
W dużej sieci trudno jest przedstawić i prześledzić wszystkie połączenia
Warstw ukrytych może być wiele
Skala możliwości sieci zależy od liczby warstw Struktura sieci nieliniowej Typ obszaru decyzyjnego Przykładowy kształt obszaru na płaszczyźnie sygnałów wejściowych Zdolność do rozwiązania zadania klasyfikacji X 1 X 1 Trójwarstwowa półprzestrzeń ograniczona przez hiperpłaszczyznę X 2 X 1 X 2 X 1 X 1 Jednowarstwowa Dwuwarstwowa wypukłe oraz jednospójne ograniczone hiperpłaszczyznami simpleksy dowolny obszar o złożoności ograniczonej X 2 X 1 wyłącznie liczbą neuronów X 2 X 2 X 2
Jednak sieci z bardziej licznymi warstwami ukrytymi nie są szczególnie godne polecenia!
Poglądowe działanie sieci neuronowej
Początek działania sieci neuronowej wiąże się z pojawieniem się na jej wejściach sygnałów (czerwone kropki) niosących nowe zadanie do rozwiązania
Sygnały wejściowe (nie przetworzone w żaden sposób w warstwie wejściowej) są rozsyłane do wszystkich neuronów warstwy ukrytej
Po przetworzeniu sygnałów przez neurony warstwy ukrytej powstają sygnały pośrednie, kierowane do neuronów warstwy wyjściowej
Neurony warstwy wyjściowej korzystają ze wstępnie opracowanej informacji pochodzącej z warstwy ukrytej i obliczają końcowe wyniki, będące rozwiązaniem postawionego zadania
Przykładowy rozkład pobudzeń neuronów w sieci Typ : MLP 11:11-11-1:1, Ind. = 913 Jakość ucz. = 0,785276, Jakość wal. = 0,777778, Jakość test. = 0,777778
Problemy rozwiązywalne i nie rozwiązywalne z pomocą jednowarstwowej sieci neuronowej
Możliwości intelektualne sieci z większą lub mniejszą liczbą warstw ilustruje znany schemat Liebmanna
Rola warstwy ukrytej przykładowy problem żółty czarny Na wejście sieci podawane są współrzędne punktów. Sieć ma się nauczyć, które punkty są żółte, a które czarne?
Rola warstwy ukrytej 1 2 6 3 4 1 2 4 5 5 6 7 7 8 8 3
Przykładowe rzeczywiste zachowania sieci jedno-, dwu- oraz trójwarstwowej
Niektóre zadania rozpoznawania potrafią być naprawdę paskudne!
Przypomnijmy, że obok różnorodności wynikającej z różnego doboru liczby warstw jest jeszcze różnorodność wynikająca z faktu istnienia w sieci neuronów różnych charakterystykach
1.1 0.9 0.7 0.5 0.3 0.1 y :=1/(1+exp(-0.5*x)) -0.1-10 -5 0 5 10 1.1 0.9 0.7 0.5 0.3 0.1 y :=1/(1+exp(-0.5*x)) -0.1-10 -5 0 5 10 1.1 0.9 0.7 0.5 0.3 0.1 y :=1/(1+exp(-0.5*x)) -0.1-10 -5 0 5 10 1.1 0.9 0.7 0.5 0.3 0.1 y :=1/(1+exp(-0.5*x)) -0.1-10 -5 0 5 10 1.1 0.9 0.7 0.5 0.3 0.1 y :=1/(1+exp(-0.5*x)) -0.1-10 -5 0 5 10 1.1 0.9 0.7 0.5 0.3 0.1 y :=1/(1+exp(-0.5*x)) -0.1-10 -5 0 5 10 1.1 0.9 0.7 0.5 0.3 0.1 y :=1/(1+exp(-0.5*x)) -0.1-10 -5 0 5 10 Najbardziej typowa struktura: sieć MLP Podstawowe właściwości: wiele wejść i wiele wyjść jedna (rzadziej dwie) warstwy ukryte nieliniowe charakterystyki neuronów ukrytych w formie sigmoid W warstwie wyjściowej neurony mogą być liniowe lub także mogą mieć charakterystyki sigmoidalne Uczenie najczęściej przeprowadzane metodą wstecznej propagacji błędów
Często w różnych warstwach sieci neurony mają różne charakterystyki, zarówno nieliniowe jak i liniowe
Sieć typu RBF w zastosowaniu do klasyfikacji (wykrywa i sygnalizuje skupiska danych wejściowych)
Dwie filozofie tworzenia sieci RBF
Jak uczyć taką sieć?
Elementy zbioru uczącego dzielone są na grupy elementów podobnych (metodą k-średnich, która będzie zaraz opisana). W charakterze wag neuronów radialnych stosowane są środki ciężkości każdej wyróżnionej grupy. Przestrzeń sygnałów wejściowych oraz wag
Określenie wag neuronów radialnych metodą K-średnich Dla n próbek wejściowych x... 0, x x 1 n 1 metodę k-means wykorzystuje się do utworzenia k klastrów, przy czym dla każdego z nich zostanie wyznaczony element modalny, reprezentujący umowny środek całej grupy w przestrzeni cech. Metoda k-means działa w sposób iteracyjny. W celu wyszukania najlepszych lokalizacji dla środkowych punktów każdego z klastrów na początek przyjmuje się lokalizacji przypadkowe, a potem się je doskonali, tak, aby optymalnie dopasować każdy wzorzec do klastra danych wejściowych, którego środek jest najbliżej wzorca.
Przedstawimy działanie tego algorytmu w pięciu krokach
1) Ustalenie środków poszczególnych klas za pomocą pierwotnych wartości m 0, m1,..., m K 1. Na początku są to wektory Krok 1 przypadkowo rozrzucone w przestrzeni sygnałów wejściowych. 2) Wyznaczenie odległości między wszystkimi próbkami x 0, x1,..., x n 1 ciągu, a wszystkimi środkami klas m 0, m1,..., m K 1, Krok 2 d x, m ) x m ( x m 2 )... ( x m 2, dla i=0,...,n-1 oraz j=0,...,k-1 2 1 ij ( i j i j i1 j1 ip jp ) 3) Połączenie w jedną grupę wszystkich tych sygnałów wejściowych x i spośród próbek x 0, x1... x n 1, których odległość od środka m j klasy j jest mniejsza od odległości tychże Krok 3 sygnałów wejściowych x i od środków m l innych klas (l j) w celu utworzenia klasy j. Czynność ta wykonywania jest dla wszystkich numerów klas j=0,...,k-1. 4) Znalezienie nowych środków klas, poprzez wyszukanie wśród sygnałów x i tej próbki, której współrzędne są najbliższe wartościom średnim współrzędnych wyznaczonym dla wszystkich sygnałów wejściowych, które zostały ulokowane w klasie j. (W wariancie metody pozwalającym na Krok to, 4 żeby wzorzec klasy mógł być obiektem abstrakcyjnym, nie należącym do zbioru próbek x 0, x1,..., x n 1 środkiem klasy j staje się po prostu punkt, którego współrzędne są wartościami średnimi współrzędnych elementów x i przypisanych do tej klasy.) 5) Jeśli w ciągu ostatniej iteracji żaden z elementów x i nie zmienił swojej klasy należy zakończyć proces klasteringu, w przeciwnym Krok 5 przypadku trzeba wrócić do punktu 3.
Punktem wyjścia do algorytmu k średnich jest zbiór danych, o których sądzimy, że tworzą k skupisk. Na rysunku k = 3. W losowy sposób wybieramy k punktów (rozrzuconych) i nazywamy te punkty prowizorycznymi centrami budowanych skupisk. Na rysunku punkty wybrane jako centra są oznaczone znakiem X, a skupiska są nazwane red, green oraz blue
Na podstawie odległości od wybranych centrów skupisk z przypisanymi im nazwami klas zalicza się wszystkie punkty do odpowiednich klas. Każdy punkt wejściowy jest zaliczony do tej klasy której centrum znajduje się najbliżej ze wszystkich centrów.
Teraz dla każdej z klas wyznacza się nowe centrum na podstawie średniej współrzędnych wszystkich punktów przypisanych do danej klasy
Dokonuje się ponownego przypisania punktów do poszczególnych klas i ponownie wyznacza się w poszczególnych klasach średnie. Czynności powyższe powtarza się tak długo, jak długo chociaż jeden punkt zmieni swoją przynależność do klasy. Po przerwaniu algorytmu ostatnio użyte średnie wskazują centra klas.
Odmiennie działającym elementem używanym w niektórych typach jest tzw. neuron radialny (wykorzystywany w sieciach RBF) x 1 1 t 1 r 1 f... f y x-t x n t n r n Agregacja sygnałów wejściowych w tym typie neuronu polega na obliczaniu odległości pomiędzy obecnym wektorem wejściowym X a ustalonym podczas uczenia centroidem pewnego podzbioru T Również nieliniowa funkcja przejścia w tych neuronach ma odmienną formę - dzwonu gaussoidy - czyli jest funkcją niemonotoniczną.