sieci neuronowe

6. SIECI NEURONOWE

Neuron:

Do wejść doprowadzane są sygnały dochodzące z neuronów warstwy poprzedniej. Każdy sygnał mnożony jest przez odpowiadającą mu wartość liczbową zwaną wagą. Wpływa ona na percepcję danego sygnału wejściowego i jego udział w tworzeniu sygnału wyjściowego przez neuron. Waga może być pobudzająca - dodatnia lub opóźniająca – ujemna; jeżeli nie ma połączenia między neuronami to waga jest równa zero. Zsumowane iloczyny sygnałów i wag stanowią argument funkcji aktywacji neuronu.

Sztuczny neuron - prosty system przetwarzający wartości sygnałów wprowadzanych na jego wejścia w pojedynczą wartość wyjściową, wysyłaną na jego jedynym wyjściu (dokładny sposób funkcjonowania określony jest przez przyjęty model neuronu). Jest to podstawowy element sieci neuronowych, jednej z metod sztucznej inteligencji, pierwowzorem zbudowania sztucznego neuronu był biologiczny neuron.

biologiczna budowa neuronu,

Neuron McCullocha-Pittsa (ang. McCulloch-Pitts neuronthreshold neuron) to podstawowy blok budulcowy sztucznych sieci neuronowych. Jest on wybitnie uproszczonym matematycznym modelem biologicznego neuronu. Neuron McCullocha-Pittsa posiada wiele wejść i jedno wyjście. Każdemu z wejść przyporządkowana jest liczba rzeczywista - tak zwana waga wejścia. Wartość na wyjściu neuronu obliczana jest w następujący sposób:

1. obliczana jest suma iloczynów wartości xi podanych na wejścia i wag wi wejść:

2. na wyjście podawana jest wartość funkcji aktywacji f(s) dla obliczonej sumy

Reguła Hebba

Opierając się na zasadzie tworzenia się odruchów warunkowych, Hebb wprowadził następującą zasadę. Jeśli aktywny neuron A jest cyklicznie pobudzany przez neuron B, to staje się on jeszcze bardziej czuły na pobudzenie tego neuronu. Jeśli przez xA i xB oznaczymy stany aktywacji neuronów A i B, a przez wAB - wagę ich połączenia synaptycznego, to powyższą regułę można zapisać w postaci następującego równania:

gdzie  oznacza pewną stałą dodatnią, sterującą procesem uczenia.

Reguła Hebba posiada istotną wadę, mianowicie prowadzi do procesu rozbieżnego. Aby to udowodnić, rozważmy liniowy element przetwarzający. Jego stan aktywacji x w chwili k jest równy:

gdzie w(k) oznacza wektor wag wejściowych połączeń synaptycznych elementu, u(k) - wektor wejściowy należący do pewnego zbioru  wektorów uczących, wzięty z tego zbioru zgodnie z rozkładem prawdopodobieństwa, oraz podany na wejście elementu w chwili k-tej.

Zgodnie z ogólną regułą kolejne prezentacje wzorców ze zbioru  zmieniają wektor wag o przyrost W(k) określony zależnością:

Dalej będziemy zakładać, że elementy ciągu u(k) są niezależne (tzn. wynik losowania wzorca ze zbioru  w danej chwili nie zależy od wyników losowań w innych chwilach). Warunkiem zbieżności procesu uczenia jest zerowanie się (od pewnego momentu) średniej zmiany wag:

gdzie:

jest macierzą korelacji obrazów wejściowych, a E. operatorem wartości oczekiwanej.

Zgodnie z definicją macierz A jest macierzą symetryczną. Ponadto można wykazać, że jest dodatnio półokreślona, gdyż:

Wynika stąd, że wszystkie jej wartości własne są rzeczywiste i nieujemne. Wektory własne odpowiadające różnym wartościom własnym są ortogonalne. Z warunku zbieżności procesu uczenia wynika, że potencjalny stan równowagi wr jest wektorem własnym a0 macierzy Aodpowiadającym zerowej wartości własnej, tzn. wr = a0, gdzie Aa0 = 0. Aby przekonać się, czy stan a0 jest stanem stabilnym, wystarczy sprawdzić, czy po niewielkim zaburzeniu układ kierujący się regułą Hebba do niego powróci.

Niech wektor w(0) będzie wektorem bliskim a0, tzn. w(0) = a0 + e0, przy czym e(0) jest niewielkim zaburzeniem a0. Wartość oczekiwana wektora wag w (k + 1)-ym kroku wyraża się zależnością:

Definiując e(k) = w(k) - a0 otrzymujemy:

Wynika stąd zależność:

Korzystając z ortogonalności wektorów własnych macierzy A, można ją przekształcić do postaci diagonalnej Z-1AZ = D, przy czym Z jest macierzą, której kolumny są kolejnymi wektorami własnymi macierzy A, D - macierzą diagonalną, której diagonala zawiera odpowiednie wartości własne macierzy A.

Definiując:

otrzymujemy zależność:

czyli:

Zauważmy, że macierz występująca po prawej stronie powyższego wzoru jest diagonalna. Dla stabilności potrzeba, aby limk Ee(k) = 0 lub równoważnie limk e~(k) = 0. Stąd i z ostatniej zależności otrzymujemy warunek:

gdzie j oznacza j-tą wartość własną macierzy A. Oczywiście warunek ten jest spełniony tylko wtedy, gdy:

Ponieważ jednak  > 0, w konsekwencji otrzymujemy warunek:

Przeczy to jednak dodatniej półokreśloności macierzy korelacji A. Z przeprowadzonego rozumowania wynika więc rozbieżność procesu uczenia według reguły Hebba.

Funkcja aktywacji to pojęcie używane w sztucznej inteligencji do określenia funkcji, według której obliczana jest wartość wyjścia neuronów sieci neuronowej. Do najczęściej używanych funkcji aktywacji należą:

y(x) = ax + b

Uwagi:

a - zadana wartość progowa

Uwagi:

a - zadana wartość progowa

Uwagi:

Uwagi:

Uwagi:

perceptron wielowarstwowy

Perceptron wielowarstwowy

Ograniczenie liniowej separowalności perceptronu prostego można usunąć poprzez wprowadzenie warstw ukrytych. Oto struktura perceptronu wielowarstwowego:

przy czym i = 1, 2, ..., mm - liczba elementów w warstwie wejściowej; j = 1, 2, ..., nn - liczba elementów w warstwie wyjściowej; h = 1, 2, ..., HH - liczba warstw ukrytych; kh - 1, 2, ..., KHKH - liczba elementów w h-tej warstwie ukrytej; whkh-1, kh - waga połączenia pomiędzy elementami kh-1-tym oraz kh-tym odpowiednio w warstwach (h-1)-szej i h-tej.

zastosowanie sieci neuronowych -

Współcześnie nie ma wątpliwości, że sztuczne sieci neuronowe nie stanowią dobrego modelu mózgu[potrzebne źródło], choć różne ich postaci wykazują cechy charakterystyczne dla biologicznych układów neuronowych: zdolność do uogólniania wiedzy, uaktualniania kosztem wcześniej poznanych wzorców, dawanie mylnych odpowiedzi po przepełnieniu[potrzebne źródło]. Mimo uproszczonej budowy sztuczne sieci neuronowe stosuje się czasem do modelowania schorzeń mózgu[potrzebne źródło].

Sztuczne sieci neuronowe znajdują zastosowanie w rozpoznawaniu i klasyfikacji wzorców (przydzielaniu wzorcom kategorii), predykcji szeregów czasowych, analizie danych statystycznych, odszumianiu i kompresji obrazu i dźwięku oraz w zagadnieniach sterowania i automatyzacji.

Magazyn BYTE wymienia między innymi następujące zastosowania tych sieci:

Najpopularniejsze obecnie zastosowanie sieci neuronowych[potrzebne źródło]:

Uczenie sieci neuronowych bez nauczyciela

Podczas uczenia bez nauczyciela pożądana odpowiedz nie jest znana. Ze względu na brak informacji o poprawności, czy niepoprawności odpowiedzi sieć musi się uczyć poprzez analizę reakcji na pobudzenia, o których naturze wie mało lub nic. W trakcie analizy parametry sieci podlegają zmianom, co nazywamy samoorganizacją.

Rys. Uczenie bez nauczycielem

Uczenie sieci neuronowych z nauczycielem

W trybie uczenia z nauczycielem (nazywanym również uczeniem pod nadzorem) oprócz danych wejściowych posiadamy również sygnały wyjściowe, jakie chcemy uzyskać. Dobór wag musi być przeprowadzony w taki sposób, aby aktualny sygnał wyjściowy y był najbliższy wartości zadanej d.

Rys. Uczenie z nauczycielem

Inaczej mówiąc, celem uczenia pod nadzorem jest minimalizacja odpowiednio zdefiniowanej funkcji celu, która umożliwi dopasowanie wartości aktualnych odpowiedzi neuronów wyjściowych do wartości żądanych.

, błąd średniokwadratowy ???

przeuczenie sieci - Ilu naukowców tyle metod budowy i uczenia sieci. Podstawy są wszystkim znane, jednak pomimo tego nie ma jednego wzoru, który jednoznacznie określałby jak budować sieć. Z własnych obserwacji [dotyczących predykcji rynków giełdowych] mogę powiedzieć, że najczęściej wychodzi się od wzoru – NN = pierwiastek z h*a+b… gdzie NN to liczba neuronów, h to liczba warstw ukrytych a to liczba wejść, b to liczba wyjść [o wejściach i wyjściach później]. W dziedzinie nauki istnieje kilka metod uczenia zarówno jednoprzebiegowych jak i wieloprzebiegowych. Takie podejście ma na celu zapobieżenia tzw. przeuczenia sieci. Przeuczenie sieci to jest najzwyklejsze „wyrycie na blachę” przykładów jakimi uczymy sieć.

Uczenie konkurencyjne nazywane jest często "zwycięzca bierze wszystko", dlatego że tylko jedna jednostka spośród całej warstwy może być w stanie pobudzenia. Neurony konkurują ze sobą o to, który z nich będzie w stanie pobudzenia. Do reprezentacji takiej sieci, oprócz zwykłych połączeń synaptycznych, zwanych tutaj pobudzającymi, używa się połączeń hamujących które zapewniają spełnienie warunku winner-takes-all. Do "zapłonu" dopuszczony jest ten neuron, który ma np. największą wartość pobudzenia wewnętrznego. Dla uproszenia zakłada się często, że jednostki są progowe (podobnie jak w perceptronie) o wyjściach 0 - nieaktywnym i 1 - aktywnym / pobudzonym. Obliczenia zaczyna się od małych współczynników wagowych, bez żadnej symetrii (ważne!) wśród nich. Takie sieci świetnie nadają się do realizacji klasyfikacji wzorców według podobieństwa na klasy pobudzające konkretną jednostkę. Takie sieci (szczególnie w rozwiązaniach hybrydowych) stosuje się do rozpoznawania liter.

Sieci rekurencyjne

Kolejnym typem sieci neuronowych, z jakimi możemy się spotkać są sieci rekurencyjne. Dotychczas opisywane sieci charakteryzowały się jednokierunkowym przepływem sygnałów od wejścia do wyjścia. W sieciach rekurencyjnych istnieją sprzężenia zwrotne między wejściem, a wyjściem. Zależności dynamiczne jakie panują w sieci są widoczne na każdym etapie działania. Zmiana stanu jednego neuronu przenosi się przez masowe sprzężenie zwrotne na całą sieć, wywołując stan przejściowy, kończący się określonym stanem ustalonym, na ogół innym niż stan poprzedni. Przy oznaczeniu aktywacji neuronu jako f(s), gdzie u jest sumą wagową pobudzeń (sygnałem aktywacji) to sygnał wyjściowy neuronu

oznacza jego stan. Przy masowym sprzężeniu zwrotnym pobudzeniami dla neuronów są sygnały wejściowe innych neuronów. Zmiana stanu neuronów jest opisana układem równań różniczkowych nieliniowych, które ma postać (Hopfield, 1984)

dla i=1, 2, ..., N, przy czym bi jest wartością progową, wynikającą z zewnętrznego śródła. Współczynnik ti jest pewną stałą wartością liczbową. Stan neuronu uzyskuje się z rozwiązania równania różniczkowego jako yi=f(si). Przy określonym stanie pobudzenia neuronów, opisanym za pomocą wartości ich sygnałów wyjściowych yi, sieciom rekurencyjnym można przyporządkować funkcję energetyczną Lagunowa. Jest ona powiązana z każdym stanem pobudzenia sieci, ma charakter malejący w czasie. Zmiana stanu jakiegokolwiek neuronu zapoczątkowuje zmianę stanu energetycznego całej sieci, w kierunku minimum tej energii ,aż do jego osiągnięcia.

Algorytm wstecznej propagacji błędu (backpropagation) jest obecnie podstawowym (i jednym z najskuteczniejszych) algorytmem nadzorowanego uczenia wielowarstwowych jednokierunkowych sieci neuronowych.

Nazwa tego algorytmu wynika z kolejności obliczania sygnałów błędu d, która przebiega w kierunku odwrotnym niż przechodzenie sygnałów przez sieć, to znaczy od warstwy wyjściowej poprzez warstwy ukryte w kierunku warstwy wejściowej.

Ogólnie algorytm propagacji wstecznej wymaga dla każdego wzorca uczącego wykonania następujących czynności:

Założenia: dana jest sieć o M warstwach, oraz zestaw danych uczącychE = {E1, E2...EN}, gdzie każdy z przykładów składa się z wektora danych wejściowych X i z wektora wyjść D.

¨      Przypisz wszystkim wagom wartości losowe bliskie 0. Wybierz wzorzec uczący EK.

¨      Podaj wektor uczący EK na wejście sieci

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

¨       Oblicz wartość dMi błędów dla warstwy wyjściowej

               dM= f (xil-1 (t)) [di  - yiM(t)]

¨      Wyznacz kolejno błędy w warstwach l = M., M.-1, ...2 według postępowania

dl-1i (t) = f (xil-1 (t) ) Si wlji (t) dli (t) 

¨      Wyznacz zmianę wartości wag

Dwlij (t) = g  dli (t) xil-1 (t)

¨      Modyfikuj wszystkie wagi

 wlji (t+1) = wlji (t) +  Dwlij (t)

¨      Wybierz kolejny wzorzec (o ile istnieje) i przejdź do punktu 2 (wczytanie wzorca)

W trakcie uczenia sieci można zaprezentować dowolną liczbę wzorców uczących. Jeśli sieć ma pracować z danymi zakłóconymi to część wektorów uczących powinna również zawierać zakłócenie. Jest to związane ze zdolnością sieci do uogólniania - niewielkie zaburzenie sygnałów wzorcowych może spowodować przyspieszenie zbieżności procesu uczenia ( choć sygnał zaburzony nigdy może się nie pojawić w rzeczywistej pracy sieci ).

Inne zasady obowiązujące przy konstruowaniu ciągów uczących zostały przedstawione w punkcie Projektowanie zbioru uczącego.

Pierwszą operacją w procesie uczeni jest inicjalizacja początkowego układu wag. Należy unikać symetrii w warstwach wag początkowych (mogłoby to spowodować nie nauczenie się sieci ).  Najskuteczniejszym rozwiązaniem wydaje się być losowy wybór wag początkowych.

Istotnym problemem jest wybór współczynnika uczenia h. Parametr ten decyduje o szybkości i stabilności procesu uczenia. Przy zbyt małej wielkości tego współczynnika uczenie postępuje w bardzo wolnym tempie, i sieć potrzebuje b. dużej liczby operacji, by się nauczyć. W przypadku zbyt dużej wartości tego współczynnika algorytm może stać się niestabilny.

Wartość współczynnika h dobiera się zazwyczaj z przedziału [0.05 , 0.25].

jednowarstwowa siec neuronowa Hopfielda

Strukturę sieci Hopfielda można opisać bardzo prosto – jest to układ wielu identycznych elementów połączonych metodą każdy z każdym. Jest zatem najczęściej rozpatrywana jako struktura jednowarstwowa. W odróżnieniu od sieci warstwowych typu perceptron sieć Hopfielda jest siecią rekurencyjną, gdzie neurony są wielokrotnie pobudzane w jednym cyklu rozpoznawania co uzyskuje się poprzez pętle sprzężenia zwrotnego.

Jednowarstwowa sieć Hopfielda ze sprzężeniem zwrotnym

W fazie odtwarzania na wejście sieci podany jest nieznany sygnał wejściowy i zadaniem sieci jest w procedurze rekurencyjnej „znaleźć” ten z zapisanych w jej strukturze wzorców do którego ten sygnał wejściowy jest najbardzie podobny.


Wyszukiwarka

Podobne podstrony:
MSI-program-stacjonarne-15h-2011, logistyka, semestr IV, sieci neuronowe w log (metody sztucznej int
Ontogeniczne sieci neuronowe skrypt(1)
04 Wyklad4 predykcja sieci neuronoweid 523 (2)
Pytania egz AGiSN, SiMR - st. mgr, Alg. i Sieci Neuronowe
MSI-ściaga, SiMR - st. mgr, Alg. i Sieci Neuronowe
32 Sieci neuronowe
Identyfikacja Procesów Technologicznych, Identyfikacja charakterystyki statycznej obiektu dynamiczne
sieci neuronowe, Sieci NeuronoweKolos
sztuczne sieci neuronowe sciaga
Identyfikacja Procesów Technologicznych, Identyfikacja charakterystyk statycznych obiektu dynamiczne
Projekt I Sztuczna Inteligencja, Sprawozdanie, Techniczne zastosowanie sieci neuronowych
badania operacyjne, badania operacyjne - skrypt z PUTINF, Sieci neuronowe
Prognozowanie z zastosowaniem metod regresji krokowej, sieci neuronowych i modeli ARIMA
Sztuczne sieci neuronowe podstawy zagadnienia
12 sieci neuronowe 3
MatLab Sztuczne sieci neuronowe Nieznany

więcej podobnych podstron