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: w Może być uczony z nauczycielem lub bez ij t + 1= w t +ηy x w t ij i j ij
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 Δw = ηy x Uczenie z nauczycielem ij lub bez i j
Neuron sigmoidalny
Liniowa separowalność XOR x 1 0 0 1 1 x 2 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: f x = 1 1 e αx Funkcja bipolarna: f x= tanhαx
Uczenie neuronu sigmoidalnego Pierwszy sposób (dyskretny): w i ij t + 1= w t = y i d i ij df s ds η i i i x i Drugi sposób: dw dt ij = ηd i x j
Funkcje aktywacji w 1,w 2,...w p wagi (ang. weights) w 0 - wartość progowa, polaryzacja, przesunięcie (ang. bias) f funkcja aktywacji (ang. activation function, transfer function) y w 1 w 2 w 0 w p 1 x 1 y x 2 f w 0 p i1 x p w i x i
Funkcje aktywacji Skokowa f. aktywacji (nieróżniczkowalna): ( u) sgn( u) f b sgn Funkcja sigmoidalna bipolarna: f f bip1 bip2 ( u) tgh( u) 2 ( u) 1 2 f 1 exp( u) unip ( u) 1 Funkcja sigmoidalna unipolarna: f unip ( u) 1 1 exp( u)
Pochodne funkcji aktywacji ) ( ) 1 ( 2 ) ( ) ( ) ( 1 ) ( ) ( ) ( ) 1 ( ) ( ) ( 2 2 1 1 u f u f u d u df u f u d u df u f u f u d u df unip unip bip bip bip unip unip unip
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ń M ( J, n) n k0 J k
Uczenie perceptronu q i p i N i i i R R ) ( ) ( 1 ) ( ) (, gdzie, }, { d x d x Zbiór uczący: Zwykle funkcja celu: Dla jednej próbki uczącej (uczenie on-line): ang. on-line (incremental) learning q j y j d j E 1 2 ) ( 2 1 Dla całego zbioru uczącego: ang. batch learning N k q j k j k y j d E 1 2 ) ( ) ( ) ( 2 1 Uczenie z nauczycielem (pod nadzorem) Epoka zaprezentowanie całego zbioru uczącego
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.
Hesjan: Algorytmy gradientowe
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 w k
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)q η(t)q i d dla Q(t) k dla Q(t)> k Q(t 1) Q(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. w w
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) Δw ij t = η E w ij t t +γw ij t +α t Δw t 1 ij ij α ij t = α β t > α S t Δw t 1β t β max ij t ij max w przeciwnym przypadku ij ij ij < 0 β ij t = S ij S ij t t 1 S t ij
Zmodyfikowany Quickprop (Veith) Δw ij t = α t Δw t 1 dla Δw t 1 α ij η ij t E w = ij ij t t min S ij S ij t ij 0 w przeciwnym przypadku S ij t, α max t S t 1 = E w ij ij t 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 Polaka- Ribiere 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ł: L N f = w G x c i= 1 K j= 1 gdzie czynnik stabilizujący j i j di + λ Pf 2 2 Pf 2 =W T G W 0
RBF - uczenie Macierz symetryczna KxK ),c G(c ),c G(c ),c G(c ),c G(c ),c G(c ),c G(c ),c G(c ),c G(c ),c G(c = G K K 2 K 1 K 2 K 2 1 1 K 2 1 2 2 1 1 0
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: G ij = xi t j exp 2 d / K 2
Co dalej z wagami? Po przekształceniu otrzymujemy jeszcze prostszą postać zależności na elementy G: G ij = N k= 1 exp i xk d j tk / K 2 2 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: Macierz pseudoodwrotną do G można zapisać jako: przy czym więc G + = Q P T W = G + d G = PSQ 1 1 1 = diag,,,,0,,0 S S S 1 2 K
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: t i (k + 1)= t i (k)+η W wersji skumulowanej tworzy się klastry, których centrum jest średnią wektorów składowych: x k t i (k) t i (k + 1)= 1 N i N i j= 1 x j (k)
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: η0 η(k)= k 1+ T gdzie stałą czasową należy dobrać indywidualnie w zależności od problemu.
Dynamiczny dobór współczynnika uczenia Dobieramy współczynnik uczenia szacując postęp procesu uczenia: t i (k + 1)= t i (k)+m (x i k )η( k) x k t i (k) M i 2 2 xk = 1 dla v x t v x t i k j j k j 0 dla reszty v i (k + 1 )= αv (k)+( 1 α)m (x ) x t i i k k i 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: H vˆ k v = 1,v K 2 v i= 1 k,,v v i K = K vˆ k= 1 k ln(vˆ k )
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: η(k) = H v1,v2,,v 1 ln(k) 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): σ P 1 j = t j tk P k= 1 2 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: E = 1 2 1 w ij yi y j + fi (yi )dyi + j i,i j N 1 R x i i= 1 i 0 i= 1 N b i y i
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: d H = n i= 1 x 1 y + 1 x 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 i i i y i
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: Można więc opisać sieć: y i N = sgn w j= 0 z warunkiem początkowym y i N ij x j j y 0 + b k = sgn w y k 1 j= 1, i j ij j = i 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: u (l) i = x (l) i 1 + N j= 0 k l 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 N Nawet dla niezerowego przesłuchu proces klasyfikacji może zakończyć się we właściwym atraktorze x (k) i x (k) j x (l) j
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: W = 1 N XX 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 w w+η / N x i wx i x i T Metoda ta wymaga wielokrotnej prezentacji wszystkich wzorców uczących
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: w (m) ii = 1 1 < w p 1 < 0 Wagi powinny różnić się między sobą, można więc przyjąć: w (m) ij = gdzie p jest ilością neuronów w pierwszej warstwie, phi wartością losową o niewielkiej amplitudzie (m) ij 1 +φ p 1
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 2 cp, c<1
Sieci BAM (Bidirectional Associative Uogólnienie struktury Hopfielda na dwuwarstwową sieć rekurencyjną Umożliwia zakodowanie par wektorów We/Wy Memory, Kosko 1988) 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 W T Macierz W określa się jako macierz korelacji dla danych uczących:
Sieci BAM Zaczynając od pary sygnałów początkowych (x 0, y 0 ) 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: y i R oznacza odpowiedź układu na wejście x i R p, 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: E = N i= 1 gdzie funkcja błędu ciągła i symetryczna, r i = t i y i,( błąd dla obrazu uczącego i), N ilość obrazów uczących. 1 N ρ r i
Gdy w jest modyfikowanym wektorem parametrów (wag sieci) można obliczyć pochodną: E = w 1 N r r i w Wtedy funkcję definiowaną jako: ψ r i = N i= 1 ρ r ψ r Nazywamy funkcją wpływu (influence function). i i i
W najogólniejszej postaci odpornego algorytmu uczenia funkcję kosztu definiuje się następująco: E R = N = gdzie: i 1 ( ) funkcja strat, symetryczna, posiadająca swe jedyne minimum w zerze; estymator skali, punkt odcięcia; e i szacowany błąd dla i-tego obrazu uczącego; N ilość danych uczących. σ e i, β
Przy zastosowaniu algorytmu uczenia opierającego się na minimalizacji w kierunku malejącego gradientu, aktualizacja wag odbywa się w następujący sposób: przy czym: - stały współczynnik uczenia; oraz: N = i j i i j R j w e ; β e η = w E η = Δw 1 i i i e ; β e = ; β e
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: p i p k + 1= p k Neuron, którego potencjał spadnie poniżej pmin odpoczywa i i k 1 + n p min dla dla i w i = w
Uczenie z wymuszeniem Metoda autoasocjacji: (z krytykiem) 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: m i λ Gi,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: max λ min λ k = λ max λ max Współczynnik uczenia dla każdego neuronu również powinien maleć w czasie: k / k max η min ηi k = ηi 0 ηi 0 k / k
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: