1908


IDEA

0x08 graphic
Sieci neuronowe

... jest to system symulujący pracę mózgu

Zastosowanie: - Rozpoznawanie - Kojarzenie - Przewidywanie - Sterowanie

Zalety/wady : - nie trzeba programować - uczy się sama - odporna na uszkodzenia - potrafi uogólniać - operuje na pojeciach rozmytych - nie radzi sobie z wieloetapowym rozumowaniem

0x08 graphic
Budowa

0x08 graphic

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

0x08 graphic
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

0x08 graphic
separowane

0x08 graphic
0x08 graphic

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)

0x01 graphic
0x01 graphic
0x01 graphic
0x01 graphic
0x01 graphic

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

0x08 graphic
Potencjał membranowy

0x08 graphic

Funkcje aktywacji

Liniowa (Madaline)

0x08 graphic

0x08 graphic

F. skoku jednostkowego

0x01 graphic

0x08 graphic
F. sigmoidalne

funkcja Heaviside'a:

0x08 graphic

F. tangensoidalne

0x01 graphic

0x01 graphic

0x01 graphic


Perceptron prosty:

  1. Elementem składowym perceptronu jest sztuczny neuron, którego model matematyczny może być opisany funkcją aktywacji unipolarną lub bipolarną:

0x01 graphic
0x01 graphic
0x01 graphic

  1. 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

  2. Perceptron nie zawiera połączeń pomiędzy elementami należącymi do tej samej warstwy.

  3. Połączenia pomiędzy warstwami są asymetryczne i skierowane zgodnie z ich uporządkowa

0x08 graphic
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;

0x08 graphic
 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;

0x08 graphic
 za pomocą kombinacji dwóch powyższych metod.

Najprostsza jest metoda ustalonego kroku wzrostu, którą można opisać równaniem

0x08 graphic
0x08 graphic
0x08 graphic
Perceptron wielowarstwowy: dwuwarstwowy

0x08 graphic
0x08 graphic

0x08 graphic

0x08 graphic

Zadanie XOR

Aladine

0x08 graphic
0x08 graphic
0x08 graphic
przy uczeniu minimalizowany jest blad średniokwadratowy a w wyznaczaniu bierze się pod uwage wartość sumatora ALC

0x08 graphic
algorytm uczenia przyjmuje postać:

0x08 graphic
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:

0x08 graphic

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.


0x08 graphic
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:

0x01 graphic

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:

0x01 graphic

co pozwala istotnie uprościć praktyczną realizację algorytmu.

Uogólniona reguła delty

0x08 graphic
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:

0x01 graphic

Ostatecznie wzór ogólny przyjmie postać:

0x01 graphic

Rozważmy M-warstwową sieć elementów o jednakowych nierosnących i różniczkowalnych funkcjach aktywacji f():

0x01 graphic

Ogólnie algorytm propagacji wstecznej wymaga dla każdego wzorca uczącego wykonania następujących działań:

  1. Podaj wektor uczący u na wejście sieci.

  2. Wyznacz wartości wyjść ujm każdego elementu dla kolejnych warstw przetwarzania neuronowego, od pierwszej warstwy ukrytej do warstwy wyjściowej.

  3. Oblicz wartości błędów δjM dla warstwy wyjściowej.

  4. Oblicz wartość sumy kwadratów błędów .

  5. 0x08 graphic
    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:

0x01 graphic

W przypadku liniowych elementów przetwarzających mamy

Stąd otrzymamy:

0x08 graphic
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:

0x08 graphic
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:

0x01 graphic

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:

0x01 graphic

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.



Wyszukiwarka