Sztuczne sieci neuronowe Bartłomiej Goral ETI 9.1 INTELIGENCJA • Inteligencja naturalna i sztuczna. • Czy istnieje potrzeba poznania inteligencji naturalnej przed przystąpieniem do projektowania ukłładów sztucznej inteligencji ? • Cechy naturalnej inteligencji. 1 INTELIGENCJA • Inteligencja jako cecha indywidualna jest zmienna w dłługich cyklach (kilka lat). Emocje zmieniają ą się w ciągu godzin lub minut, nastroje w ciągu dni lub godzin. • Definicje inteligencji naturalnej • Sir Francis Galton (1883) – inteligencja: energia działania i wraŜliwość umysłowa. • Alfred Binet (1905) – kluczowa zdolność intelektualna – umiejętność dokonywania sądów – zdrowy rozsądek. Myślenie inteligentne – ukierunkowanie, przystosowanie i kontrola. INTELIGENCJA • Inteligencja – przystosowanie się do nowych okoliczności i zadań. • Zdolności poznawcze: nabywanie doświadczenia, wnioskowanie o relacjach i wnioskowanie o współzaleŜnościach. • Nabywanie doświadczenia dotyczy sfery: poznawczej, emocjonalnej i motywacyjnej. • Wnioskowanie o relacjach: dostrzeganie abstrakcyjnych zaleŜności między obiektami lub/i sytuacjami. • Wnioskowanie indukcyjne. • Wnioskowanie o współzaleŜnościach: wprowadzenie reguł następstwa zdarzeń i współwystępowania. 2 INTELIGENCJA • „Inteligencja jest bardzo ogólną zdolnością umysłłową obejmującą umiejętność rozumowania, planowania, rozwiązywania zagadnień, abstrakcyjnego myślenia, rozumienia złoŜonych zagadnień, szybkiego uczenia się i uczenia się w oparciu włłasne doświadczenia” Gottfredson (1997) • Z tej definicji wynika, Ŝe inteligencję moŜna podzielić na dwie podstawowe zdolności: umiejętność radzenia sobie w złoŜonych sytuacjach i w nowych sytuacjach. SZTUCZNA INTELIGENCJA • Czy moŜna utworzyć sztuczną świadomość lub zdrowy rozsądek? • Czy moŜna stworzyć sztuczną inteligencję ogólną ? • Zwolennicy słabej sztucznej inteligencji dają odpowiedź przeczącą twierdząc, Ŝe ludzie istnieją w wyniku pewnego zbiegu okoliczności, którego sztucznie nie moŜna odtworzyć. • Zwolennicy silnej sztucznej inteligencji (computational theory of mind) twierdzą, Ŝe w przyszłości będzie moŜliwe utworzenie sztucznej inteligencji posiadającej wszystkie cechy inteligencji naturalnej. Pozostaje pytanie co do celowoś celowości i etycznoś etyczności takiego dział działania. 3 Sieć neuronowa ? Czym jest sieć neuronowa: • Sieć komórek neuronowych Ŝyjącego organizmu • System równoległego przetwarzania informacji zawierający elementy przetwarzające (zwane neuronami) mające lokalną pamięć i zdolne do lokalnego przetwarzania sygnałów wejściowych. Elementy te są ze sobą połączone jednokierunkowymi kanałami przesyłania sygnałów. • KaŜdy neuron generuje jeden sygnał wyjściowy, który jest równolegle propagowany do dowolnej liczby innych elementów sieci. • Proces przetwarzania sygnałów wejściowych w elemencie moŜe być zdefiniowany w dowolny sposób jednak musi być całkowicie lokalny. Znaczy to, Ŝe wynik działania neuronu zaleŜy tylko od sygnałów wejściowych i lokalnej pamięci elementu. • Najlepsze rozwiązanie problemu jeśli nie jest znane jego rzeczywiste rzeczywiste dokładne rozwiązanie. Zastosowania sieci neuronowych • Podstawowe kategorie zastosowań sztucznych sieci neuronowych: • • • • • • aproksymacja i interpolacja, rozpoznawanie i klasyfikacja, kompresja, predykcja, identyfikacja i sterowanie, asocjacja. 4 Biologiczne inspiracje Pierwowzorem i jednocześnie niedościgłym wzorem sztucznych sieci neuronowych był ludzki mózg. Objętość ~ 1400 cm3 Powierzchnia ~ 2000 cm2 Masa ~ 1.5 kg Liczba neuronów ~ 1010 Liczba połączeń Długość połączeń Częstotliwość Liczba operacji ~ 1015 ~ 0.01mm do 1m ~ 1-100 Hz ~ 1018/sekundę Biologiczne inspiracje Fragment systemu neuronowego 5 Neuron Dendryt Akson Synapsa Soma • Neuron jest specjalizowaną komórką, która pobudzana przez jedno lub wiele wejść wytwarza sygnał wyjściowy przesyłany do innych neuronów. • Sygnał wyjściowy zaleŜy od natęŜenia kaŜdego sygnału wejściowego i od natury połączenia na wejściu (synapsy). Niektóre synapsy mogą mieć zdolność pobudzania, inne mogą być hamujące. Rzeczywisty związek między wejściami a wyjściem moŜe być bardzo złoŜony. Neuron Dendryt Akson Synapsa Soma • KaŜdy neuron posiada ciało zwane somą, wewnątrz którego znajduje się jądro. • Z neuronu wyrastają liczne wypustki, pełniące istotną rolę w komunikowaniu się z innymi komórkami. • MoŜna wyróŜnić dwa rodzaje połączeń: • liczne, cienkie i gęsto rozkrzewione dendryty • grubszy, rozwidlający się na końcu akson 6 Neuron • Sygnały wejściowe doprowadzone są do komórki za pośrednictwem synaps, zaś sygnał wyjściowy odprowadzany jest za pomocą aksonu i jego licznych odgałęzień (kolateral). • Kolaterale docierają do somy i dendrytów innych neuronów, tworząc kolejne synapsy. • Transmisja sygnałów wewnątrz systemu nerwowego jest procesem chemiczno-elektrycznym. • Przekazywanie impulsu nerwowego od jednej komórki do drugiej opiera się na wydzielaniu pod wpływem nadchodzących od synaps bodźców elektrycznych, substancji chemicznych (neuromediatorów). • Substancje te oddziałują na błonę komórki, powodując zmianę jej potencjału elektrycznego. Neuron • Poszczególne synapsy róŜnią się wielkością oraz moŜliwościami gromadzenia neuromediatora w pobliŜu błony synaptycznej. • Taki sam impuls docierający do wejścia komórki za pośrednictwem róŜnych synaps moŜe powodować silniejsze lub słabsze jej pobudzenie. • Miarą stopnia pobudzenia komórki jest stopień polaryzacji jej błony, zaleŜny od sumarycznej ilości neuromediatora wydzielonego we wszystkich synapsach. • Wejściom komórki moŜna przypisać współczynniki liczbowe (wagi) odpowiadające ilości neuromediatora wydzielonego jednorazowo na poszczególnych synapsach. 7 Neuron • Wagi synaptyczne są liczbami rzeczywistymi i mogą przyjmować wartości zarówno dodatnie, jak i ujemne. • Jedne z nich oddziałują pobudzająco, a drugie hamująco, powodując utrudnienie pobudzenia komórki przez inne sygnały. • Działanie synapsy pobudzającej moŜna zinterpretować przyjmując dodatnią wartość wagi synaptycznej, a synapsy hamującej - wartość ujemną. Neuron • W wyniku docierania impulsów wejściowych do poszczególnych synaps i uwolnienia odpowiednich ilości neuromediatora następuje pobudzenie elektryczne komórki. • Jeśli zaburzenie równowagi elektrycznej jest niewielkie lub jeśli bilans pobudzeń i hamowań jest ujemny, to na jej wyjściu nie pojawia się Ŝadna zmiana (pobudzenie komórki było mniejsze od progu jej zadziałania). • Jeśli suma pobudzeń i hamowań przekracza próg uaktywnienia komórki, to generowany jest impuls nerwowy, przesyłany aksonem do innych neuronów połączonych z daną komórką. • Amplituda sygnału jest niezaleŜna od stopnia przekroczenia progu. • Po wygenerowaniu impulsu następuje proces refrakcji, podwyŜszenie progu uaktywnienia do wartości nieskończonej i bezpośrednio po wygenerowaniu impulsu neuron przez pewien czas nie moŜe wygenerować następnego. 8 Sztuczny neuron • Podobnie jak w przypadku układu nerwowego, podstawowym elementem sztucznych sieci neuronowych są sztuczne neurony. • Sztuczne neurony są elementami, których właściwości odpowiadają wybranym właściwościom rzeczywistych komórek nerwowych. Sieci neuronowe - historia 1943 McCulloch Walter Pits Model sztucznego neuronu 1957, 1958 Rosenblatt Wightman Pierwsza sztuczna sieć neuronowa i pierwszy pracujący neurokomputer Mark I Perceptron 1960 Widrow Liniowy sieci neuronowe ADALINE (ADAptive LINEar Element) 1969 Minsky Papert Dowodzą Ŝe jednowarstwowe sieci neuronowe nie mogą być zastosowane do rozwiązania pewnej klasy problemów (XOR) 1974 Werbos Propozycja nowej metody uczenia - propagacji wstecznej (Error Back Propagation) moŜliwej do zastosowania w przypadku uczenia sieci wielowarstwowych 1982, 1984 Hopfield Propozycja sieci rekursywnych (Feed-back network) 1987 San Diego Pierwsza otwarta konferencja na temat sieci neuronowych (IEEE International Conference on Neural Networks), 1700 uczestników 1990 IEEE Transactions on Neural Networks 9 Sieci neuronowe - historia MARK I Sieci neuronowe - historia MARK I 10 Sieci neuronowe - historia MARK I Rodzaje sieci neuronowych 10 Sztuczne sieci neuronowe Sieci jednokierunkowe Feed-Forward Liniowe Linear Nieliniowe Nonlinear Uczone pod nadzorem Supervised Sieci rekurencyjne Feed-back Sieć Hopfielda Uczone bez nadzoru Unsupervised Sieci samoorganizujące się Self Organizing Sieć Boltzmana • Połączone ze sobą wzajemnie neurony tworzą układ określany terminem sztuczna sieć neuronowa. • W zaleŜności od połączenia i sposobu organizacji neuronów oraz metody uczenia rozróŜniamy róŜne typy sieci. 11 Sieci neuronowe - proces uczenia • Algorytm uczenia sieci neuronowej (ang. learning rule, training algorithm) - algorytm doboru wartości wag (ang. weights) i polaryzacji (ang. biases). Celem procesu uczenia jest spowodowanie aby sieć realizowała określone zadania. • WyróŜniamy dwie podstawowe strategie uczenia: • Uczenie pod nadzorem (ang. supervised learning) • Uczenie bez nadzoru (ang. unsupervised learning) • W trybie uczenia pod nadzorem dany jest zbiór danych uczących (ang. training set): { x1, d1 }, { x2, d2 }, . . . ,{ xM, dM } gdzie: xi - wektor sygnałów wejściowych (ang. inputs) di - odpowiadający im wektor zadanych sygnałów wyjściowych (ang. targets, destination) Liniowa sieć neuronowa - Madaline • Z pojedynczych elementów Adaline moŜna zbudować sieć nazywaną Madaline. • Działanie tej sieci polega najczęściej na tym, Ŝe pojawienie się określonego wektora wejściowego x powoduje powstanie sygnałów wyjściowych yi na wszystkich neuronach. • Maksymalny sygnał wyjściowy pojawia się na tym neuronie, którego wektor wag jest najbardziej podobny do wektora wejściowego. • Sieć moŜe rozpoznawać S róŜnych klas obiektów. • O tym do której klasy naleŜy zaliczyć aktualnie prezentowany wektor, decyduje numer wejścia, na którym pojawia się sygnał wyjściowy o maksymalnej wartości. • Neurony dokonujące omówionej tu klasyfikacji nazywane są Grandmother Cells. 12 Liniowa sieć neuronowa - Madaline • Sieć Madaline dokonuje liniowego odwzorowania sygnału x w sygnał y • Sieć moŜe nauczyć się tylko liniowej zaleŜności między sygnałami wejściowymi i wyjściowymi. • NaleŜy pamiętać Ŝe znacząca część przekształceń stosowanych w teorii przetwarzania sygnałów jest liniowa. • Przekształcenie sygnału x w sygnał y moŜna traktować jako filtrację. • Jeśli zaleŜność jest nieliniowa to sieć dokonuje aproksymacji liniowej minimalizującej błąd średniokwadratowy. Nieliniowe sieci jednokierunkowe • W zaleŜności od sposobu zorganizowania neuronów sieci mogą być jedno lub wielowarstwowe. • Historycznie, jako pierwsze, powstały sieci jednowarstwowe (perceptron) • Neurony ułoŜone w jednej warstwie praktycznie działają niezaleŜnie od siebie, ułatwia to proces uczenia ale powoduje równieŜ znaczne ograniczenia ich przydatności (problem w przypadku nieseparowalności liniowej danych uczącyh np. funkcja EXOR) y1 y2 yN N1 N2 NN ξ x1 x2 x3 x4 xR 13 Sieci wielowarstwowe • Ograniczenia sieci jednowarstwowych skłoniły do konstrukcji sieci wielowarstwowej. • Problemem był jednak przez długi czas brak efektywnego algorytmu uczenia neuronów znajdujących się w warstwach ukrytych. • Rozwiązaniem było zaproponowanie przez Werbos-a w 1970 roku algorytmu wstecznej propagacji (back propagation). • Algorytm ten zyskał szeroką popularność dopiero w latach osiemdziesiątych XX wieku. • Algorytm back propagation jest rozszerzeniem wcześniej omówionego algorytmu delta rule. • Dla zilustrowania algorytmu wstecznej propagacji rozpatrzymy sieć wielowarstwową składającą się z P warstw Sieci wielowarstwowe y1 yN 1P NP Warstwa wyjściowa (P) 1P-1 NP-1 Warstwa ukryta (P-1) ξi p Warstwa ukryta (p) ip 11 N1 Warstwa ukryta (1) Warstwa (0) zawierająca R wejść x1 xR 14 Uczenie sieci wielowarstwowej 1. FAZA INICJALIZACJI: Nadaj początkowe wartości wszystkim wagom 2. FAZA PREZENTACJI: Podaj na wejście sieci wektor próbki uczącej i wyznacz odpowiedź kolejnych warstw aŜ do uzyskania sygnału warstwy wyjściowej 3. FAZA PORÓWNANIA: Wyznacz róŜnicę pomiędzy aktualnym wektorem sygnałów wyjściowych a wartościami zadanymi. Oblicz sumę kwadratów błędów - kryterium Q. Zakończ proces jeśli wartość Q obliczona dla wszystkich próbek uczących jest mniejsza od zadanego błędu lub została osiągnięta maksymalna liczba iteracji. 4. FAZA PROPAGACJI WSTECZNEJ: Oblicz wektor δ dla warstwy wyjściowej i dokonaj jego wstecznej propagacji do wcześniejszych warstw. 5. FAZA UCZENIA: Wyznacz nowe wagi i kontynuuj proces od kroku 2. Właściwości sieci jedno- i wielo- warstwowej Liczba warstw 1 warstwa Typ obszaru decyzyjnego EXOR A B B A A B B A A B B A Półprzestrzeń ograniczonaHiperpłaszczyzną Przykład B A 2 warstwy Obszry wypukłe jednospójne (simpleksy) B A 3 warstwy Dowolnie złoŜone obszary (niewypukłe, Niejednospójne) B A 15 Sieci wielowarstwowe modelowanie w Matlabie x1 0 0 1 1 x2 0 1 0 1 d 0 1 1 0 X = [ 0 0 1 1; ... 0 1 0 1]; % Zmienna z wektorami wejściowymi D =[ 0 1 1 0]; % Zmienna z wartościami wyjściowymi clear net % usunięcie starej definicji sieci % Tworzenie sieci z dwoma wejściami, Sieć zawiera 3 neurony w warstwie ukrytej i % 1 neuron w warstwie wyjściowej, funkcje aktywacji sigmoidalne, uczenie metodą trainlm net = newff( minmax(X), [3,1], {'logsig', 'logsig'}, 'trainlm‘ ); net = init(net); % inicjalizacja wag i polaryzacji domyślnymi funkcjami % definiowanie parametrów uczenia net.trainParam.epochs = 1200; net.trainParam.goal = 1e-8; net = train(net, X, D); % uczenie sieci % Oblicz odpowiedź sieci na % dane zawarte w wektorze X Y = sim(net, X); % Odczytaj wartości wag i polaryzacji Sieci wielowarstwowe - modelowanie w Matlabie net = newff( minmax(X), [2,1], {'logsig', 'logsig'}, 'trainlm‘ ); 16 Sieci wielowarstwowe - modelowanie w Matlabie net = newff( minmax(X), [2,1], {'logsig', 'logsig'}, 'trainlm‘ ); net = newff( minmax(X), [2,1], {'logsig', ‘purelin'}, 'trainlm‘ ); Sieci wielowarstwowe - modelowanie w Matlabie net = newff( minmax(X), [2,1], {'logsig', 'logsig'}, 'trainlm‘ ); net = newff( minmax(X), [2,1], {'logsig', ‘purelin'}, 'trainlm‘ ); 17 Sieci wielowarstwowe - modelowanie w Matlabie net = newff( minmax(X), [2,1], {'logsig', 'logsig'}, 'trainlm‘ ); net = newff( minmax(X), [5,1], {'logsig', 'logsig'}, 'trainlm‘ ); Optymalizacja •Problem optymalizacji wyraŜany jako problem poszukiwania ekstremum jest podejmowany od wielu wieków. •Zastosowanie komputerów pozwoliło na uŜycie metod optymalizacji do rozwiązania zagadnień praktycznych. 18