Sieci neuronowe i algorytmy uczenia Część materiałów ze slajdów pozbawiona:
Transkrypt
Sieci neuronowe i algorytmy uczenia Część materiałów ze slajdów pozbawiona:
Sieci neuronowe i algorytmy uczenia Część materiałów ze slajdów pozbawiona: większości rysunków, przykładów, niektórych wzorów. Sztuczne sieci neuronowe • Co to takiego? (dlaczego neuronowe?!) • Skąd się wzięły? • Z czym to łączyć? (biologia, informatyka?) • Do czego służą? (czy w ogóle mają jakieś zastosowania?) Wprowadzenie, a więc… • Początki – fascynacja możliwościami ludzkiego umysłu • Próby modelowania – poszczególne elementy, a może całość? • Nowa dyscyplina nauki: kognitywistyka Kognitywistyka (cognitive science) • Dział nauki zajmujący się badaniem, opisywaniem i modelowaniem zjawisk dotyczących działania umysłu • Bada naturę ludzkiej inteligencji • Łączy różne dyscypliny: psychologię, filozofię, neurologię, lingwistykę, informatykę, socjologię, biologię, etc. Kognitywistyka – trochę historii • Można wywodzić ją ze starożytności – Platon i Arystoteles też zastanawiali się nad działaniem umysłu • W latach 50. XX wieku pojawiają się pierwsze pomysły modelowania działania ludzkiego umysłu (Miller, Minsky, Simon, Papert, McCarthy) • W połowie lat 70. wyodrębnia się nowa dziedzina wiedzy, rozpoczyna się wydawanie Cognitive Science, odbywają się konferencje, pojawiają się kierunki studiów Główne założenie • Do wyjaśnienia działania umysłu konieczne jest zrozumienie mechanizmów zachodzących w nim na różnych poziomach, np. poziomie najwyższym (psychologia) i najniższym (neurobiologia, biochemia), jak również powiązanie ich ze sobą (matematyka) Sztuczna inteligencja (AI) • Gałąź informatyki (a może innej dyscypliny) mająca na celu stworzenie inteligentnej maszyny • Badanie i projektowanie „inteligentnych agentów” (systemów postrzegających swoje środowisko i na tej podstawie podejmujących działania maksymalizujące ich sukces) • John McCarthy: "the science and engineering of making intelligent machines" Sztuczna inteligencja • Dziś dyscyplina „pokawałkowana” na wiele subdyscyplin rozwijających się oddzielnie • Główne problemy AI: rozumowanie (wnioskowanie), wiedza, planowanie, uczenie się, komunikowanie, percepcja, zdolność ruchu i manipulowania obiektami • Kiedyś stworzenie sztucznego rozumu wydawało się proste: • 1965, H. A. Simon: "[M]achines will be capable, within twenty years, of doing any work a man can do" • 1967, Marvin Minsky: "Within a generation ... the problem of creating 'artificial intelligence' will substantially be solved." Modelowanie obliczeniowe • Tworzenie modeli komputerowych pozwalających symulować różne poziomy i zjawiska procesu poznawczego • Modelowanie symboliczne – starsze podejście, zapisanie reguł, wiedzy, różne struktury • Modelowanie podsymboliczne – sieci neuronowe i metody pokrewne Sztuczne sieci neuronowe • Struktury i algorytmy mające początkowo modelować działanie biologicznych układów neuronowych, w tym, docelowo również mózgu ludzkiego • Dziś: struktury, metody, modele programowe i sprzętowe, przetwarzające, najczęściej równolegle, sygnał wejściowy za pomocą elementów zwanych neuronami Historia • 1943 r.: McCulloch i Pitts – pierwszy matematyczny opis komórki nerwowej • 1949 r.: D. Hebb – reguła Hebba, struktura sieci jako pamięć • 1957, 1968 r.: Rosenblatt – perceptron (do rozpoznawania znaków, Cornell Aeronautical Laboratory ) • 1960 r.: Widrow – Adaline i Madaline (Stanford), pierwszy komercyjny neurokomputer Historia – c.d. • 1969 r.: Minsky i Papert – pokazanie ograniczeń sieci jednowarstwowych • Lata 70.: „Wielka Smuta” • 1974 r.: Werbos – schemat uczenia sieci wielowarstwowej, niezauważony • 1982 r.: Kohonen – samoorganizujące się sieci Kohonena • 1982 r.: Hopfield – ponowne odkrycie wstecznej propagacji • 1986 r.: McClellanda i Rumelhart – popularyzują ideę sieci wielowarstwowych • a potem… gwałtowny rozwój SSN aż do dziś Zastosowania: • Rozpoznawanie, klasyfikacja • Klasteryzacja • Analiza i przetwarzanie obrazów • Przetwarzanie sygnałów (aproksymacja, filtracja) • Predykcja szeregów czasowych • Optymalizacja • Pamięci autoasocjacyjne • Kompresja • i wiele innych… Podstawy biologiczne • Inspiracja: układ nerwowy, począwszy od robaków, stawonogów, mięczaków, na ssakach skończywszy • Cel: zbadanie (a potem skopiowanie) mózgu ludzkiego • Fakty: mózg człowieka – 1400 ccm, powierzchnia 2000cm2, (dla kuli 600 cm2), waga 1.5 kg Podstawy biologiczne – budowa mózgu • Kora mózgowa: grubość 3mm, 10^30 komórek nerwowych, 10^12 glejowych, 10^15 połączeń o długości od 0.01mm do 1m • Komórki nerwowe wysyłają i przyjmują impulsy o częstotliwości 1-100 Hz, czasie trwania 1-2 ms, napięciu 100 mV i szybkości propagacji 1-100 m/s Podstawy biologiczne - mózg • Szybkość pracy: 1018 operacji/s • Do typowej reakcji mózgu potrzeba ok. 100 kroków: czas reakcji nie mniejszy niż 300ms, czas refrakcji neuronu 3ms • Pojemności kanałów zmysłów : wzrok 100 Mb/s, dotyk 1 Mb/s, słuch 15 Kb/s, węch 1 Kb/s, smak 100 b/s Model neuronu (McCulloch i Pitts) Rodzaje SSN • Sieci jednowarstwowe – wejścia, jedna warstwa neuronów • Sieci wielowarstwowe jednokierunkowe – propagacja sygnałów od wejść do wyjść, brak sprzężeń • Sieci rekurencyjne – sprzężenie zwrotne między wejściem a wyjściem, mogą być jednolub wielowarstwowe Sieć jednowarstwowa • Składa się z węzłów wejściowych, oraz warstwy neuronów • W zależności od metody uczenia, oraz funkcji aktywacji może to być: perceptron prosty, sieć jednokierunkowa (sigmoidalna lub radialna), czy też sieć samoorganizująca typu Kohonena Sieć wielowarstwowa Sieć wielowarstwowa • Składa się z węzłów wejściowych, jednej lub kilku warstw ukrytych, oraz warstwy wyjściowej • Sieci te to sieci jednokierunkowe sigmoidalne • Mogą być traktowane jako uniwersalne aproksymatory Sieci rekurencyjne Sieci rekurencyjne • Posiadają sprzężenie pomiędzy sygnałami wyjść, a wejściami sieci • Opis – dynamika nieliniowa: dynamiczne ustalanie się sygnałów (operatory opóźnień) i nieliniowe funkcje aktywacji Metody uczenia sieci – klasyfikacja • Uczenie nadzorowane, z nauczycielem (supervised learning) • Uczenia z krytykiem (reinforcement learning) • Uczenia bez nauczyciela, samoorganizujące (unsupervised learning) Metody uczenia – inny podział • Uczenie typu on-line, reguła delta: aktualizacja wag następuje po prezentacji każdego obrazu uczącego • Uczenie typu skumulowanego, batch-learning: adaptacja wag po prezentacji wszystkich elementów ciągu uczącego • Możliwe strategie mieszane Uczenie sieci neuronowych • Wagi modyfikowane są w kolejnych iteracjach zwanych epokami • Zmiana wag zapisana być może jako: przy czym Perceptron • Skokowa funkcja aktywacji neuronu • Dopuszczalne dwie wartości wyjścia (0 i 1, -1 i 1) • Uczenie perceptronu – minimalizacja błędu np. kwadratowego • Nauczenie – błąd zerowy Reguła perceptronu Reguła Widrowa-Hoffa • Uogólnienie reguły perceptronu • Możliwość stosowania przy różnych funkcjach aktywacji neuronu • Zmiana wag postaci: Neuron Adaline (Adaptive Linear Element, B. Widrow) Neuron Instar • Dopasowuje wagi do swoich sygnałów wejściowych • Funkcja aktywacji zwykle liniowa • Uczenie wg reguły Grossberga: wij t +1 = wij t + ηyi x j wij t • Może być uczony z nauczycielem lub bez Neuron Outstar (S. Grossberg) Neuron typu Outstar • Ma wygenerować wektor zadany dla neuronów z nim powiązanych • Dopasowuje wagi do neuronów liniowych, do których dochodzą jego wyjścia • Uczenie z nauczycielem lub bez Neurony WTA • Neurony współzawodniczą ze sobą • Zwycięzcą zostaje neuron o największej wartości wyjścia sumatora • Zwycięzca przyjmuje na wyjściu wartość „1” (stan aktywny), pozostałe neurony „0” • Uczenie odbywa się bez nauczyciela (np. reguła Instar) Neuron Hebba (D. Hebb) • Działanie oparte na obserwacji biologicznej: wzmacniane są połączenia komórek będących w stanie pobudzenia (aktywności) w tym samym czasie • Reguła Hebba: zmiana wag neuronu odbywa się proporcjonalnie do iloczynu wejścia i wyjścia Δwij = ηyi x j • Uczenie z nauczycielem lub bez Neuron sigmoidalny Liniowa separowalność XOR x1 0 0 1 1 x2 0 1 0 1 d 0 1 1 0 W 1969 w słynnej książce "Perceptrons" Marvin Minsky i Seymour Papert pokazali, że jednowarstwowego perceptronu nie można nauczyć nawet funkcji XOR. W 1957 Frank Rosenblatt skonstruował elektromechaniczny perceptron w the Cornell Aeronautical Laboratory. Przykładowe funkcje aktywacji (Matlab) Neuron sigmoidalny – funkcje aktywacji • Funkcja unipolarna: • Funkcja bipolarna: 1 f x = αx 1 e f x = tanh αx Uczenie neuronu sigmoidalnego • Pierwszy sposób (dyskretny): • Drugi sposób: wij t +1 = wij t η i xi df si i = yi d i dsi dwij dt = ηdi x j Funkcje aktywacji w1,w2,...wp – wagi (ang. weights) w0 - wartość progowa, polaryzacja, przesunięcie (ang. bias) f – funkcja aktywacji (ang. activation function, transfer function) y w0 w1 x1 wp w2 x2 1 xp y f w0 wi xi i 1 p Funkcje aktywacji Skokowa f. aktywacji (nieróżniczkowalna): f b sgn (u ) sgn( u ) Funkcja sigmoidalna bipolarna: f bip1 (u ) tgh( u ) 2 f bip 2 (u ) 1 2 f unip (u ) 1 1 exp( u ) Funkcja sigmoidalna unipolarna: 1 f unip (u ) 1 exp( u ) Pochodne funkcji aktywacji df unip (u ) d (u ) df bip1 (u ) d (u ) df bip 2 (u ) d (u ) f unip (u ) 1 f unip (u ) 2 1 f bip 1 (u ) 2f unip (u ) 1 f unip (u ) Liczba neuronów w warstwie ukrytej Pewną wskazówką: Maksymalna liczba obszarów, na które J hiperpłaszczyzn może podzielić n-wymiarową przestrzeń n M ( J , n) J k k 0 Uczenie perceptronu Uczenie z nauczycielem (pod nadzorem) Zbiór uczący: {x (i ) , d (i ) }iN1 , gdzie x (i ) R p , d (i ) R q Zwykle funkcja celu: Dla jednej próbki uczącej (uczenie on-line): ang. on-line (incremental) learning Dla całego zbioru uczącego: ang. batch learning q 1 E 2 1 E 2 N Epoka – zaprezentowanie całego zbioru uczącego ( y j d j )2 j 1 q k j 1 ( y (jk ) d (jk ) ) 2 Uczenie sieci jednokierunkowych • Najpopularniejszy rodzaj sieci (jednokierunkowe, wielowarstwowe, o sigmoidalnych funkcjach aktywacji) • Uczenie opiera się na wstecznej propagacji błędu (backpropagation) • Uczenie polega na minimalizacji zadanej funkcji błędu (najczęściej metody gradientowe) Metoda wstecznej propagacji błędu (J. Werbos) W metodzie wstecznej propagacji błędu przyjęto następujące założenia dotyczące zadania uczenia: • sieć jest ściśle wielowarstwowa (istnieją jedynie połączenia pomiędzy neuronami kolejnych warstw), • funkcje aktywacji sieci, oraz funkcja celu są ciągłe i różniczkowalne, • dane uczące składają się z wartości podawanych na wejście sieci i odpowiadających im pożądanych wartości wyjść. Backpropagation 1. Sieć analizowana jest w kierunku od wejścia do wyjścia. Przy ustalonych sygnałach wejściowych obliczane są wartości wyjść neuronów poszczególnych warstw, oraz pochodne cząstkowe wszystkich funkcji aktywacji. 2. Siec analizowana jest w kierunku odwrotnym do zwykłego przepływu sygnałów. Funkcje aktywacji zastępowane są przez swoje pochodne, do wyjścia sieci podawane jest wymuszenie w postaci różnicy miedzy obliczonym wcześniej wyjściem, a wartością zadaną. W tak zdefiniowanym stanie, od warstwy ostatniej do pierwszej propagowany jest błąd (różnice wsteczne) obliczany dla wszystkich neuronów kolejnych warstw. 3. Następuje aktualizacja wszystkich wag sieci na podstawie zadanej reguły uczenia i wyników uzyskanych w poprzednich krokach algorytmu. Jeżeli nie został spełniony warunek stopu, powraca się do punktu pierwszego. Minimalizowana funkcja kryterialna (funkcja błędu) • Najczęściej używa się funkcji kwadratowej: • Ogólnie można użyć funkcji: a więc w szczególności Algorytmy gradientowe • Rozwinięcie funkcji w szereg Taylora: gradient: n – ilość wag sieci. Algorytmy gradientowe • Hesjan: Algorytmy gradientowe • Najczęściej ograniczamy się do rozwinięcia: i otrzymujemy krok uczenia: Algorytmy gradientowe: • Największego spadku: • Levenberga – Marquardta • Gradientów sprzężonych • BPQ • Quickprop • RBPROP • i wiele innych… Ogólna zasada postępowania dla algorytmów gradientowych • Dla punktu początkowego wk Algorytm największego spadku Algorytm największego spadku • Otrzymujemy więc zmiany wag: gdzie Współczynnik uczenia W najprostszej wersji współczynnik uczenia jest stały: więc zmiana wag odbywa się zawsze proporcjonalnie do niego. Stały współczynnik uczenia Oczywiste wady stałego współczynnika uczenia: • Łatwo utknąć w minimum lokalnym • Przy zbyt małej wartości proces uczenia przebiega bardzo powoli • Przy wartości zbyt dużej można przeoczyć ekstremum • Nie ma prostej metody doboru właściwej wartości, np. oszacowanie (Klimauskas): Zmienny współczynnik uczenia Różne strategie doboru współczynnika: • Metody adaptacyjne • Minimalizacja funkcji celu w zadanym kierunku po wartościach współczynnika uczenia (m. bisekcji, Fibbonaciego, aproksymacji wielomianami, etc.) • Metoda delta-delta, delta-bar-delta i podobne Algorytm ze współczynnikiem wzrostu błędu • Zmiany współczynnika uczenia w czasie przebiegają następująco: η(t +1 ) = η(t)qi dla Q(t) k wQ(t 1 ) η(t)qd dla Q(t) > k wQ(t 1 ) Przy czym qi > 1, qd < 1. Współczynnik kw niewiele większy od jedności – pozwala on na niewielki chwilowy wzrost wartości błędu. Metody adaptacyjne • Jeśli błąd popełniany przez sieć maleje, zwiększenie współczynnika o zadaną wartość • W przeciwnym przypadku zmniejszenie go (geometrycznie, podział przez stałą wartość) • Inny sposób: uzależnienie współczynnika od szybkości i etapu uczenia Oddzielny współczynnik uczenia dla każdej wagi • Współczynnik uczenia różny dla każdego kierunku (każdej zmiennej, a więc każdej wagi) • Dobierany np. w oparciu o gradient funkcji celu: Metoda delta-delta Współczynnik uczenia obliczany metodą największego spadku: Metoda delta-delta Na podstawie: Otrzymujemy: Reguła delta-bar-delta • Udoskonalenie metody delta-delta • Uwzględnia się uśredniony gradient, a nie jego chwilowe zmiany • Unika się niepotrzebnych oscylacji po powierzchni funkcji celu • Najczęściej stosowany przy uczeniu skumulowanym Reguła delta-bar-delta Modyfikacja wag: Przy czym: Reguła delta-bar-delta Wyrażenie uśredniające gradient: Sprawdzane jest, czy uśredniona wartość ma znak identyczny z aktualną, jeśli tak, przyspiesza się uczenie. Reguła delta-bar-delta • Zmienia się tempo uczenia w zależności od relacji znaków gradientu aktualnego i uśrednionego • Współczynnik rośnie addytywnie, maleje wykładniczo • Algorytm przyspiesza proces uczenia Algorytm Resilient Backpropagation • Uwzględnianie jedynie znaku składowych gradientu w procesie uczenia • Przyspieszenie minimalizacji na stosunkowo płaskich obszarach • Może być prostszy obliczeniowo Algorytm Resilient Backpropagation Zmiana wag ma więc postać: przy Algorytmy z czynnikiem „momentu” • Metoda uczenia Momentum Backpropagation polega na dodaniu czynnika „obciążenia”, czy „bezwładności”, który zwiększa wielkość wahań koniecznych do zmiany kierunku uczenia • W algorytmie tym pod uwagę brana jest ogólniejsza tendencja, a nie gwałtowne zmiany wartości gradientu Algorytmy z czynnikiem „momentu” Najprostszy sposób wprowadzenia bezwładności: Warto zauważyć, że dla płaskiej powierzchni funkcji: Algorytm z czynnikiem momentu • Odgrywa pozytywną rolę na płaskich odcinkach • Pomaga uniknąć • oscylacji przy • niewielkich • zmianach gradientu • Wymaga kontrolowania błędu – przy zbyt dużym wzroście błędu proces uczenia mógłby stać się niestabilny Algorytm Quickprop (Fahlman) E t Δwij t = η + γwij t + αij t Δwij t 1 w t ij αij t = αmax βij t > αmax Sij t Δwij t 1βij t < 0 βij t w przeciwnym przypadku βij t = Sij t Sij t 1 Sij t Zmodyfikowany Quickprop (Veith) Δwij t = αij t Δwij t 1 dla Δwij t 1 0 E t w przeciwnym przypadku η wij t Sij t αij t = min ,αmax Sij t Sij t 1 E t Sij t = wij t Algorytm Levenberga-Marquardt’a • Jeden z najbardziej efektywnych i najczęściej stosowanych • Szybko zbieżny, o niewielkiej złożoności obliczeniowej i prostej implementacji • Oparty na rozwiązaniu nieliniowego problemu najmniejszych kwadratów Algorytm Levenberga-Marquardt’a • Zastąpienie hesjanu w optymalizacji newtonowskiej jego przybliżeniem • Dodanie czynnika regularyzacyjnego • Założenie kwadratowej funkcji błędu: Algorytm Levenberga-Marquardt’a Dla wektora residuów gdzie Algorytm Levenberga-Marquardt’a Można zapisać jakobian: Algorytm Levenberga-Marquardt’a Dla kwadratowej funkcji błędu gradient wyrazić można za pomocą jakobianu jako: Algorytm Levenberga-Marquardt’a Przyjmuje się przybliżenie hesjanu zależnością: gdzie u jest czynnikiem regularyzacyjnym. Otrzymujemy przyrost wag: Algorytm Levenberga-Marquardt’a • Czynnik regularyzacyjny u jest funkcją postępu procesu uczenia • Początkowo jest dużo większy od wartości własnych macierzy by ze zmniejszaniem się błędów dążyć do zera • Początkowo alg. największego spadku, później alg. Gaussa-Newtona o kwadratowej zbieżności Algorytm gradientów sprzężonych • Algorytm gradientów sprzężonych (conjugated gradients) rezygnuje z informacji o hesjanie • Jeden z najszybszych i najbardziej efektywnych algorytmów drugiego rzędu • Zbieżność zbliżona do liniowej, niewielkie wymagania co do pamięci Algorytm gradientów sprzężonych Algorytm postuluje tworzenie nowego kierunku tak, by był sprzężony z poprzednią wartością gradientu, oraz, jeśli to możliwe, z poprzednimi kierunkami: Byłoby to jednak mało praktyczne. Algorytm gradientów sprzężonych Nowy kierunek konstruuje się więc tak, aby zależał od gradientu i poprzedniego kierunku, oraz spełniał warunek ortogonalności: Algorytm gradientów sprzężonych Metody doboru współczynnika sprzężenia najczęściej wykorzystują gradient, bądź poprzednie kierunki poszukiwań. Jedną z najpopularniejszych jest metoda PolakaRibiere’a: Algorytm gradientów sprzężonych • Metoda ta wymaga ponownego startu po pewnej liczbie epok ze względu na błędy zaokrągleń • W związku z nimi zatracić się mogą właściwości ortogonalności między wektorami Algorytmy gradientowe podsumowanie • Metody gradientowe stanowią podstawowe narzędzie przy tworzeniu algorytmów uczenia sieci jednokierunkowych • Opierają się na strategii wstecznej propagacji błędu • Dzielą się na metody pierwszego i drugiego rzędu Algorytmy gradientowe podsumowanie • Algorytmy pierwszego rzędu stosowane są praktycznie jedynie przy uczeniu „on-line” • Dużo efektywniejsze są algorytmy drugiego rzędu • Algorytmy ze stałym współczynnikiem uczenia mają obecnie znaczenie historyczne Algorytmy gradientowe podsumowanie • Spośród wielkiej różnorodności metod uczenia wśród najpopularniejszych wymienić można algorytmy Levenberga-Marquardt’a i gradientów sprzężonych • Są one szybkimi algorytmami drugiego rzędu nie wymagającymi obliczania macierzy hesjanu • Większość z metod jest bardzo czuła na dobór stałych Algorytmy gradientowe podsumowanie • Prócz algorytmów czysto gradientowych, istnieją również metody łączące sporą dozę wiedzy heurystycznej z analizą funkcji • Sieci jednokierunkowe uczyć można także metodami czysto heurystycznymi lub „inteligentnymi” (np. alg. genetyczne, symulowane wyżarzanie, etc.) Sieci o bazach radialnych • Inaczej sieci radialne, RBF (radial basis function networks) • Zamiast sigmoidalnej, bądź skokowej funkcji aktywacji (f. bazowej) neuronu, funkcja radialna, np. gaussowska • Zamiast aproksymacji globalnej – lokalna Sieci o bazach radialnych Wykorzystanie w praktyce idei twierdzenia Covera: • problem separowalności wzorców zrzutowany nieliniowo w przestrzeń o większej liczbie wymiarów może być rozwiązany (liniowo separowalny) z większym prawdopodobieństwem, niż przy rzutowaniu w przestrzeń mniej wymiarową Struktura sieci RBF • Budowa: jedna warstwa ukryta, warstwa wyjściowa (stała architektura) Struktura sieci RBF • Ustalona architektura: warstwa neuronów radialnych i sumujący neuron liniowy na wyjściu • Funkcje bazowe różne dla poszczególnych neuronów • Funkcje bazowe działają na odległościach wejść od centrów bazowych Sieci RBF Wyjście sieci może zostać zapisane jako: gdzie - pewna norma, np. euklidesowa Aproksymacja siecią RBF • Dla zbioru danych uczących szukamy funkcji: Możemy zapisać aproksymację za pomocą radialnych funkcji bazowych: Działanie: sieci sigmoidalne contra RBF • Neuron sigmoidalny dzieli przestrzeń hiperpłaszczyzną na dwie części • Neuron radialny rozciąga hiperpłaszczyznę wokół pewnego centrum (np. punktu danych) • Aproksymacja sieciami sigmoidalnymi – globalna • Aproksymacja sieciami RBF – lokalna, wokół centrów (np. superpozycja hiperpłaszczyzn związanych ze wszystkimi danymi uczącymi) Sieci RBF • Neuron sigmoidalny – podział liniowy hiperpłaszczyzną • Neuron radialny – podział kołowy hipersferą Sieci RBF – funkcje radialne • Funkcja gaussowska: • Funkcja Hardy'ego: • Funkcja potęgowa: Sieci RBF – funkcje radialne Uwagi: • W typowym przypadku funkcje radialne charakteryzują się kołową symetrią wokół centrum • Od doboru parametru dyspersji σ zależy „zasięg oddziaływania” neuronu Sieci RBF • Przypadek najprostszy - liczba neuronów równa liczbie obrazów uczących • Przyjmujemy centra w punktach x • Otrzymujemy równanie liniowe względem wag sieci: Sieci RBF • Rozwiązanie równania daje nam parametry sieci Wady: • Ilość neuronów jest nadmiarowa, równa ilości próbek • Sieć ma słabą zdolność generalizacji (dopasowana do danych uczących) • Sieć jest bardzo podatna na błędy w danych Sieci RBF - uczenie • Oczywiście można stosować sieci o mniejszej liczbie neuronów • Aproksymacja przy użyciu k funkcji: • Należy dobrać centra i wagi Sieci RBF - uczenie • Uczenie znów polegać będzie na minimalizacji funkcji celu • Dla normy euklidesowej otrzymujemy kwadratową funkcję błędu: Sieci RBF - uczenie • Zadanie aproksymacji rozwiązujemy minimalizując funkcjonał: 2 L f = w j G || xi c j || d i + λ || Pf ||2 i=1 j=1 N K gdzie czynnik stabilizujący 2 T || Pf || = W G0W RBF - uczenie • Macierz symetryczna KxK G0 = G(c1 ,c1 ) G(c2 ,c1 ) G(cK ,c1 ) G(cK ,c1 ) G(c2 ,c2 ) G(cK ,c2 ) G(cK ,c2 ) G(cK ,cK ) G(c1 ,c2 ) Sieci RBF - uczenie • Zdefiniujmy macierz Greena: • Dla ustalonych centrów problem znów sprowadza się do rozwiązania układu równań Sieci RBF - uczenie • Rozwiązujemy względem wektora wag: G*w = d (dla lambda=0) • Jako, że macierz Greena jest prostokątna, stosujemy jej pseudoinwersję: i obliczamy szukany wektor wag sieci. Sieci RBF - uczenie • Dodatkowy problem – różna zmienność funkcji błędu w różnych kierunkach • Rozwiązanie – wprowadzenie do normy współczynników wagowych: Sieci RBF - uczenie • Jeżeli zdefiniujemy macierz korelacji jako: otrzymamy zmodyfikowaną normę euklidesową: Sieci RBF – dobór parametrów funkcji radialnych • Losowy – przyjęcie wartości z zakresu obrazów uczących lub wylosowanie centrów spośród nich • Dyspersja – przyjmowana apriorycznie w zależności od ilości neuronów i odległości między centrami d σ= 2K • Własności: rozwiązanie najprostsze, dla nieskomplikowanych problemów stosunkowo efektywne Co dalej z wagami? • Otrzymujemy (pomijając regularyzację) GW = d • Gdzie elementy G dane są np. jako: || xi t j ||2 Gij = exp 2 d / K Co dalej z wagami? • Po przekształceniu otrzymujemy jeszcze prostszą postać zależności na elementy G: xi t j 2 Gij = exp k 2 k d /K k =1 N przy czym k to k-ta składowa wektora, i to i-ty wzorzec uczący, a j – j-te centrum. Rozwiązanie • Rozkładamy macierz G na iloczyn macierzy ortogonalnych P (pxp) i Q (KxK), oraz T pseudodiagonalnej S: G = PSQ • Macierz pseudoodwrotną do G można zapisać jako: G = Q P + przy czym więc T 1 1 1 = diag , , , ,0,,0 SK S1 S 2 + W =G d Dobór parametrów RBF w procesie samoorganizacji • Po zaprezentowaniu k-tego obrazu uczącego wybierane jest najbliższe centrum, które podlega aktualizacji WTA: ti (k +1 ) = ti (k)+ ηxk ti (k) • W wersji skumulowanej tworzy się klastry, których centrum jest średnią wektorów składowych: 1 ti (k +1 ) = Ni Ni x (k) j j=1 Inne rozwiązania • Zastosowanie wagowej miary odległości centrum od prezentowanego wzorca (faworyzujemy centra, które rzadko wygrywały) • W miarę modyfikacji centrów zmienia się również współczynnik: η(k) = η0 k 1 + gdzie stałą czasową należy dobrać indywidualnie wT zależności od problemu. Dynamiczny dobór współczynnika uczenia Dobieramy współczynnik uczenia szacując postęp procesu uczenia: ti (k +1 ) = ti (k)+ M i (xk )η(k )xk ti (k) M i xk = 1 dla vi || xk t j ||2 v j || xk t j ||2 0 dla reszty vi (k +1 ) = αvi (k)+ ( 1 α)M i (xk ) || xk ti || 2 Miara oceny jakości uczenia • Zakładamy, że w stanie optymalnym wszystkie wagi centrów v są równe. • Miara jakości podział na klastry w postaci funkcji entropii: K H v1 ,v2 , ,vK = vˆk ln ( vˆk ) k =1 vˆk = vk K v i i=1 Współczynnik uczenia oparty na mierze jakości • Dobór współczynnika zależy od postępów procesu uczenia (mierzonych funkcją H) i jest bezpośrednio związany z wartościami wag w każdym kroku: H v1 ,v2 , ,vK η(k) = 1 ln(K) Dobór pola recepcyjnego (dyspersji) funkcji bazowych • Pola recepcyjne powinny pokrywać cały obszar danych wejściowych • Powinny się na siebie nakładać jedynie nieznacznie (gładkie odwzorowanie) • Najprostsze rozwiązanie: odległość euklidesowa od najbliższego sąsiada. Dobór pola recepcyjnego (dyspersji) funkcji bazowych • Można również uwzględnić szersze sąsiedztwo (P najbliższych sąsiadów): 1 P 2 σj = || t j tk || P k=1 • Zwykle P nie przekracza 3 Sieci RBF – dobór parametrów funkcji radialnych • Użycie technik samoorganizacji sieci • Podział danych na klastry różnymi metodami (np. k-średnich) • Dyspersje ustalane w zależności od odległości od najbliższego sąsiada • Różne modyfikacje i wariacje na temat metody • Bardziej złożony, ale efektywniejszy sposób od doboru losowego Sieci RBF - podsumowanie • Druga z najczęściej stosowanych grupa sieci • Sieci jednokierunkowe o ustalonej architekturze (jedna warstwa ukryta) • Zamiast skokowych funkcji aktywacji neuronów, funkcje radialne • Funkcje bazowe o symetrii kołowej zmieniające się wokół pewnego centrum Sieci RBF - podsumowanie • Mogą być stosowane w zadaniach aproksymacji i klasyfikacji nieliniowej (tw. Covera) • Aproksymacja jest w praktyce oparta na lokalnej interpolacji • Wymagają często mniejszej liczby neuronów niż sieci o sigmoidalnych funkcjach aktywacji Sieci RBF - podsumowanie • Uczenie sieci RBF polega na wyznaczeniu funkcji bazowych (centrów, dyspersji), a następnie na obliczeniu wag warstwy ukrytej • Najprymitywniejsze podejście zakłada budowę sieci dokładnie odwzorowującą dane uczące • Bardziej efektywne są metody, które pozwalają na stopniowe dodawanie neuronów, aż do osiągnięcia założonego błędu, lub dążące do stworzenia sieci o zadanym rozmiarze Sieci rekurencyjne • W odróżnieniu od sieci jednokierunkowych istnieje sprzężenie zwrotne między wyjściem a wejściem • Często symetryczne połączenia między neuronami • Duża liczba owych połączeń • Opis za pomocą zależności dynamicznych Sieci rekurencyjne • Zmiana stanu jednego neuronu powoduje zmianę stanu wszystkich elementów sieci • Zmiana stanu wywołuje stan przejściowy, prowadzący do ustalenia się nowych wartości parametrów i sygnałów w sieci • Dla funkcji aktywacji f sygnał wyjściowy neuronu oznacza jego stan: Sieci rekurencyjne • Zmianę stanu neuronów można opisać układem równań postaci: gdzie i=1…N, b jest wartością progową, natomiast tau pewną stałą wartością (analogicznie do opisu układów RC). Sieci rekurencyjne • Stan neuronu uzyskujemy na podstawie rozwiązania równania różniczkowego jako y=f(u) • Dla danego stanu pobudzenia neuronów można przyporządkować sieci funkcję energetyczną Lapunowa daną wzorem: N 1 1 E = wij yi y j + 2 j i,i j i=1 Ri xi f 0 1 i N (yi )dyi + bi yi i=1 Sieci rekurencyjne • Funkcja Lapunowa maleje w funkcji stanu pobudzenia neuronów • W związku z tym zmiana stanu pojedynczego neuronu powoduje zmianę stanu energetycznego całej sieci • Energia sieci maleje aż do osiągnięcia minimum (lokalnego) funkcji energetycznej • Sieci o symetrycznych powiązaniach między neuronami nie mogą oscylować Sieci Hopfielda (Hopfield 1982) • Ze względu na zastosowania nazywana również pamięcią asocjacyjną • Zwykle przedstawiana jako układ z bezpośrednim sprzężeniem od wyjść do wejść sieci Sieć Hopfielda • Wyjścia sieci stanowią jednocześnie jej sygnały wejściowe • Brak jest sprzężenia neuronu z jego własnych wyjściem • Zadaniem sieci jest zapamiętanie elementów ciągu uczącego tak, aby w trybie odtwarzania układ wygenerował dla zadanego wzorca jeden z wcześniej zapamiętanych elementów Sieć Hopfielda • Sieć powinna wygenerować jeden z zapamiętanych obrazów nawet jeśli prezentowany jej wzorzec różni się od niego nieznacznie • W tym celu wprowadza się odpowiednią metrykę, która umożliwi zbadanie odległości prezentowanego wzorca od obrazów wcześniej zapamiętanych Sieć Hopfielda • Dla wektorów o składowych binarnych można zdefiniować tzw. odległość Hamminga daną jako: n d H = xi 1 yi + 1 xi yi i=1 • Odległość Hamminga równa jest więc liczbie bitów różniących te dwa wektory • Będzie ona równa zero jedynie dla y=x Sieć Hopfielda • Proces uczenia ma więc za zadanie taki dobór wag, aby na etapie odtwarzania sieć mogła wygenerować obraz najbliższy w sensie miary Hamminga prezentowanemu wzorcowi • Podczas uczenia ustalane są obszary przyciągania (atraktory) punktów odpowiadających danym uczącym Działanie sieci • Dwa tryby: tryb uczenia (ustalania wag) sieci, oraz tryb odtwarzania (działania) • Przy przyjęciu skokowej funkcji aktywacji (signum) sygnał wyjściowy neuronu można zapisać jako: N yi = sgn wij x j + bi j= 0 • Można więc opisać sieć: yi k = sgn wij y j k 1 j=1, i j N z warunkiem początkowym y j 0 = x j Działanie sieci • Jeżeli w procesie uczenia bierzemy pod uwagę tylko jeden wzorzec uczący, proces uczenia będzie trwał dopóki zależność nie będzie spełniona dla wszystkich neuronów • Otrzymamy rozwiązanie dla: ponieważ (bo x*x=1) Działanie sieci • Dla p elementów ciągu uczącego otrzymujemy aktualizację wag wg uogólnionej reguły Hebba: a więc wagi przyjmują uśrednione wartości elementów ciągu. Działanie sieci - stabilność • Gdy wzorców uczących jest wiele, istotne staje się zapewnienie stabilności działania • Aby sieć działała stabilnie, odpowiedź i-tego neuronu na l-ty wzorzec musi być równa i-tej składowej wzorca • Otrzymujemy więc warunek: Stabilność sieci • Zapiszmy sumę ważoną sygnałów wejściowych i-tego neuronu: N 1 (l) u = x + xi(k)x(k) x j j N j=0 k l (l) i (l) i • Pierwszy składnik to pożądany czynnik x, natomiast reszta to tzw. składnik przesłuchu • Składnik przesłuchu musi być na tyle mały, aby nie zmienił znaku x • Nawet dla niezerowego przesłuchu proces klasyfikacji może zakończyć się we właściwym atraktorze Pojemność pamięci asocjacyjnej • Pojemność pamięci – maksymalna liczba wzorców zapamiętanych i odtwarzanych z zadanym akceptowalnym błędem • Dla błędu rzędu 1% bitów w niewłaściwym stanie, pojemność pamięci wynosi 18.5% liczby neuronów (przy założeniu, że początkowy błędny stan jednego z nich nie wpływa na inne neurony) • W rzeczywistości, maksymalna pojemność to zaledwie 13.8% liczby neuronów Uczenie sieci Hopfielda • Uczenie ma na celu znalezienie takich wag, dla których w fazie odtworzeniowej przy prezentacji wektora bliskiego zapamiętanemu, sieć znajdzie się w stanie ustalonym • Najprostsza metoda – uczenie regułą Hebba: 1 W = XX N • Metoda mało efektywna, przy istnieniu szumu wiele błędów (minima lokalne dalekie od rozwiązania) Uczenie sieci Hopfielda • Metoda pseudoinwersji (rzutowania) – każdy wzorzec podany na wejście powinien generować siebie samego i prowadzić do natychmiastowego stanu ustalonego: • Jednym z rozwiązań układu Np równań jest: (X+ - pseudoinwersja) • Dla wektorów liniowo niezależnych można uprościć do: (metoda rzutowania – zwykła inwersja macierzy kwadratowej) Uczenie sieci Hopfielda • Dla metody rzutowania zastosować można również wersję iteracyjną, nie wymagającą obliczania odwrotności macierzy • Dla warunku początkowego W(0)=0, po jednokrotnej prezentacji wzorców otrzymujemy: • Pojemność sieci wzrasta i wynosi: N-1 Uczenie sieci Hopfielda • Metoda rzutowania delta (gradientowa metoda minimalizacja odpowiedniej funkcji celu) • Dobór wag rekurencyjny i w w + η / N x wx i x • Metoda ta wymaga wielokrotnej prezentacji wszystkich wzorców uczących i T Tryb odtwarzania sieci Hopfielda • Gdy sieć zostanie nauczona jej wagi nie ulegają dalszym modyfikacjom • Na wejście podajemy wektor testowy x (y(0)=x) i obliczamy iteracyjnie wyjście sieci: y i = sgn Wy i 1 aż do ustalenia się odpowiedzi. • Istnieje też metoda sekwencyjna, w której obliczenia przeprowadza się dla losowo wybranych neuronów (mniejsza złożoność) Tryb odtwarzania sieci Hopfielda • Obliczanie wyjścia – iteracyjny, długotrwały proces • Niebezpieczeństwa: częste osiąganie niewłaściwych punktów równowagi – te same wartości funkcji energetycznej dla przeciwnych stanów polaryzacji (np. stany (1, -1, 1) i (-1, 1, 1) mają tę samą energię) • Mieszanie składowych zapamiętanych wzorców, minima lokalne, pośrednie minima lokalne, nie wynikające z żadnych wzorców Implementacja sprzętowa sieci Hopfielda • Punkt wyjścia – opis równaniem różniczkowym: • Schemat neuronu: Sieć Hamminga (Lippmann, 1987) • Zasada działania: minimalizacja odległości Hamminga wektora testowego od wektora reprezentującego wzorce uczące, zakodowane w strukturze sieci • Budowa: trójwarstwowa struktura rekurencyjna Sieć Hamminga –budowa • Warstwa pierwsza jednokierunkowa, bez sprzężenia, skokowa aktywacja (0-1) • Warstwa druga, MAXNET: neurony sprzężone każdy z każdym (również z własnym wyjściem) • Wagi warstwy MEXNET stałe, pomiędzy różnymi neuronami gaszące, pomiędzy wyjściem a neuronem równe +1 • Warstwa wyjściowa jednokierunkowa, reprezentuje wektor wyjściowy Uczenie sieci Hamminga • Wzorce uczące – wektory N-wymiarowe z wartości -1 lub +1 • Pierwsza faza uczenia: prezentujemy wzorzec uczący tak długo, aby neurony pierwszej warstwy ustaliły swoje wyjścia (wejście MAXNETu) • Druga faza: rozpoczyna się proces iteracyjny w MAXNET tak długo, aż wszystkie wektory poza jednym osiągną stan 0 • Neuron o niezerowym wyjściu zwycięża – oznacza klasę wektora wejściowego Uczenie sieci Hamminga • Pamięć heteroasocjacyjna – pamięta pary wektorów (we/wy) • Węzły wejściowe przyjmują wartości kolejnych wektorów uczących • Neurony warstwy pierwszej określają odległość Hamminga między wektorem testowym a każdym zapamiętanym • Warstwa MAXNET wykrywa najmniejszą odległość • Warstwa wyjściowa odtwarza wektor wyjściowy dla danej klasy Działanie sieci Hamminga • Pojemność pamięci jest równa ilości neuronów warstwy wejściowej (każdy neuron reprezentuje jedną klasę) • Inicjalizacja wag: wagi warstwy pierwszej reprezentują kolejne wzorce uczące, wagi warstwy wyjściowej kolejne wektory wyjściowe z c. uczącego • W warstwie MAXNET inicjalizacją wzmacnia się sygnał danego neuronu i osłabia sygnały pozostałych Działanie sieci Hamminga • Inicjalizacja warstwy MAXNET: wii(m) = 1 1 < wij(m) < 0 p 1 • Wagi powinny różnić się między sobą, można więc przyjąć: 1 w = +φ p 1 (m) ij gdzie p jest ilością neuronów w pierwszej warstwie, phi wartością losową o niewielkiej amplitudzie Działanie sieci Hamminga • Na początku wartości wszystkich węzłów układu są zerowe (prócz wejścia) • Neurony warstwy wejściowej przyjmują sygnały wyjściowe: (dh – odległość Hamminga) • Następnie usuwa się pobudzenie a warstwie MAXNET zachodzi iteracyjny proces obliczeń: Działanie sieci Hamminga • Proces ten jest powtarzany do ustalenia się wartości wszystkich neuronów (jeden aktywny, pozostałe w spoczynku) • Neuron aktywny zostaje zwycięzcą i poprzez zestaw wag wyjściowych odtwarza odpowiedni wektory na wyjściu Sieć Hamminga - podsumowanie • Zwykle daje lepsze rezultaty niż sieć Hopfielda • Potrzebuje mniej wag: dla sieci o 100 wejściach kodującej 10 wektorowych klas, sieć Hopfielda wymaga 10000 wag, natomiast sieć Hamminga 1000 wag w warstwie pierwszej i 100 w warstwie MAXNET (bez warstwy wyjściowej - autoasocjacja) • Pojemność sieci 2cp, c<1 Sieci BAM (Bidirectional Associative Memory, Kosko 1988) • Uogólnienie struktury Hopfielda na dwuwarstwową sieć rekurencyjną • Umożliwia zakodowanie par wektorów We/Wy • Przepływ sygnałów dwukierunkowy, tryb pracy synchroniczny Sieci BAM • Skokowa funkcja aktywacji neuronów (0 i 1 lub -1 i 1) • Wejściowe wektory binarne muszą być zakodowane jako bipolarne (-1, 1) • Macierz wag jest niesymetryczna, określa przepływ sygnałów w jedną stronę jako W, w drugą jako WT • Macierz W określa się jako macierz korelacji dla danych uczących: Sieci BAM • Zaczynając od pary sygnałów początkowych (x0, y0 ) następuje dwukierunkowy proces przetwarzania sygnałów: najpierw od wejścia do wyjścia, potem odwrotnie: Sieci BAM • W końcu generowane są na wyjściu wartości odpowiadające stanowi ustalonemu sieci BAM • Dla każdego punktu procesu ustalania wag zapisać można funkcję energetyczną: • Każda kolejna zmiana wag powoduje zmniejszenie wartości funkcji energetycznej Sieci BAM • W skończonej ilości kroków osiągane jest minimum lokalne: • Każde inne rozwiązanie, nawet odległe o 1 w sensie odległości Hamminga będzie gorsze • Niestety, nie zawsze otrzymany punkt stabilny równy jest parze uczącej najbliższej stanowi początkowemu (muszą zajść dodatkowe warunki) Sieci BAM • Wykazano, że jeśli energia stowarzyszona z i-tą parą uczącą nie tworzy minimum lokalnego, to nie może być ona odtworzona (nawet, gdy przyjmiemy równe jej wartości początkowe) • Jeśli obrazy uczące są niepodobne do siebie w sensie odległości Hamminga (np. podobne wejścia, różne wyjścia), to sieć działa źle Problem – błędy w danych • związane z procesem akwizycji, przetwarzania, wstępnej analizy • mogą być wynikiem różnego rodzaju szumów, błędów urządzeń, błędów człowieka • typowa zawartość grubych błędów w rzeczywistych przypadkach – kilka procent; • zawartość w naukach opisowych (medycyna) – do 20% • mogą być systematyczne (proste do identyfikacji), lub trudne do wykrycia i zidentyfikowania Błędy grube: • różnią się znacznie od większości danych • nieprawdziwe staję się założenie o normalności rozkładu błędów • nieskuteczne stają się również tradycyjne metody statystyczne Dane odstające: • dane różniące się znacznie od ogółu danych (nieścisła definicja) • mogą być błędami grubymi lub nieść informacje na temat zjawiska • istnieją statystyczne metody pomagające je wykrywać Odporna statystyka (robust statistics) • zajmuje się sytuacjami, w których założenia tradycyjnej statystyki nie są spełnione • bada skuteczność istniejących metod przy różnych założeniach • proponuje nowe, lepsze (odporniejsze) metody statystyczne oraz ich aplikacje Odporna statystyka • Pierwsze prace z dziedziny odpornej statystki datują się na połowę lat 60. ubiegłego stulecia • Skuteczne algorytmy obliczeniowe odpornych estymatorów powstawać zaczęły w latach 80. • Pierwsze próby zastosowania osiągnięć tej dziedziny do praktyki uczenia sieci neuronowych miały miejsce pod koniec lat 90. XX wieku • Rozwój zarówno odpornej statystyki, jak i metod uczenia z nią związanych trwa do dziś Główne postulaty odpornej statystyki • odporność metod statystycznych na dane słabej jakości, niepełne, zawierające błędy grube, etc. • prawidłowe działanie odpornych metod dla czystych danych Wybrane odporne estymatory • RM (Siegel, 1982) • LMS (Rosseeuw, 1984) • S (Rousseuw i Yohai 1984) • MAD (Martin, Yohai, Zamar 1989) • -estymatory (Yohai i Zamar 1998) • W, L, R, i inne Uczenie sieci neuronowych a błędy grube: • metody uczenia sieci dedykowane są dla danych o gaussowskim rozkładzie błędów • sieć ucząc się na błędnych danych modeluje nieprawidłową relację • model tworzony przez sieć może być daleki od żądanego • działanie tak nauczonej sieci jest nieprzewidywalne, bez względu na rodzaj danych, na których pracuje Wybrane odporne algorytmy uczenia sieci • RBP w zadaniu aproksymacji funkcji (Chen i Jain, 1994) • Próby uodpornienie algorytmu uczenia dla RBF (Sanchez, 1995) • Algorytm z kryterium Lmls (Liano, 1996) • ARBP (Chuang, 2000) • TAO (Pernia-Espinoza et al., 2005) Odporne algorytmy uczenia sieci (literatura): • przeznaczone są do uczenia sieci jednokierunkowych (najczęściej sigmoidalnych) • opierają się zwykle na modyfikacji funkcji kryterialnej minimalizowanej przez algorytm • działają przy stosunkowo ostrych ograniczeniach i biorą pod uwagę jedynie pewne rodzaje zakłóceń Odporne algorytmy uczenia sieci – postulaty: • algorytmy powinny uczyć sieć prawidłowo dla danych czystych • powinny uczyć sieć możliwie dobrze również w przypadku obecności w danych różnych typów dużych zakłóceń • mechanizmy uodporniające proces uczenia powinny być wkomponowane w sam algorytm uczenia Signal Plus Error Model Klasyczne podejście do modelowania danych z zakłóceniami przedstawia się następująco: yi R oznacza odpowiedź układu na wejście xi Rp, g - jest pewną określoną funkcją, - wektorem parametrów rozkładu, - parametrem dyspersji, - oznacza szum lub losowe zakłócenia. Modele błędów w danych • Typ 1: Zakłócenia modelowane są jako suma dwóch rozkładów normalnych o różnych wariancjach i zerowej wartości oczekiwanej (Gross Error Model). • Typ 2: Zakłócenia modelowane są jako suma kilku rozkładów o różnych wariancjach i wartościach oczekiwanych (zakłócenia niesymetryczne). • Typ 3: Zakłócenia symulowane są zastąpieniem połowy danych jednorodnym szumem tła. • Typ 4: Zakłócenia typu 1 wprowadzane są do wektora wejściowego. Błędy typu 1: Gross Error Model Rozkład zakłóceń ma następującą postać: Błędy typu 2: o rozkładzie niesymetrycznym Rozkład zakłóceń jest postaci: Błędy typu 3: brak części danych • połowa danych zastąpiona zostaje jednorodnym szumem tła Błędy typu 4: błędy w wektorze wejściowym • błędy w wektorze wejściowym generowane podobnie jak dla typu 1 Minimalizowana funkcja kryterialna (funkcja błędu) • Najczęściej używa się funkcji kwadratowej: • Ogólnie można użyć funkcji: a więc w szczególności Współczynnik uczenia W najprostszej wersji współczynnik uczenia jest stały: więc zmiana wag odbywa się zawsze proporcjonalnie do niego. Celem klasycznego algorytmu uczenia jest minimalizacja funkcji kosztu (cost function) postaci: 1 N E = ρri N i=1 gdzie – funkcja błędu ciągła i symetryczna, ri = ti – yi,( błąd dla obrazu uczącego i), N – ilość obrazów uczących. Gdy w jest modyfikowanym wektorem parametrów (wag sieci) można obliczyć pochodną: ri E 1 N = ψ ri w N i=1 w Wtedy funkcję definiowaną jako: ρri ψ ri = ri Nazywamy funkcją wpływu (influence function). W najogólniejszej postaci odpornego algorytmu uczenia funkcję kosztu definiuje się następująco: N ER = σ ei , β gdzie: i=1 ( ) – funkcja strat, symetryczna, posiadająca swe jedyne minimum w zerze; – estymator skali, punkt odcięcia; ei – szacowany błąd dla i-tego obrazu uczącego; N – ilość danych uczących. Przy zastosowaniu algorytmu uczenia opierającego się na minimalizacji w kierunku malejącego gradientu, aktualizacja wag odbywa się w następujący sposób: N ei ER Δw j = η = η ei ; β w j w j i=1 przy czym: - stały współczynnik uczenia; oraz: ei ; β ei ; β = ei Cechy tej metody uczenia • mniejszy, niż w przypadku algorytmu klasycznego wpływ błędów grubych na rezultaty uczenia sieci • problemy, m.in. z wyborem wag początkowych, czy też funkcji • sugeruje się zastosowanie wersji klasycznej w kilku pierwszych epokach Algorytm LTS • funkcja kryterialna oparta na odpornym estymatorze LTS (least trimmed squares) • dwa warianty algorytmu • przeznaczony do stosowania przy uczeniu skumulowanym, metodami pierwszego lub drugiego rzędu Estymator LTS Estymator Lts zapisać można jako: Zastosowanie na gruncie sieci neuronowych Wyjście drugiej warstwy sieci: Kryterium LTS Nowa funkcja kryterialna przyjmuje postać: Aktualizacja wag Dla metody największego spadku przyrosty wag wynoszą: Problem – postać gradientu Dla opisanego przyrostu wag Problem: dobór stałej trymowania h • h dobierane na podstawie wiedzy a priori • h dobierane na podstawie aktualnych błędów jako: Algorytm Ltls (Least Trimmed Log Squares) • nowa funkcja kryterialna • połączenie idei przycinania błędów z funkcją kary • zasada działania analogiczna do Lts Kryterium Ltls Otrzymuje się analogiczne do Lts funkcję kryterialną i przyrosty wag: Gradient Ltls Otrzymujemy, podobnie jak poprzednio, gradient dany jako: Algorytm ze zmiennym współczynnikiem uczenia VLR (variable learning rate) • algorytm dla metod uczenia typu „on-line” • niwelowanie wpływu błędów grubych przez zmiany współczynnika uczenia • współczynnik uczenia modyfikowany w zależności od aktualnego błędu Zmiana wag wg największego spadku Modyfikacja współczynnika dla każdego obrazu uczącego: Odporny algorytm z adaptacyjnym doborem współczynnika uczenia ALR (adaptive learning rate) • algorytm dedykowany do uczenia typu skumulowanego (batch learning) • możliwość użycia z metodami uczącymi drugiego rzędu • współczynnik uczenia odpowiada za zmniejszanie wpływu błędów grubych W każdym kroku algorytmu dobiera się współczynnik uczenia za pomocą minimalizacji funkcji celu po wartościach zależnego od błędu współczynnika uczenia: Algorytm ze zmienną funkcją aktywacji neuronów ATF (adaptive transfer function) • kształt funkcji aktywacji neuronów jest zmienny w czasie • jego zmiany odpowiadają za zmniejszanie wpływu błędów grubych na proces uczenia • przeznaczony do uczenia skumulowanego również z algorytmami drugiego rzędu Parametr funkcji aktywacji neuronów zmienia się w zależności od postępów procesu uczenia Odporny algorytm drugiego rzędu dedykowany dla kryterium Lmls • algorytm drugiego rzędu do uczenia sieci przy założeniu funkcji błędu postaci Lmls • szybciej zbieżny od metody największego spadku • prosty obliczeniowo Algorytmy gradientowe opierają się o rozwinięcie funkcji celu w szereg wokół rozwiązania: W algorytmach drugiego rzędu bierze się pod uwagę pierwsze dwie pochodne, a więc: Definiuje się macierz Jakobianu jako: Oblicza się dokładną wartość gradientu i przybliżoną hesjanu i na ich podstawie definiuje krok algorytmu Levenberga-Marquardta: Definiujemy nową odporną funkcję błędu, oraz macierz q: Na tej podstawie obliczyć można gradient, oraz definiując macierz JQ przybliżoną wartość hesjanu: Algorytm z ważoną funkcją celu Wlmls • informacja o danych uczących odbiegających od większości przekazywana jest do algorytmu uczenia poprzez wprowadzenie ważonej funkcji celu • wagi zmniejszają wpływ danych uznanych za błędy grube • stosowanie z algorytmami typu „batch” Odporny estymator MCD polega na znalezieniu określonej wielkości zbioru danych, dla którego macierz kowariancji ma najmniejszy wyznacznik. Na tej podstawie oblicza się odległości poszczególnych punktów od centrum. W algorytmie uczenia tworzy się wektor ze wszystkich elementów ciągu uczącego, następnie na podstawie wyznaczonych wcześniej odległości, oblicza się poszczególne wagi, które uzupełniają definicję funkcji błędu: Nowe rozwiązania • Least Median of Squares (El-Melegy, M.T., Essai, M.H., Ali, A.A.) 2009 • RANSAC (El-Melegy) in press • LTA Sieci samoorganizujące się • Koherencja i kolektywność • Pierwsze sieci samoorganizujące się, tzw. sieci Kohonena (Kohonen, 1982) • W sieciach tych występuje najczęściej uczenie oparte na współzawodnictwie neuronów (typu konkurencyjnego) • Neuron wygrywający ma szanse na aktualizację swych wag Sieci Kohonena • Neurony reprezentowane mogą być wektorami wag w przestrzeni wzorców wejściowych • Neuron zwyciężający ma więc szansę przybliżyć się do wzorca mu najbliższego (w danej metryce) • Docelowo sieć tworzy topologiczny obraz przestrzeni sygnałów wejściowych Sieć Kohonena (SOM – Self Organizing Feature Map) • Sieć uczona bez nauczyciela • Dane uczące składają się jedynie z wektorów wejściowych • W najprostszej postaci sieć jednokierunkowa, każdy neuron połączony z każdym wejściem • Wejście znormalizowane: Sieci Kohonena • Po prezentacji obrazu wejściowego, rywalizację wygrywa neuron najbliższy mu według zadanej metryki • Następnie neuron zwyciężający i neurony z jego sąsiedztwa aktualizują wagi: (wsp. zależny od odległości) Uczenie sieci Kohonena • Otrzymujemy więc algorytm uczenia: • W klasycznym algorytmie definiowano G jako: • Lepsze rezultaty: Sąsiedztwo na podstawie topologii sieci • Sąsiedztwo określać można również na podstawie budowy sieci Miary odległości • Euklidesowa: • Il. skalarny: • Mahalanobisa: • L1 i L∞: Miary odległości • Dla miary Euklidesowej otrzymujemy podział przestrzeni na wieloboki Voronoia – przestrzeń wokół punktów centralnych to strefy dominacji neuronów • Iloczyn skalarny (b) bez normalizacji może skutkować niespójnym podziałem przestrzeni • Rozwiązanie – normalizacja (istotna jedynie dla małych wymiarów sieci) Wieloboki Voronaia Obszary Voronaia definiuje się jako: Np. dla normy Euklidesowej otrzymujemy wypukłe wieloboki: Algorytm z mechanizmem zmęczenia • Podstawa – obserwacja biologiczna: neuron ma skończony czas relaksacji • Założenie – dać szansę neuronom, które nie wygrały procesu współzawodnictwa • Wprowadza się dla każdego neuronu potencjał dany jako: 1 dla i w pi k +1 = pi k + n p k p min i dla i = w • Neuron, którego potencjał spadnie poniżej pmin „odpoczywa” Uczenie z wymuszeniem (z krytykiem) • Metoda autoasocjacji: • Przyrostowej autoasocjacji: • Metoda zbliżania wag: Algorytm gazu neuronowego • Swobodne neurony mogące przemieszczać się w przestrzeni wag • Analogia do dynamiki cząsteczek gazu • Neurony sortuje się w zależności od ich odległości od wektora wejściowego • Siła adaptacji wag (przesunięcia neuronów) zależy od ich odległości od wzorca Algorytm gazu neuronowego • Neurony są sortowane niemalejąco w zależności od ich odległości od wektora wejściowego • Wartość funkcji sąsiedztwa zapisuje się jako: mi G i, x = e λ gdzie m oznacza pozycję neuronu uzyskaną w wyniku sortowania, lambda odpowiada za określenie promienia sąsiedztwa neuronu Algorytm gazu neuronowego • Proces powinien rozpoczynać się od dużej wartości lambda, która powinna maleć w nieskończoności do zera: k / k max λmin λk = λmax λmax • Współczynnik uczenia dla każdego neuronu również powinien maleć w czasie: ηmin ηi k = ηi 0 ηi 0 k / k max Logika rozmyta • Rozszerzenie klasycznej logiki dwu- lub więcejwartościowej do logiki o ciągłym zbiorze wartości • Opracowana przez profesora Lotfi Zadeha w latach 60. • Powiązana z teorią zbiorów rozmytych • Stosowana w systemach sterowania, automatyki, do detekcji elementów obrazu, etc. Zbiory rozmyte • Rozszerzenie klasycznej teorii zbiorów uwzględniające możliwość częściowej przynależności do zbioru • Funkcja przynależności przyjmować może wartości z ciągłego zbioru [0,1], a nie jedynie wartości 0 lub 1 • Wartości funkcji traktować można jako opis stopnia prawdziwości stwierdzenia, że element należy do zbioru Zbiór rozmyty - definicja Zbiorem rozmytym na przestrzeni X (będącej klasycznym zbiorem) nazywamy zbiór uporządkowanych par: gdzie funkcją przynależności do zbioru. jest Funkcja przynależności Dla funkcji przynależności zachodzi: Zbiór rozmyty - definicje Nośnik zbioru (support) Rdzeń zbioru (core) Wysokość zbioru (height) Zbiór rozmyty - definicje Wypukły zbiór rozmyty Alfa-cięcie zbioru rozmytego Logika rozmyta (fuzzy logic) • Jest pewnym rozszerzeniem, choć nie uogólnieniem logiki wielowartościowej • Dopuszcza ciągły zbiór wartości • Może być traktowana jako zastosowanie teorii zbiorów rozmytych • Różni się znacząco od teorii prawdopodobieństwa, nie jest jej uogólnieniem Logika rozmyta • Umożliwia opisywanie świata ze stopniowaniem, np. bardzo, trochę, wcale, etc. • Pozwala na formalny zapis „niepewności” rozumianej jako niepełny opis sytuacji • Rozmywaniu mogą uleć nie tylko funkcje przynależności określone na predykatach logicznych, ale i cały sposób wnioskowania Logika rozmyta – formalnie Funkcja przynależności przekształcająca predykaty logiczne w uporządkowany zbiór par rozmytych: Zastosowania - przykład Kontrola systemu ABS Operatory logiczne • W logice rozmytej operatory logiczne AND, OR i NOT definiowane są zwykle jako minimum, maksimum i dopełnienie, a więc: Schemat kontrolera rozmytego Wyostrzanie • Proces przedstawienia wyników działania logiki rozmytej w sposób możliwy do późniejszego wykorzystania • Zwykle wynik działania systemu rozmytego opisany jest jako przynależność do zbiorów rozmytych możliwych działań • Rolą wyostrzania jest przetłumaczenie tego na konkretne działanie Wyostrzanie – podstawowe metody • Metoda maksimum: • Metoda środka ciężkości: • Metoda średnich wartości centrów: Neuro – fuzzy systems • Systemy łączące cechy wnioskowania w oparciu o logikę rozmytą z teorią sieci neuronowych • Dwa sprzeczne postulaty: możliwość interpretacji kontra dokładność sieci • Możliwość wykorzystania modyfikacji znanych algorytmów uczenia sieci do wygenerowania systemu rozmytego Neuro – fuzzy systems Sieć neuronowa rozmyta • Gaussowska funkcja przynależności: • Funkcja wyostrzająca uśredniająca centra: • Można uczyć alg. gradientowymi Logika rozmyta - podsumowanie • Pozwala zapisać problem w sposób intuicyjny, wyróżniający „odcienie szarości” między prawdą a fałszem • Pozwala na prosty zapis (kodowanie) stopniowania obecnego w języku naturalnym • Umożliwia tworzenie systemów hybrydowych (numeryczno – lingwistycznych) Podejście ewolucyjne • Podejście obliczeniowe oparte na przeglądaniu populacji rozwiązań • Inspirowane regułami ewolucji biologicznej (doboru naturalnego) • Wykorzystuje znane z biologii mechanizmy: rozmnażanie, rekombinacje, mutacje, dobór osobników najlepiej przystosowanych Podejście ewolucyjne • Spojrzenie na problem: potencjalne rozwiązania jako osobniki w populacji, funkcja dopasowania jako opis warunków środowiskowych, funkcja celu (czasem tożsama) jako opis celu nadrzędnego procesu ewolucji • Osobnik dobrze dopasowany do warunków – dobre rozwiązanie Techniki ewolucyjne • Programowanie genetyczne – poszukiwania programów komputerowych, które w najlepszy sposób nadają się do rozwiązania konkretnych problemów • Programowanie ewolucyjne – poszukiwania odpowiednich parametrów w algorytmach (programach) • Neuroewolucja – poszukiwania właściwej do danych zastosowań struktury sztucznej sieci neuronowej • Strategie ewolucyjne – strategie ze zmiennoprzecinkową reprezentacją danych, zwykle z adaptacyjnym doborem czynnika mutacji • Algorytmy genetyczne – o tym będzie więcej Algorytmy genetyczne • Rodzina algorytmów przeszukiwania przestrzeni rozwiązań w problemie optymalizacyjnym oparta na mechanizmie ewolucyjnym • Globalne algorytmy heurystyczne umożliwiające przybliżanie się do optimum globalnego (znalezienie rozwiązania przybliżonego lub dokładnego) Historia • 1954 – N. Barricelli przeprowadza pierwsze symulacje komputerowe procesu ewolucyjnego • 1957 – A. Fraser (genetyk): sztuczna selekcja organizmów • Lata 60. – publikacje łączące problemy optymalizacyjne z mechanizmami ewolucyjnymi • Lata 70. – J. Holland: podstawy algorytmów genetycznych w Adaptation in Natural and Artificial Systems • Lata 80. – coraz więcej technik symulacji • Lata 90. – komercyjnie dostępne oprogramowanie, etc. i tak aż do dziś… Algorytmy genetyczne - podstawy • Populacja reprezentowana w dziedzinie poszukiwań za pomocą abstrakcyjnych tworów (zestaw chromosomów, genotyp, genom) określających niezbędny zestaw informacji • Rozwiązania reprezentowane jako osobniki (fenotypy) w populacji • Fenotyp osobnika (a więc również dopasowanie do środowiska) zależy od zestawu genów Zarys algorytmu • Wylosowanie populacji początkowej o zadanym rozmiarze • Ocena przystosowania każdego z osobników • Wybór osobników najlepiej przystosowanych • Rozmnażanie wybranych osobników (rekombinacje, mutacje, etc.) • Wygenerowanie kolejnego pokolenia – nowej populacji • Jeśli nie jest to dobre rozwiązania, ponowne wykonanie kolejnych kroków algorytmu Algorytm wymaga więc: • Zdeterminowania sposobu kodowania genotypu jako reprezentacji wyniku (zwykle kodowanie binarne, możliwe też inne) • Doboru odpowiedniego sposobu obliczania funkcji dopasowania, a więc obliczania wartości rozwiązania (funkcja ta wskazywać ma na jakość rozwiązania) Kodowanie informacji genetycznej • Od jego postaci zależy nie tylko szybkość osiągania rozwiązania, ale i to, które obszary przestrzeni rozwiązań zostaną przeszukane • Zwykle kodowanie genomu w postaci ciągu bitów, możliwe też wersje z danym zmiennoprzecinkowymi (trudniejsze w implementacji) • Możliwe również kodowanie za pomocą struktur drzewiastych i grafów Funkcja przystosowania (dostosowania, fitness function) • Określa jakość uzyskanego rozwiązania (inaczej przystosowania osobnika do warunków środowiska) • Zwykle zależy od funkcji celu w problemie optymalizacyjnym • Może być budowana na podstawie odległości od pożądanego (zadanego) celu Metody selekcji – wyboru osobników najlepiej przystosowanych • Chcemy, aby generowane w następnym kroku algorytmu (następnej populacji) rozwiązania miały cechy najlepszych rozwiązań z kroku aktualnego • Problem sprowadza się więc do wyboru osobników, które będą miały możliwość przekazania swoich genów dalej Metody selekcji • Najprostszy sposób – obliczenie funkcji przystosowania dla wszystkich osobników w populacji i następnie wybór grupy o najlepszych (najmniejszych lub największych) wartościach • W praktyce często ocena przystosowania wszystkich osobników jest technicznie niewykonalna (rozwiązanie: losowanie) Metody selekcji • Zwykle oprócz pozostawienia grupy osobników najlepiej przystosowanych pozwala się przetrwać pewnej ilości osobników słabszych • Zapobiega to szybkiej zbieżności do optimów lokalnych – zwiększa różnorodność populacji pozwalając na przeszukiwania większych obszarów Metody selekcji • Często stosowana jest tzw. metoda ruletki (roulette-wheel selection) • Osobniki najlepiej przystosowane dysponują największym wycinkiem koła • Potem „kręci się” kołem i wybiera tego, który zostanie wylosowany • Procedura powtarzana jest zadaną ilość razy (tyle, ile osobników potrzebujemy) Metoda ruletki – algorytm • Policz wartości funkcji przystosowania dla każdego osobnika i znormalizuj je (aby sumowały się do 1) • Posortuj populację wg otrzymanych wartości • Policz wartości skumulowane dla każdego osobnika • Wylosuj osobnika do wyboru (pierwszy, którego wartość skumulowana przekroczy losową liczbę z przedziału [0,1]) Metody selekcji – inne rozwiązania • Uniwersalne próbkowanie – za każdym razem losujemy więcej niż jednego osobnika • Turniej – za każdym razem wybieramy najlepszego osobnika z losowej próby • Można również zawężać wybór do pewnej liczby lub procentu najlepszych • Czasem pozwala się grupie najlepiej przystosowanych osobników powielić się bez zmian w następnym pokoleniu Metody selekcji • Można również stosować wybór wielokryterialny – oceniać przystosowanie osobników za pomocą różnych funkcji • Podsumowując: osobniki lepiej przystosowane mają większe szanse na rozmnażanie – przekazanie genów dalej • Zbieżność jest tu równoznaczna z praktycznym brakiem różnić pomiędzy pokoleniami Przeszukiwanie przestrzeni cech rozmnażanie • W tworzeniu nowego pokolenia uczestniczą osobniki wybrane odpowiednią metodą selekcji • Genotypy potomków uzyskiwane są zwykle na podstawie odpowiedniego przetworzenia genotypów rodziców • W procesie powstawania nowego zestawu genów uczestniczyć może 2 lub więcej rodziców Rozmnażanie – typowe operacje • Krzyżowanie – utworzenie nowego genomu na podstawie np. dwóch innych przez wymianę fragmentów genomu (crossover), stosowanie sumy i przekroju bitowego, uśrednianie • Mutacja – wprowadzenie pewnych losowych zmian w chromosomach, np. zamiana miejscami, wygenerowanie nowych wartości z zadanego rozkładu (mutacja zachodzi z niewielkim prawdopodobieństwem) Kryteria stopu algorytmu • Algorytm kończyć można podobnie jak inne algorytmy optymalizacyjne, a więc wtedy, gdy: - znajdujemy wystarczająco dobre rozwiązanie, - przekroczymy zadaną maksymalną liczbę pokoleń, - zatrzymał się postęp procesu optymalizacji (nowe rozwiązania niewiele poprawiają), - przekroczone zostały dopuszczalne zasoby Zastosowania algorytmów genetycznych • • • • • • • Informatyka Inżynieria (projektowanie) Chemia Ekonomia Bioinformatyka Filogenetyka Fizyka Zastosowania – konkretniej • Rozwiązywanie problemów NP-trudnych, np. problem komiwojażera, problem plecakowy • Projektowanie anten, ich ułożenia • Projektowanie obwodów elektrycznych • Projektowanie układów scalonych • Neuroewolucja (!) Neuroewolucja • Za pomocą algorytmów ewolucyjnych dobiera się parametry sieci neuronowych • Dobierać można wagi sieci (typowe parametry) lub całą topologię (architekturę) sieci • W najprostszym przypadku topologię dobiera się na podstawie zmniejszania lub zwiększania liczby neuronów Neuroewolucja • Schemat postępowania – genotyp musi zawierać informacje o strukturze (lub jedynie wagach sieci) • Fenotyp to sieć neuronowa mająca wykonywać określone zadanie • Genotyp może zostać zakodowany bezpośrednio lub w postaci reguł umożliwiających wygenerowanie sieci NEAT (Neuroevolution of augmenting topologies, Stanley 2002) • Najpopularniejszy algorytm neuroewolucyjny • Budowanie struktury i parametrów sieci wielowarstwowej jednokierunkowej • Sieć początkowa posiada jedynie wejścia i wyjścia • Kolejne pokolenia są coraz bardziej rozwinięte • Dopuszcza się krzyżowanie topologii, oraz ewolucję gatunków Podsumowanie – podejścia ewolucyjne • Proste w implementacji i stosowaniu • Zaskakująco skuteczne w szybkim generowaniu dobrych rozwiązań • Gorsze w szczegółowym „dostrajaniu” rozwiązania • Wymagają ustalenia wielu wstępnych parametrów • „Ciężkie” obliczeniowo