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 tność dokonywania sądów s zdrowy rozsądek. Myślenie inteligentne ukierunkowanie, przystosowanie i kontrola. 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. INTELIGENCJA Wnioskowanie o współzaleŝnościach: wprowadzenie reguł następstwa zdarzeń i współwystępowania. 2
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) INTELIGENCJA 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ści ci i etyczności ci takiego działania. 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 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 ~ 10 10 Liczba połączeń ~ 10 15 Długość połączeń ~ 0.01mm do 1m Częstotliwość ~ 1-100 Hz Liczba operacji ~ 10 18 /sekundę Biologiczne inspiracje Fragment systemu neuronowego 5
Neuron Dendryt Synapsa Soma Akson 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 Synapsa Soma Akson 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 1957, 1958 1960 1969 1974 1982, 1984 1987 1990 McCulloch Walter Pits Rosenblatt Wightman Widrow Minsky Papert Werbos Hopfield San Diego Model sztucznego neuronu Pierwsza sztuczna sieć neuronowa i pierwszy pracujący neurokomputer Mark I Perceptron Liniowy sieci neuronowe ADALINE (ADAptive LINEar Element) Dowodzą Ŝe jednowarstwowe sieci neuronowe nie mogą być zastosowane do rozwiązania pewnej klasy problemów (XOR) Propozycja nowej metody uczenia - propagacji wstecznej (Error Back Propagation) moŝliwej do zastosowania w przypadku uczenia sieci wielowarstwowych Propozycja sieci rekursywnych (Feed-back network) Pierwsza otwarta konferencja na temat sieci neuronowych (IEEE International Conference on Neural Networks), 1700 uczestników 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 Sieci rekurencyjne Feed-back Sieci samoorganizujące się Self Organizing Liniowe Linear Nieliniowe Nonlinear Sieć Hopfielda Sieć Boltzmana Uczone pod nadzorem Supervised Uczone bez nadzoru Unsupervised 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): { x, d 1 1 }, { x 2, d 2 },...,{ x M, d M } gdzie: x i - wektor sygnałów wejściowych (ang. inputs) d i - odpowiadający im wektor zadanych sygnałów wyjściowych (ang. targets, destination) Liniowa sieć neuronowa - Madaline Z pojedynczych elementów Adaline nazywaną Madaline. moŝna zbudować sieć Działanie tej sieci polega najczęściej na tym, Ŝe pojawienie się określonego wektora wejściowego x powoduje powstanie sygnałów wyjściowych y i 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) y 1 y 2 y N N 1 N 2 N N ξ x 1 x 2 x 3 x 4 x R 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 y 1 y N 1 P N P Warstwa wyjściowa (P) 1 P-1 N P-1 Warstwa ukryta (P-1) ξi p i p Warstwa ukryta (p) 1 1 N 1 Warstwa ukryta (1) x 1 x R Warstwa (0) zawierająca R wejść 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 Przykład Półprzestrzeń ograniczonahiperpłaszczyzną A B B A B A 2 warstwy Obszry wypukłe jednospójne (simpleksy) A B B A B A 3 warstwy Dowolnie złoŝone obszary (niewypukłe, Niejednospójne) A B B A B A 15
Sieci wielowarstwowe - modelowanie w Matlabie X = [0 0 1 1;... 0 1 0 1]; % Zmienna z wektorami wejściowymi 1 1 D =[ 0 1 1 0]; % Zmienna z wartościami wyjściowymi clear net % usunięcie starej definicji sieci 1 0 % 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 x 1 0 0 x 2 0 1 0 1 d 0 1 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