580 likes | 831 Views
Wstęp do Sieci Neuronowych. Inteligentne Systemy Autonomiczne. W oparciu o wykłady Prof. Geoffrey Hintona University of Toronto i Dr Kazimierza Duzinkiewicza, Politechnika Gdanska. Janusz A. Starzyk Wyzsza Szkola Informatyki i Zarzadzania w Rzeszowie. Czym są Sieci Neuronowe?.
E N D
Wstęp do Sieci Neuronowych Inteligentne Systemy Autonomiczne W oparciu o wykłady Prof. Geoffrey Hintona University of Toronto i Dr Kazimierza Duzinkiewicza, Politechnika Gdanska Janusz A. Starzyk Wyzsza Szkola Informatyki i Zarzadzania w Rzeszowie
Czym są Sieci Neuronowe? • Trudno jest napisać program który mógłby rozpoznawać twarze. • Nie wiemy jaki program napisać bo nie wiemy jak to się robi. • Nawet jak mamy pomyśl na taki program to program ten może być okropnie skomplikowany. • Zamiast pisać taki program zbieramy dużo próbek które reprezentują poprawny wynik dla danego sygnału wejściowego • Sieć neuronowa przetworzy te próbki i otrzyma funkcje przekształcające obraz wejściowy na pożądany sygnał wyjściowy. • Jeśli zrobimy to poprawnie to sieć neuronowa nie tylko pokaże poprawny wynik dla próbek użytych do jej wytrenowania ale także dla nowych próbek.
Przykłady zastosowań sieci neuronowych • Rozpoznawanie kształtów: • Rozpoznawanie twarzy albo wyrazu twarzy • Rozpoznawanie pisma ręcznego albo mowy • Rozpoznawanie nieprawidłowości: • Niezwykle operacje na kontach kart kredytowych • Nienormalne odczyty mierników w elektrowni atomowej • Przewidywanie: • Przyszłe ceny akcji giełdowych • Przyszłe ceny na rynkach walutowych
Cele rozwoju sieci neuronowych • Zrozumienie jak działa mozg • Mózg jest dużym skomplikowanym systemem neuronów i umiera jak się go narusza • Zrozumienie nowego stylu obliczeń • Zainspirowanego przez neurony i ich adaptacyjne połączenia • Bardzo różniącego się od obliczeń sekwencyjnych • Sprawny w problemach które mozg rozwiązuje sprawnie (e.g. widzenie) • Niesprawny w problemach trudnych dla mózgu (e.g. 23 x 71) • Zastosowania praktyczne przy użyciu nowych algorytmów • Algorytmy uczące się mogą być przydatne nawet jak nie mają nic wspólnego z zasadami pracy mózgu
axon body dendritic tree Typowy neuron kory mózgowej • Struktura z grubsza: • Neuron ma jeden akson z rozgałęzieniami • Ma też drzewko dendrytów które otrzymują sygnały wejścia od innych neuronów • Neuron ma zwykle 103 – 104 dendrytów • Axon typowo łączy się z dendrytami innych neuronów poprzez synapsy • Ciąg impulsów wytworzony przez neuron jest propagowany bez osłabiania wzdłuż drzewka aksonu • Generowanie impulsów: • Wzgórek aksonowy wytwarza impulsy wyjściowe gdy neuron otrzymał dostateczny ładunek żeby zdepolaryzować błonę komórki
Typowy neuron kory mózgowej • Na końcach rozgałęzień aksonu znajdują się synapsy. • Synapsy łączą aksony neuronów z wypustkami wejściowymi dendrytów. • Akson typowego neuronu może mieć kilka tysięcy synaps. • Synapsy mogą zwiększać lub zmniejszać potencjał dendrytu– mieć naturę pobudzającą lub tłumiącą • Gromadzenie informacji w neuronie zależy od jego połączeń synaptycznych – od ich układu i sił
Synapsy • Gdy impuls nerwowy dotrze do zakończenia aksonu powoduje migrację pęcherzyków presynaptycznych uwalniających mediatory • Przykłady mediatorów: adrenalina, noradrenalina, acetylocholina • Mediator wypełnia szczelinę synaptyczną i łączy się z receptorami na błonie postsynaptycznej. • Otwiera to kanały dla jonów sodu i depolaryzację błony postsynaptycznej. • Sprawność synaps może się zmienić • zmieniając ilość pęcherzyków presynaptycznych • zmieniając ilość cząsteczek mediatorów. • Synapsy sa powolne ale mają przewagę nad RAM • Są bardzo małe • Adaptują sie przez lokalne oddziaływania (ale jak?)
Synapsy • Połączenie synaptyczne: • 1-mitochondrium • 2-pęcherzyki presynaptyczne z neurotransmiterem • 3-kanał wapniowy, • 4-szczelina synaptyczna • 5-neuroreceptor • 8- receptor zwrotnego wychwytu mediatora
Sieci neuronów • Rozbieżność • Pojedynczy neuron pobudza kilka neuronów wyjścia • Przykład: sygnały sensoryczne zbiegające się w rożnych rejonach mózgu • Zbieżność • Kilka neuronów pobudza pojedynczy neuron • Przykład: pojedynczy neuron ruchu połączony z włóknem tkanki mięśniowej otrzymuje pobudzenie z rożnych ścieżek wychodzących z rożnych rejonów mózgu.
Sieci neuronów • Obwody powtarzające • Pobudzenie komórki przed synapsowej wzbudza obwód neuronów wysyłający serie impulsów • Przykład: skoordynowana aktywność mięsni • Obwody równoległe • Pojedynczy neuron pobudza wiele neuronów o zbieżnym wyjściu • W wyniku neuron postsynaptyczny otrzymuje wiele pobudzeń
Jak działa mózg? • Każdy neuron otrzymuje sygnały od innych neuronów • Neurony porozumiewają się poprzez impulsy • Ważna jest synchronizacja impulsów • Wpływ każdego sygnału wejściowego neuronu jest kontrolowany przez wagi synaptyczne • Wagi mogą być dodatnie lub ujemne • Wagi synaptyczne adaptują się i cała sieć uczy się użytecznego działania • Rozpoznawania obrazów, rozumienia języka, planowania, kontroli ciała • Mozg ma około 1010-1011 neuronów z 103-104 wag wejścia każdy • Olbrzymia ilość wag może szybko wpłynąć na wynik obliczeń. Znacznie wyższa ilość obliczeń niż w Pentium.
Modułowość i mózg • Rożne neurony kory mózgowej określają rożne rzeczy. • Lokalne uszkodzenia mózgu mają specyficzne efekty • Specyficzne zadania zwiększają dopływ krwi do specyficznych części mózgu. • Jednak kora mózgowa wygląda wszędzie tak samo. • Wczesne uszkodzenia mózgu powodują przemieszczenie funkcji w inne rejony • Kora mózgowa ma struktury ogólnego przeznaczenia które specjalizują się w odpowiedzi na doświadczenia. • Daje to szybkie równolegle przetwarzanie i plastyczność • Konwencjonalne komputery sa plastyczne przez software ale wymaga to bardzo szybkiego centralnego procesora do wykonania dużej ilości obliczeń.
x1 w1 x2 w2 e y wn Próg xn Uproszczony model neuronu Do neuronu dociera pewna liczba sygnałów wejściowych. • Każdy sygnał jest wprowadzany do neuronu przez połączenie o pewnej wadze • wagi odpowiadają efektywności synapsy w neuronie biologicznym. Każdy neuron posiada wartość progową, określającą jak silne musi być pobudzenie, aby doszło do wzbudzenia. • W neuronie obliczana jest ważona suma wartości sygnałów wejściowych przemnażanych przez odpowiednie współczynniki wagowe, a następnie odejmowana jest od niej wartość progowa. Sygnał reprezentujący łączne pobudzenie neuronu przekształcany jest przez ustaloną funkcję aktywacji. • Wartość obliczona przez funkcję aktywacji jest sygnałem wyjściowym neuronu.
Co to są sieci neuronowe? • Definicja w oparciu o [Cichocki A. & Umbehauen R. Neural Networks for Optimization and Signal Processing, 1994] i [Tadeusiewicz R.Sieci neuronowe,1993] • Sztuczna sieć neuronowa jest układem przetwarzania sygnałów złożonym z dużej liczby działających równolegle elementów przetwarzających, nazywanych sztucznymi neuronami. • Neurony dysponują lokalną pamięcią o małej pojemności. • Topologia połączeń oraz ich wagi są modyfikowane w trakcie procesu uczenia. • Funkcja sieci neuronowej jest zdeterminowana przez jej strukturę, siłę powiązań i rodzaj przetwarzania realizowanego w neuronach.
Cechy charakteryzujące sieć neuronową Sieć neuronowa jest charakteryzowana przez: 1. funkcje według których neuron reaguje na docierające do niego pobudzenia, nazywane funkcjami pobudzania (propagacji) i funkcjami aktywacji; 2. strukturę połączeń pomiędzy neuronami, nazywanąarchitekturą sieci; 3. metodę określania wag tych połączeń, nazywanąalgorytmem uczenia.
optymalizacja utylizacji odpadów, diagnostyka układów elektronicznych, dobór surowców, badania psychiatryczne, selekcja celów śledztwa w kryminalistyce, prognozy giełdowe, prognozowanie sprzedaży, dobór pracowników, poszukiwania ropy naftowej, interpretacja badań biologicznych, sterowanie procesów przemysłowych, prognozy cen, typowania na wyścigach konnych, analiza badań medycznych, analiza problemów produkcyjnych, planowanie remontów maszyn, prognozowanie postępów w nauce, optymalizacja działalności handlowej, analiza spektralna, Aktualne kierunki badań i zastosowań sieci neuronowych
Krótki przegląd zastosowań technicznych zagadnienia rozpoznawania, a zwłaszcza rozpoznawania kontekstowego i inwariantnego (w sensie niezależności od typowych transformacji), zadania klasyfikacji oraz analizy obrazów i ich przetwarzania, Około 70% prac dotyczących sieci neuronowych odwołuje się bezpośrednio lub pośrednio do zagadnień rozpoznawania obrazów "klasyczne" zadania przetwarzania sygnałów, takie jak konwersje, filtracje i aproksymacje funkcji oraz inne odwzorowania i transformacje (zwłaszcza transformacja Fouriera),
Krótki przegląd zastosowań technicznych zadania z zakresu robotyki, automatyki oraz teorii sterowania (zwłaszcza sterowania adaptacyjnego w układach samouczących się), w tym węższe problemy jak: identyfikacja systemów dynamicznych, sterowanie ruchem pojedynczego obiektu (najczęściej robota) lub ruchem zbiorowości pojazdów, percepcja ruchu i jego planowanie, koordynacja sensomotoryczna, Zastosowanie sieci neuronowych jako elementów sterujących wypada często zdecydowanie korzystniej niż stosowanie tradycyjnych urządzeń sterujących budowa pamięci asocjacyjnych, rozproszonych, sekwencyjnych i samoorganizujących się algorytmy automatycznego uczenia się maszyn oraz uogólniania nabywanych doświadczeń
Wybrane zastosowania nietechniczne • predykcja; np. ocena zdolności kredytowej przedsiębiorstwa, prognozy rozwoju przedsiębiorstwa • prognozy zmian rynku i inwestycji giełdowych • sterowanie obiektów ekonomicznych na podstawie przewidywania (predykcji) ich zachowań w odpowiedzi na określone sterowania, klasyfikacja i rozpoznawanie podmiotów gospodarczych, analiza i kojarzenie danych,
Rozpatrzmy dwuwarstwowa siec neuronowa. Neurony w górnej warstwie reprezentują znane kształty. Neurony w dolnej warstwie reprezentują intensywność pikseli. Piksel glosuje tylko wtedy gdy ma na sobie tusz. Każdy zatuszowany piksel może głosować na kilka rożnych kształtów. Kształt który uzyska najwięcej głosów wygrywa. Prosty sposób rozpoznawania pisma ręcznego 0 1 2 3 4 5 6 7 8 9
Jak nauczyć się wag połączeń? 1 2 3 4 5 6 7 8 9 0 Obraz wejściowy Wprowadź do sieci obraz wejściowy i powiększ wagi od aktywnych pikseli do wyjścia odpowiedniej klasy. Potem zmniejsz wagi od aktywnych pikseli do wyjść reprezentujących inne klasy.
1 2 3 4 5 6 7 8 9 0 Obraz wejsciowy Wprowadź do sieci obraz wejściowy i powiększ wagi od aktywnych pikseli do wyjścia odpowiedniej klasy. Potem zmniejsz wagi od aktywnych pikseli do wyjść reprezentujących inne klasy.
1 2 3 4 5 6 7 8 9 0 Obraz wejściowy Wprowadź do sieci obraz wejściowy i powiększ wagi od aktywnych pikseli do wyjścia odpowiedniej klasy. Potem zmniejsz wagi od aktywnych pikseli do wyjść reprezentujących inne klasy.
1 2 3 4 5 6 7 8 9 0 Obraz wejściowy Wprowadź do sieci obraz wejściowy i powiększ wagi od aktywnych pikseli do wyjścia odpowiedniej klasy. Potem zmniejsz wagi od aktywnych pikseli do wyjść reprezentujących inne klasy.
1 2 3 4 5 6 7 8 9 0 Obraz wejściowy Wprowadź do sieci obraz wejściowy i powiększ wagi od aktywnych pikseli do wyjścia odpowiedniej klasy. Potem zmniejsz wagi od aktywnych pikseli do wyjść reprezentujących inne klasy.
1 2 3 4 5 6 7 8 9 0 Obraz wejściowy Wprowadź do sieci obraz wejściowy i powiększ wagi od aktywnych pikseli do wyjścia odpowiedniej klasy. Potem zmniejsz wagi od aktywnych pikseli do wyjść reprezentujących inne klasy.
Wyuczone wagi połączeń 1 2 3 4 5 6 7 8 9 0 Obraz wejściowy Szczegóły algorytmu będą podane później
Dwu warstwowa sieć z jednym zwycięskim neuronem w górnej warstwie jest równoważna sztywnej formie dla każdego kształtu. Zwycięża forma która ma największa część wspólną z sygnałem wejścia. Zmiany kształtu są zbyt skomplikowane by je opisać poprzez proste porównanie całego kształtu z formą. Żeby wychwycić wszystkie dopuszczalne zmiany kształtu musimy nauczyć się charakterystycznych cech które go opisują. Dlaczego prosty system nie działa
Przykłady ręcznie napisanych cyfr które muszą być rozpoznane przy ich pierwszej prezentacji
Model pojedynczego neuronu Rozróżnimy dwa rodzaje neuronów: neurony statyczne, neurony dynamiczne, Model neuronu statycznego
wewnątrz komórki Różnica w gęstości jonów wytwarza różnicę u potencjału elektrycznego nazywanegopotencjałemNernsta Ka Na na zewnątrz Kanały jonowe Pompa jonowa Koncentracja jonów potasu jest wyższa wewnątrz komórki (400 mM/l) niż w płynie międzykomórkowym (20 mM/l). Równanie Nernsta ze stała Boltzmanna k = 1.4×10-23 J/K daje EK - 77mV w temperaturze pokojowej. Dlatego potencjał odwrócenia jonów K+ jest ujemny. u = ln Dynamiczny Model Hodgkin-Huxley Model jest nazywany neuronem pulsującym (spiking neuron)
wewnątrz komórki 100 I Ka mV C gK gl gNa Na 0 na zewnątrz Kanały jonowe Pompa jonowa Dynamiczny Model Hodgkin-Huxley pobudzenie wejscia sod potas przeciek Prawdopodobieństwo otwarcia kanału opisane jest zmiennymi m, n, i h.
Dynamiczny Model Hodgkin-Huxley Jeśli wartość pobudzenia neuronu jest większa niż próg 6 uA/cm2, obserwujemy regularne impulsy. Częstość impulsów jest funkcja mocy sygnału wejściowego I0
Opis matematyczny neuronu o numerze k: Pobudzenie neuronu o numerze k: Odpowiedź neuronu o numerze k: Na przykład:
Neurony liniowe • Te sa proste ale maja ograniczenia obliczeniowe • Jak zrozumiemy uczenie tych neuronów to być może zrozumiemy bardziej złożone neurony wartość progowa (bias) wejście y 0 waga wejściowa 0 wyjście indeks wejścia
1 1 jeśli y 0 0 poza tym z próg (threshold) Neurony z unipolarna funkcja progowa (Binary threshold neurons) • McCulloch-Pitts (1943): • Oblicz ważoną sumę sygnałów wejścia • Jeśli ta suma przekracza wartość progową to wyślij sygnał wyjściowy o stałej wartości.
Neurony liniowe z progiem(Linear threshold neurons) Obliczają liniową ważoną sumę wejść Wyjście jest nieliniową funkcją wejść y 0 poza tym 0 z próg
Neurony sigmoidalne • Mają wyjście o wartości rzeczywistej które jest gładką i ograniczoną funkcją wejść • Pochodne tej funkcji są łatwo liczone co sprzyja uczeniu • Jeśli potraktujemy jako prawdopodobieństwo wytworzenia impulsu, to otrzymamy stochastyczne neurony binarne 1 0.5 0 0
Funkcje pobudzania (wejścia) (k - numer neuronu, j - numer wejścia neuronu) 1. Funkcja sumy 2. Funkcja iloczynu 3. Funkcja maksimum 4. Funkcja minimum 5. Funkcja majoryzacji gdzie: 6. Funkcja sumy kumulowanej
Funkcje aktywizacji (wyjścia) 1. Funkcja przekaźnikowa a) unipolarna (niesymetryczna)b) bipolarna (symetryczna) 2. Funkcja liniowa 3. Funkcja liniowa dodatnia
4 b). Funkcja liniowa z nasyceniem symetryczna 4 a). Funkcja liniowa z nasyceniem niesymetryczna 8. Funkcja sigmoidalna logarytmiczna bipolarna (symetryczna) 5 a). Funkcja sigmoidalna logarytmiczna unipolarna (niesymetryczna)
10. Funkcja sigmoidalna tangensa hiperbolicznego bipolarna (symetryczna) 11. Funkcje radialne (Radial Basis) Przykłady: funkcje Gaussa splin cienkiej płytki (thin plate spline)
1 y(l -1)1 (l) (l) b w k k1 y(l -1)2 (l) w k- ty neuron sieci k2 j g y(l)k (l) w kj j g y(l -1)j (l) w km j g (l - 1) y m Warstwa Neuronów Układ neuronów nie powiązanych ze sobą (wyjścia neuronów nie są połączone z wejściami innych neuronów warstwy) do których docierają sygnały z tych samych źródeł (neurony pracują równolegle)
sieci bez sprzężenia zwrotnego (feedforward) sygnały na wejściu są niezależne od sygnałów na wyjściu sieci ze sprzężeniem zwrotnym (feedback) sygnały wyjściowe są pośrednio lub bezpośrednio podawane na wejście. są to dynamiczne sieci autoasocjacyjne graf sieci ma cykle skierowane Rodzaje połączeń jednostki wyjściowe jednostki ukryte jednostki wejściowe
Kto rozwijał sztuczne sieci neuronowe - ważniejsze fakty Lata 40 XX wieku: Początek sieci neuronowych Sztuczne sieci neuronowe swój początek wywodzą z badań nad modelami matematycznymi działania biologicznej komórki nerwowej Neurony McCulloch’a-Pitts’a W roku 1943 Warren McCulloch i Walter Pitts zaproponowali pierwszy prosty model matematyczny neuronu w postaci dwuwartościowego elementu progowego. Schemat modelu neuronu McCullocha i Pittsa Model działania neuronu McCullocha i Pittsa Funkcja aktywacji McCullocha i Pittsa
Reguła Hebba W roku 1949 Donald Hebb, sformułował regułę uczenia sztucznych sieci neuronowych. Reguła ta mówi że, jeżeli dwa neurony były aktywne jednocześnie to siła połączenia pomiędzy nimi powinna wzrosnąć. Stanowi ona podstawę wielu używanych obecnie reguł uczenia sieci neuronowych Lata 50. i 60.: Złoty wiek sieci neuronowych Dzisiaj sieci neuronowe zwykło się postrzegać jako alternatywę klasycznego przetwarzania opartego na zasadach sformułowanych przez John’a von Neumann’a. W latach 50. von Neumann był żywo zainteresowany problemami modelowania mózgu W latach 1957 i 1958 Frank Rosenblatt i Charles Wightman wykonali w Cornell Aeronautical Laboratory, przez pierwszy neurokomputer - Mark I Perceptron. Wykorzystali oni model McCulloch’a-Pitts’a i zaproponowali metodę uczenia sieci złożonej z neuronów o progowych funkcjach aktywacji
Układ wprowadzania obrazu Matryca sensorów obrazu „Poprawne” wyjście (dostarczane podczas uczenia) Szafa modułów par silnik - potencjometr Tablica łączeniowa