IDEA
Sieci neuronowe
... jest to system symulujący pracę mózgu
Zalety/wady : - nie trzeba programować - uczy się sama - odporna na uszkodzenia - potrafi uogólniać - operuje na pojeciach rozmytych - nie radzi sobie z wieloetapowym rozumowaniem
Budowa
Rodzaje sieci : - jednokierunkowe - rekurencyjne (ze sprzężeniem zwrotnym)
Działanie : PYTANIE - Siec neuronowa - ODPOWIEDZ
Funkcja aktywacji: jak jest przekształcany sygnał wejściowy
# neuron liniowy - odpowiedz neuronu = potencjał membranowy #neuron nieliniowy - bipolarna funkcja skoku jednostkowego
Preceptron Sieć jednokierunkowa złożona z neruonów o nieliniowej (unipolarnej lub bipolarnej) funkcji aktywacji
Wagi: określają istotność poszczególnych sygnałów wejściowych (w wagach zapisany jest wzorzec ideału)
Struktura :
siec liniowa (n warstwowa) Siec nieliniowa 2 warstwowa Siec nieliniowa 3 warstwowa
siec jednowarstwowa(liniowa i - rozwiązuje zadania gdzie akceptowany - rozwiazuje zadania gdzie zbior nie musi
nieliniowa) zbior jest spojny i wypokly być spojny
- rozwiazuje tylko zadania liniowo
separowane
Uczenie neuronu : na podstawie algorytmu zmiany wartości wag # z nauczycielem #bez nauczyciela
Trzeba uczyć siec na wyrywki
Współczynnik uczenia : określa wartość korekty wagi niedouczonego neuronu #Surowy nauczyciel, #łagodny nauczyciel
Momentum: zależność korekty wagi od korekty poprzedniej
Bias: przesunięcie progu aktywacji neuronu
Uczenie sieci: algorytm wstecznej propagacji błędów (backpropagation) wymaga innej funkcji aktywacji (ciągła, różniczkowalna)
Samouczenie się sieci: atraktor - „pociągający” dla sieci archetyp
# sygnały wejściowe musza dać się zaszufladkować #musi być odpowiednio duża liczba neuronów (odpowiednio mądra)
# różnorodne preferencje początkowe neuronów (wagi) #siec nie chce się uczyć nowych rzeczy gdy już dużo umie
Samouczenie z konkurencja: uczony jest tylko najsilniejszy neuron (potrzeba wtedy mniej neuronów, trochę więcej niż atraktorów)
MATEMATYKA
Model neuronu
Potencjał membranowy
Funkcje aktywacji
Liniowa (Madaline)
F. skoku jednostkowego
F. sigmoidalne
funkcja Heaviside'a:
F. tangensoidalne
Perceptron prosty:
Elementem składowym perceptronu jest sztuczny neuron, którego model matematyczny może być opisany funkcją aktywacji unipolarną lub bipolarną:
Sieć perceptronową można podzielić jednoznacznie na ściśle uporządkowane i rozłączne klasy elementów zwane warstwami, wśród których wyróżnić można warstwę wejściową i wyjściową. Pozostałe noszą nazwę warstw ukrytych
Perceptron nie zawiera połączeń pomiędzy elementami należącymi do tej samej warstwy.
Połączenia pomiędzy warstwami są asymetryczne i skierowane zgodnie z ich uporządkowa
Algorytm uczenia można sformułować w następujący sposób:
Pokaż obraz wejściowy u i wyznacz wyjście y.
Podejmij jedną z poniższych decyzji:
- jeśli obraz wyjścia jest poprawny, to wróć do punktu 1 i pokaż inny obraz wejściowy u;
- jeśli sygnał wyjścia jest niepoprawny i równy 0, to dodaj wartość każdego wejścia ui pomnożoną przez pewną liczbę do wartości odpowiedniego współczynnika wag, wi;
- jeśli sygnał wyjścia jest niepoprawny i równy 1, to odejmij wartość każdego wejścia ui pomnożoną przez pewną liczbę od wartości odpowiedniego współczynnika wag, wi.
Wróć do punktu pierwszego i pokaż inny obraz wejściowy u.
Metody uczenia
za pomocą ustalonego kroku wzrostu lub spadku;
za pomocą kroku proporcjonalnego do różnicy pomiędzy sumą ważoną otrzymaną w sumatorze a oczekiwaną wartością wyjściową; w tym przypadku proces uczenia może być niestabilny;
za pomocą kombinacji dwóch powyższych metod.
Najprostsza jest metoda ustalonego kroku wzrostu, którą można opisać równaniem
Perceptron wielowarstwowy: dwuwarstwowy
Zadanie XOR
Aladine
przy uczeniu minimalizowany jest blad średniokwadratowy a w wyznaczaniu bierze się pod uwage wartość sumatora ALC
algorytm uczenia przyjmuje postać:
Wprowadź na wejście elementu Adaline wektor wejściowy um.
Wyznacz błąd xm(k) według wzoru:
Wyznacz nowy wektor wag w(k + 1)
według wzoru:
Powtarzaj kroki 1 - 3 tak długo, aż suma kwadratów błędów dla zbioru G nie stanie się wystarczająco mała, tzn. mniejsza od zadanej dokładności. reguła uczenia Widrowa - Hoffa
Maladine
dea metody MRII zawiera się w poniższym algorytmie:
1. Podaj wektor uczący na wejście Madaline i wyznacz odpowiedź warstwy wyjściowej.
2. Oblicz liczbę niepoprawnych wartości w warstwie wyjściowej. Liczba ta będzie miarą dokładności (błędem).
3. Dla wszystkich elementów warstwy wyjściowej:
- wybierz pierwszy (wcześniej nie wybrany) element, dla którego wynik ważonego sumowania w bloku ALC jest najbliższy zeru (w takim elemencie niewielka zmiana wag spowoduje odwrócenie znaku na bipolarnym wyjściu bloku aktywacji, stąd określenie "zasada minimalnego zaburzenia");
- zmień wagi wybranego elementu tak, aby zmienić wartość jego wyjścia z bloku aktywacji;
- ponownie wyznacz wektor wyjściowy dla wejściowego wektora uczącego;
jeśli w wyniku zmiany wag zmniejszył się błąd (tzn. ilość wyjść bipolarnych różnych od wzorcowych), zaakceptuj te zmiany, w przeciwnym razie powróć do wag poprzednich.
4. Powtórz krok 3 dla wszystkich pozostałych warstw za wyjątkiem warstwy wejściowej.
5. Dla wszystkich elementów warstwy wyjściowej:
- wybierz (wcześniej nie wybraną) parę elementów, dla których ważona suma wejść w bloku ALC jest bliska zeru;
- zmień wago wybranych elementów tak, aby zmienić wartość ich wyjść z bloku aktywacji;
- ponownie wyznacz wektor wyjściowy dla wejściowego wektora uczącego;
- jeśli w wyniku zmiany wag zmniejszył się błąd, zaakceptuj te zmiany, w przeciwnym razie powróć do stanu poprzedniego.
6 . Powtórz krok 5 dla wszystkich pozostałych warstw za wyjątkiem warstwy wejściowej.
Algorytm wstecznej propagacji błędów
Reguła delty i metoda największego spadku
1. Przy prezentacji m-tego wzorca na wejściu sieci, dla j-tego elementu wyjściowego możemy zdefiniować błąd:
2. Jako miarę błędu sieci wprowadźmy sumę po wszystkich wzorcach błędów powstałych przy prezentacji każdego z nich:
n oznacza liczbę elementów w warstwie wyjściowej
3. Problem uczenia sieci to zagadnienie minimalizacji funkcji błędu . Jedną z najprostszych metod minimalizacji jest gradientowa metoda największego spadku. Jest to metoda iteracyjna, która poszukuje lepszego punktu w kierunku przeciwnym do gradientu funkcji celu w danym punkcie. Stosując powyższą metodę do uczenia sieci, zmiana wji wagi połączenia wji winna spełniać relację:
4. Ostatecznie pełną regułę wyznaczania wag połączeń zapiszemy:
gdzie górne indeksy n i s oznaczają odpowiednio "nową" i "starą" wartość współczynnika wag wji.
5. Konsekwentna realizacja metody największego spadku wymaga dokonywania zmian wag wji dopiero po zaprezentowaniu sieci pełnego zbioru wzorców, m = 1, 2, ..., P. W praktyce stosuje się jednak zmiany wag po każdej prezentacji pojedynczego wzorca zgodnie ze wzorem:
co pozwala istotnie uprościć praktyczną realizację algorytmu.
Uogólniona reguła delty
1. Rozważmy sieć jednowarstwową z elementami przetwarzającymi o nieliniowej, lecz niemalejącej i różniczkowalnej funkcji aktywacji f. Wówczas zmianę wag wji można opisać równaniem:
2. Druga z pochodnych cząstkowych jest oczywiście równa ui. Pierwsza dla elementu liniowego jest równa -δj. Przez analogię zdefiniujemy nową zmienną:
gdzie f'() oznacza pochodną funkcji aktywacji względem zmiennej .
Stąd na podstawie zamieszczonych wyżej wzorów zapiszemy:
Ostatecznie wzór ogólny przyjmie postać:
Rozważmy M-warstwową sieć elementów o jednakowych nierosnących i różniczkowalnych funkcjach aktywacji f():
Ogólnie algorytm propagacji wstecznej wymaga dla każdego wzorca uczącego wykonania następujących działań:
Podaj wektor uczący u na wejście sieci.
Wyznacz wartości wyjść ujm każdego elementu dla kolejnych warstw przetwarzania neuronowego, od pierwszej warstwy ukrytej do warstwy wyjściowej.
Oblicz wartości błędów δjM dla warstwy wyjściowej.
Oblicz wartość sumy kwadratów błędów .
Dokonaj propagacji wstecznej błędu wyjściowego δjM do poszczególnych elementów warstw ukrytych wyznaczając δjm według wzoru:
Dokonaj aktualizacji wag kolejno pomiędzy warstwą wyjściową i ukrytą, a następnie pomiędzy warstwami ukrytymi przesuwając się w kierunku warstwy wejściowej
Przyspieszenie zbieżności algorytmu, przy jednoczesnym zachowaniu stabilności, możliwe jest przy zastosowaniu techniki momentum. Zgodnie z tą techniką zmiana wag dla (k + 1)-ej prezentacji wzorca wyraża się wzorem:
W przypadku liniowych elementów przetwarzających mamy
Stąd otrzymamy:
Uogólniona reguła delty jest procedurą dwufazową. W pierwszej fazie na wejściu sieci prezentowany jest wektor wzorcowy u i dla każdej warstwy wyznacza się aktualne aktywności wszystkich elementów przetwarzających zgodnie ze wzorem:
Fazę tą kończy porównanie aktywności elementów wyjściowych yj, j = 1, 2, ..., nM z oczekiwanymi wyjściami yjz. W drugiej fazie błąd warstwy wyjściowej δjM jest rzutowany wstecz zgodnie ze wzorem:
na wszystkie elementy przetwarzające sieci w kolejności przeciwnej do uporządkowania warstw:
Po określeniu wartości błędów dla każdego elementu przetwarzającego warstw ukrytych pozostaje jedynie wyznaczenie poprawek wag połączeń przy pomocy wzoru:
Technika polegająca na przesyłaniu błędów warstwy wyjściowej wstecz poprzez sieć w celu określenia odpowiednich zmian wag w warstwach wcześniejszych nazwana została wsteczną propagacją błędów, i stąd nazwa metody uczenia.
Jednakże dla pewności otrzymanego rozwiązania proces uczenia należy powtórzyć po wprowadzeniu pewnych modyfikacji do struktury sieci lub algorytmu w zakresie:
- zmiany liczby elementów w warstwach ukrytych;
- zmiany wartości współczynników uczenia i momentum;
- zmiany wartości wag początkowych (np. zmiana zakresu, z którego są losowane początkowe wartości) w taki sposób, aby stan początkowy sieci znalazł się na obszarze innej "doliny" funkcji w przestrzeni wag.