SZTUCZNE SIECI NEURONOWE dr hab.inż. Krzysztof Zaremba Instytut Radioelektroniki Politechnika Warszawska Historia dziedziny • „Prehistoria” • Początki – 1943 – W.McCulloch, W.Pitts – pierwszy formalny model neuronu; – 1949 – Donald Hebb – „The organization of behaviour” – reguła uaktualniania wag połączeń neuronów. Historia dziedziny • Pierwsze sukcesy – 1957-58 – F.Rosenblatt, Ch. Wightman – PERCEPTRON; – 1960 – B.Widrow, M.Hoff – ADALINE; – 1965 – N.Nillson – publikacja „Learning Machines” Historia dziedziny • Okres zastoju – 1969 – M.Minsky, S.Papert – publikacja „Perceptrons” – 1972, 1977 – Sun Ichi Amari – matematyczny opis sieci; – 1980 - K. Fukushima – NEOCOGNITRON; – 1972-82 - T.Kohonen – pamięć skojarzeniowa – 1977 – J.A.Anderson – pamięć skojarzeniowa. – 1974,82 – S.Grossberg, G.Carpenter – teoria sieci rezonansowych. Historia dziedziny • Ponowny rozkwit – ??????????????????????????? – 1983-86 – prace Johna Hopfielda; – 1986 - James McCleeland, David Rumelhard „Parallel Distributed Processing” – „odkrycie” metody uczenia perceptronów wielowarstwowych. Historia dziedziny • Ponowny rozkwit – ??????????????????????????? – 1983-86 – prace Johna Hopfielda; – 1986 - James McCleeland, David Rumelhard „Parallel Distributed Processing” – „odkrycie” metody uczenia perceptronów wielowarstwowych. Metoda opublikowana wcześniej w pracy doktorskiej Paula Werbosa (1974 – Harvard). Historia dziedziny • Ponowny rozkwit – DARPA (Defense Advanced Research Project Agency) – dr Ira Skurnick – finansowanie badań; – 1983-86 – prace Johna Hopfielda; – 1986 - James McCleeland, David Rumelhard „Parallel Distributed Processing” – „odkrycie” metody uczenia perceptronów wielowarstwowych. Metoda opublikowana wcześniej w pracy doktorskiej Paula Werbosa (1974 – Harvard). Przykłady zastosowań: • • • • • • • • • • • • Rozpoznawanie obrazów; Rozpoznawanie i synteza mowy; Analiza sygnałów radarowych; Kompresja obrazów; Prognozowanie sprzedaży; Prognozowanie giełdy; Interpretacja badań biologicznych i medycznych; Diagnostyka układów elektronicznych; Typowania w wyścigach konnych; Dobór pracowników; Selekcja celów śledztwa w kryminalistyce; Typowanie w wyścigach konnych..... KILKA PODSTAWOWYCH CECH MÓZGU • ODPORNY NA USZKODZENIA; • ELASTYCZNY – ŁATWO DOSTOSOWUJE SIĘ DO ZMIENNEGO OTOCZENIA; • UCZY SIĘ - NIE MUSI BYĆ PROGRAMOWANY; • POTRAFI RADZIĆ SOBIE Z INFORMACJĄ ROZMYTĄ, LOSOWĄ, ZASZUMIONĄ LUB NIESPÓJNĄ; • W WYSOKIM STOPNIU RÓWNOLEGŁY; • MAŁY, ZUŻYWA BARDZO MAŁO ENERGII. KILKA PODSTAWOWYCH CECH MÓZGU Komputer „widzi” inaczej KILKA PODSTAWOWYCH CECH MÓZGU Komputer „widzi” inaczej KILKA PODSTAWOWYCH CECH MÓZGU • LICZBA POŁĄCZEŃ SYNAPTYCZNYCH W MÓZGU: 1010 – 1011; • GĘSTOŚĆ POŁĄCZEŃ SYNAPTYCZNYCH: ~ 104/NEURON; • CZĘSTOTLIWOŚĆ GENERACJI SYGNAŁÓW PRZEZ NEURON: ~ 1 – 100 Hz; • SZACUNKOWA SZYBKOŚĆ PRACY: ~ 1018 OPERACJI/S (DLA PORÓWNANIA NAJSZYBSZE KOMPUTERY ~ 1012 OPERACJI/S. PRZYSZŁOŚĆ - SZTUCZNY MÓZG ????? „If the human brain were so simple that we could undrestand it, we would be so simple that we couldn’t” - Emerson Pugh - INSPIRACJE NEUROFIZJOLOGICZNE Neuron (komórka nerwowa) INSPIRACJE NEUROFIZJOLOGICZNE Neuron (komórka nerwowa) Model neuronu McCullocha-Pittsa x0 x1 w1 x2 w3 xn Wi = 1 w2 ...... wn T y i=1,2,....,n Reguła pobudzenia neuronu: n 1 gdy wi xi T i 1 y ( k 1) n 0 gdy wi xi T i 1 Model neuronu McCullocha-Pittsa PRZYKŁADY ELEMENTARNYCH FUNKTORÓW LOGICZNYCH x0 1 x1 1 x2 T=1 -1 T=0 NOR y 1 x0 -1 x1 -1 x2 -1 T=0 T=0 T=0 1 1 1 T=1 y NAND SZTUCZNA SIEĆ NEURONOWA Zbiór prostych elementów przetwarzających informację (sztucznych neuronów), które komunikują się między sobą za pomocą dużej liczby połączeń o zróżnicowanych wagach, zmienianych w procesie uczenia GŁÓWNE ASPEKTY MODELOWANIA SIECI NEURONOWYCH: • Architektura (topologia) sieci • Strategia (reguła) uczenia sieci SZTUCZNY NEURON x1 x2 yj ... wij neti wij x j i F(neti) j xn i neti – efektywny stan wejścia neuronu i - zewnętrzne wzbudzenie (offset, bias) yi TYPY NEURONÓW (TOPOLOGIA): - wejściowe; - ukryte; - wyjściowe. SPOSÓB AKTUALIZACJI STANÓW NEURONÓW: - SYNCHRONICZNY – wszystkie neurony uaktualniają stan równocześnie; - ASYNCHRONICZNY: - w każdym kroku aktualizujemy stan jednego, losowo wybranego neuronu; - każdy neuron aktualizuje swój stan w sposób niezależny od innych, z pewnym, z reguły stałym, prawdopodobieństwem modyfikacji w czasie t. FUNKCJA WZBUDZENIA NEURONU Przykładowe funkcje wzbudzenia: (a) (b) Funkcja progowa (a) i funkcja aktywacji perceptronu (b) FUNKCJA WZBUDZENIA NEURONU Przykładowe funkcje wzbudzenia: y x Funkcja logistyczna (sigmoidalna): f(x) = 1/(1+e-x) FUNKCJA WZBUDZENIA NEURONU Przykładowe funkcje wzbudzenia: (a) y (b) x y x Funkcja tangens hiperboliczny (a) i przeskalowany arcus tangens (b) TOPOLOGIE (ARCHITEKTURY SIECI) X1 h1 . . . . . . . . . . Xn y1 hk Ym SIECI JEDNOKIERUNKOWE (FEEDFORWARD) TOPOLOGIE (ARCHITEKTURY SIECI) 1 2 1 I1 3 I2 SIECI REKURENCYJNE n I3 In TOPOLOGIE (ARCHITEKTURY SIECI) Podział ze względu na liczbę warstw: • Jednowarstwowe, dwuwarstwowe, .... • Jednowarstwowe, wielowarstwowe METODY UCZENIA SIECI • Uczenie z nauczycielem (nadzorowane, asocjacyjne) • Uczenie bez nauczyciela (bez nadzoru) GŁÓWNE REGUŁY MODYFIKACJI WAG: • REGUŁA HEBBA: wij = •yi•yj • REGUŁA DELTA (WIDROWA-HOFFA): wij = •(di – yi)•yj ADALINE w1 X1 X2 X3 w2 X0 w0 +1 w3 Y’=sgn(y) y -1 Xn w4 n y w j x j wT x j 0 Błąd odpowiedzi sieci: 1 L k E (d y k ) 2 L k 1 L – liczba wektorów w zbiorze uczącym; ADALINE – metoda gradientowa uczenia Kształt „powierzchni błędu” i zasada maksymalnego spadku ADALINE – metoda gradientowa uczenia Estymacja gradientu E Ek k E k k 2 E: E E k w k w (d k w T x k ) 2 zatem : w (t 1) w (t ) 2 k (t )x k ADALINE – metoda gradientowa uczenia ALGORYTM UCZENIA SIECI: 1. Inicjalizuj wagi sieci jako niewielkie liczby losowe; 2. Oblicz wartość kwadratu błędu k(t); k(t) = (dk-wTxk); 3. Oblicz zmianę wag w: w(t) = 2k(t)xk; 4. Uaktualnij wektor wag w(t+1): w(t+1)=w(t)+ w(t); 5. Powtarzaj kroki 1-4 dopóki błąd nie osiągnie akceptowalnej wartości. ADALINE – metoda gradientowa uczenia (a) (b) Idealna (a) i rzeczywista (b) trajektoria końca wektora wag w procesie uczenia sieci. PERCEPTRONY JEDNOWARSTWOWE y ..... w ..... x PERCEPTRONY JEDNOWARSTWOWE Jednostki progowe: Dla i =0: yi=sgn(neti+i) yi=sgn(wiTx) Płaszczyzna decyzyjna: x2 x1 w i = 0: x1 w i 0: FUNKCJE SEPAROWALNE LINIOWO n Liczba możliwych funkcji Liczba funkcji separowalnych liniowo 1 4 4 (100%) 2 16 14 (87,5%) 3 256 104 (40,6%) 4 65536 1882 (2,9%) 5 4,3109 94572 (2,2 10-3%) 6 1,81019 5028134 (2,8 10-11%) REGUŁA UCZENIA PERCEPTRONU Jednostki nieliniowe: Funkcja błędu (kosztu): 1 k 2 E ( w ) d i yi 2 i k E ( w) E k ( w ) E E net wij netik wij k k k i k neti k wij x j x kj wij wij j E k E k yik k k k f ' ( net )( d y i i i ) k k k neti yi neti wij (t 1) wij (t ) (d ik yik ) f ' (netik ) x kj FORMY NIELINIOWOSCI NEURONU Funkcja logistyczna: y 1 ; 1 exp( x ) dy 1 1 1 y (1 y ) dx 1 exp( x ) 1 exp( x ) Bipolarna funkcja sigmoidalna: y 2 1; 1 exp( x ) dy y 1 (1 y ) dx 2 Funkcja tangens hiperboliczny: y tgh( x ) exp( x ) exp( x ) ; exp( x ) exp( x ) dy 1 y (1 y ) dx PERCEPTRONY WIELOWARSTWOWE wskaźnik k y ..... wih wskaźnik h ..... h whj wskaźnik j ..... x REGUŁA UCZENIA WARSTWY WYJŚCIOWEJ: wih (d yi ) f ' (neti ) y k i k REGUŁA UCZENIA WARSTWY UKRYTEJ: whj f ' ( neth ) x k h k k j wih ( d y ) f ' (neti ) k h k i i k i k h PROBLEMY UCZENIA SIECI: • Minima lokalne • Paraliż sieci • Wolna zbieżność lub brak zbieżności; • Przetrenowanie sieci Minima lokalne: Przykładowy „krajobraz” funkcji kosztu Rozwiązania: • Wprowadzenie „bezwładności”; • Metoda symulowanego wyżarzania; • Uczenie genetyczne ..... Paraliż sieci: Niekorzystny punkt pracy Typowa nieliniowa charakterystyka neuronu Rozwiązanie: Właściwa inicjalizacja wag Wolna zbieżność lub brak zbieżności: (a) – zbyt mała wartość współczynnika szybkości uczenia sieci; (b) - zbyt duża wartość współczynnika szybkości uczenia; (c) - prawidłowa wartość współczynnika szybkości uczenia. „Przetrenowanie” sieci: Rozwiązanie: Właściwa struktura sieci oraz zbiorów: uczącego i testowego Przykładowe zastosowanie: NETtalk Przykładowe zastosowanie: autopilot Parametry analizowane przez sieć Struktura sieci UCZENIE BEZ NADZORU Przykładowe zadania stawiany sieciom uczonym bez nadzoru: • Klasyfikacja (grupowanie); • Redukcja wymiarowości (kompresja); • Wyodrębnianie cech znaczących; •................... UCZENIE Z RYWALIZACJĄ (SIECI WTA – Winner Takes All) Neuron zwycięski y1 y2 ..... ym W ..... x1 x2 x3 xn Wektory wejść x i wag w znormalizowane do długości jednostkowej Pobudzenie neuronu i: neti = wiT·x = cos() gdzie - kąt pomiędzy wektorami wi i x. Zwycięża neuron najsilniej pobudzony i na jego wyjściu pojawia się stan „1”, na wyjściach pozostałych – stan „0”. Uczony jest wyłącznie neuron zwycięski: Wi*j(t+1) = Wi*j(t) + [xjk - Wi*j(t)] (reguła Grossberga) Idea uczenia konkurencyjnego: Uczenie konkurencyjne: (a) początkowe i (b) końcowe położenia końców wektorów wag. - koniec wektora danych; - koniec wektora wag. Sieci zachowujące topologię bodźców – wzorzec biologiczny Homunculus – obraz rozmieszczenia obszarów mózgu odpowiedzialnych za funkcje motoryczne Sieci zachowujące topologię bodźców – wzorzec biologiczny Połączenia miedzyneuronowe realizujące oddziaływania boczne (lateralne) Funkcja „meksykańskiego kapelusza” opisująca oddziaływania lateralne Algorytm Kohonena (rozszerzenie metody WTA) wi(t+1) = wi(t) + (t)•h(i,i*) •[x(t) – wi(t)] gdzie: (t) – współczynnik szybkości uczenia (zmienny w czasie); x(t) – wektor wejściowy; h(i,i*) – funkcja sąsiedztwa; i* - indeks neuronu zwycięskiego. FUNKCJA SĄSIEDZTWA: h(i,i*) = exp(-|ri – ri*|2 / 2 (t)2) gdzie: ri, ri* – wektory określające położenia neuronów i, i*; (t) – wariancja rozkładu, determinująca zasięg działania funkcji sąsiedztwa. Algorytm Kohonena – przykład zastosowania Algorytm Kohonena – przykłady zastosowań Mapa fonemów Problem podróżującego komiwojażera Przyszłość ??????