Twoim problemem jest to, że powszechną NICOŚĆ mylisz z osobistą PUSTKĄ




 

1. Architektury, algorytmy uczenia i projektowanie sieci neuronowych

 

        Sieci neuronowe są sztucznymi strukturami, których budowa i działanie zostały zaprojektowane w sposób modelujący działanie naturalnego układu nerwowego,                     w szczególności mózgu.
Cieszą się bardzo dużym zainteresowaniem. Jednym z głównych czynników mających na to wpływ jest możliwość stosowania ich w bardzo wielu dziedzinach życia do rozwiązywania problemów, gdzie użycie innych metod jest trudne lub niemożliwe. Znakomicie sprawdzają się w problemach klasyfikacji, predykcji, związanych ze sterowaniem, analizą danych. Są często wykorzystywane  w geologii, fizyce, ekonomii, dla celów wojskowych oraz medycznych. Na tak wielką popularność wpływają podstawowe cechy oferowane przez sieci neuronowe. Pozwalają one rozwiązywać problemy dla opisów których nie ma modeli matematycznych. Przygotowanie sieci do pracy jest dwuetapowe. Pierwszym jest proces uczenia, w którym sieć uczy się na podstawie danych empirycznych jak reagować na zadany bodziec. Gdy sieć zostanie wytrenowana można przejść do etapu pracy właściwej            (drugi etap), podając na jej wejścia dowolne sygnały. Jest więc to metoda łatwa w użyciu. Poza tym sieć neuronowa umożliwia generalizację zdobytej "wiedzy". Sieć nauczona na pewnym wektorze danych będzie dawać wyniki dla danych nie biorących udziału w procesie uczenia. Cechy te zostały uzyskane dzięki wzorowaniu się na sposobie pracy mózgu. Dzięki badaniom nad budową i funkcjonowaniem naturalnego systemu nerwowego oraz próbom przeniesienia zaobserwowanych mechanizmów do modeli matematycznych, powstało bardzo użyteczne narzędzie, chętnie wykorzystywane w wielu zadaniach praktycznych.



 

1.1. Historia rozwoju sztucznych sieci neuronowych

 

Prace nad  poznaniem procesów zachodzących w mózgu, które mają wpływ na inteligentny sposób jego działania, były prowadzone od bardzo dawna przez wielu badaczy z całego świata. Początkiem dziedziny sztucznych sieci neuronowych było przedstawienie matematycznego modelu neuronu przez McCulloch'a i Pitts'a w 1943 roku. Ich praca stała się inspiracją dla wielu późniejszych badaczy.  W 1949 roku Donald Hebb odkrył, że informacja może być przechowywana jako wartość wag pomiędzy połączeniami poszczególnych neuronów i zaproponował pierwszy algorytm uczenia takiej sieci. Polegał on na zmianach wag połączeń - nazwany on został regułą Hebba. Pierwszą znaną i opisaną, działającą siecią neuronową był perceptron. Została ona opracowana przez Rossenblatt'a w 1957 roku            w Cornell Aeronautical Laboratory. W 1960 roku powstała struktura Adaline, na którą składał się pojedynczy element liniowy. Jej twórcą był Bernard Widrow ze Standford University. Element Adaline po rozbudowaniu o kolejne elementy połączone ze sobą tworzyła sieć Madaline.
Początkowy gwałtowny wzrost zainteresowania i postęp w tej dziedzinie został ostudzony     w latach 70-tych przez publikację pracy Minsky-ego i Paperta (1969 r.) która dowodziła,      że sieć składająca się z jednej warstwy liniowej ma bardzo ograniczone zastosowanie. Pomimo tego powstawało wiele nowych pomysłów i modeli sieci. Można tu wymienić sieć Cerebellatron  Davida Mara (sterowanie robotem),  Brain in the Box Jamesa Andersona (1977 r.)  działająca jak pamięć asocjacyjna.
Zastój w badaniach nad siecią został przełamany po publikacji algorytmu uczenia wielowarstwowej nieliniowej sieci neuronowej. Metoda wstecznej propagacji błędów została po raz pierwszy opisana przez Werbosa w 1974 roku, jednak jej popularyzacja nastąpiła dopiero w 1986 roku za sprawą Rumelharta. To umożliwiło konstruowanie wielowarstwowych nieliniowych sieci neuronowych i ich skuteczne uczenie. Spowodowało to powrót zainteresowania sieciami neuronowymi i dalszy szybki ich rozwój.


 

1.2. Inspiracje biologiczne

 


Jak już wspomniano wyżej, badacze rozwijający model sieci neuronowej wzorowali się na naturalnym systemie nerwowym, szczególnie mózgu.
Mózg składa się z około 10 miliardów elementarnych komórek nerwowych nazywanych neuronami. Tworzą ona bardzo skomplikowane sieci powiązań między sobą. Neurony           w mózgu pracują równolegle. Poszczególne neurony składaja się z następujących części: dendrytów, perikarionu, aksonu. Dendryty są wejściami neuronu. Prowadzą sygnał od innych neuronów. Perikarion stanowi część scalającą dla sygnałów z dendrytów. Akson pełni funkcje wyjścia sygnału od neuronu do innych neuronów. Odbywa się to poprzez telodendron - rozgałęzioną strukturę transportującą sygnały wyjściowe.
Nośnikiem pamięci w naturalnej sieci neuronów jest synapsa - biochemiczne złącze, modyfikujące sygnały.
Na podstawie budowy biologicznej powstał model sztucznego neuronu oraz sieci neuronowej. Jest on znacznie uproszczony w stosunku do systemu biologicznego.


 

1.3. Matematyczny model sztucznego neuronu i sieci neuronowej

 


Na podstawie obserwacji mechanizmów zachodzących  w naturalnej sieci neuronów, opracowano matematyczne koncepcje sztucznych sieci neuronowych. Podobnie jak               w naturalnych sieciach, składają się one z elementarnych komórek - neuronów. Zdając sobie sprawę z braku możliwości dokładnego odwzorowania naturalnych układów i budowy, badacze opracowali model sztucznego neuronu. Jego działanie można przestawić następująco:
-        do neuronu docierają sygnały (na wejścia neuronu),
-        każdy sygnał ma swoja wagę (efektywność synapsy),
-        w neuronie obliczana jest ważona suma wejść i odejmowana wartość progowa,
-        wynik sumy ważonej wprowadzany jest jako argument funkcji aktywacji, wynik funkcji jest wprowadzany na wyjście neuronu.





Schemat budowy sztucznego neuronu.




Na tej podstawie, działanie pojedynczego neuronu można opisać następującymi wzorami:









więc:





Funkcja aktywacji może mieć różne postaci. Każda funkcja, aby mogła pełnić tę rolę musi być ciągła i łatwo różniczkowalna. Wyjątkiem jest  perceptron, w przypadku którego funkcja aktywacji nie jest poddana tym ograniczeniom.  W praktyce stosuje się najczęściej następujące funkcje: liniową, logistyczną, tangens hiperboliczny, sinus oraz signum.


a)        Funkcja liniowa


Neurony z liniową funkcją aktywacji tworzą liniowe sieci neuronowe. Wartość ważonej sumy wejść są przepisywane na wyjście neuronu. Budowanie wielowarstwowych sieci liniowych nie jest uzasadnione, gdyż zawsze można zastąpić ją odpowiednią siecią jednowarstwową.



b)        Funkcja logistyczna


Funkcja logistyczna jest bardzo często stosowaną funkcją aktywacji neuronu. Określona jest ona następującym wzorem:








Funkcja przyjmuje wartości z przedziału (0,1).

Na rys. zamieszczonym niżej widoczny jest wpływ współczynnika beta na postać funkcji aktywacji.





 Przebieg wartości funkcji logistycznej przy różnych wartościach współczynnika beta.




c)        funkcja tangens hiperboliczny


Równie często stosowaną funkcją przejścia jest tangens hiperboliczny. Wzór funkcji jest następujący:





Funkcja tangens hiperboliczny przyjmuje wartości z przedziału (-1,1);





Przebieg wartości funkcji tanh dla różnych parametrów beta.


d)        Funkcja sinus


Dla zastosowań w sieciach neuronowych, stosuje się następującą postać:





e)        Funkcja signum




Jednokierunkowa, wielowarstwowa sztuczna sieć neuronowa powstaje przez połączenie opisanych wyżej sztucznych neuronów. Stosowana jest przy tym zasada łączenia każdego neuronu warstwy poprzedniej z każdym neuronem warstwy następnej. Powstające w ten sposób warstwy można podzielić na:


a)        warstwę wejściową,

b)        warstwy ukryte,

c)        warstwę wyjściową.


 





Schemat budowy jednokierunkowej, nieliniowej sztucznej sieci neuronowej.




Działanie sieci neuronowej możne przedstawić w następujących krokach:


-        dane wejściowe są wprowadzane na wejścia warstwy wejściowej,

-        dane są propagowane na wejścia następnych warstw, aż do warstwy wyjściowej,

-        wartości otrzymane w ostatniej, wyjściowej warstwie sieci neuronowej traktuje się jako wyjścia sieci.



 

1.4. Klasyfikacja sieci neuronowych

 


W rozdziale 1.3 przedstawiona została budowa i sposób działania jednokierunkowej wielowarstwowej, nieliniowej sieci neuronowej. Jest to najczęściej wykorzystywany model                      w neurokomputingu. Trzeba jednak zauważyć, że istnieje wiele innych modeli sieci, często wyspecjalizowanych w szczegółowych typach zadań, różniących się  koncepcjach nauki, innym przepływem sygnałów. Poniżej przedstawiono opisane w literaturze najważniejsze typy sieci neuronowych i ich krótką charakterystykę.
Klasyfikacji sieci neuronowych dokonuje się według czterech podstawowych kryteriów: metod trenowania, kierunków propagacji sygnałów w sieci, typów funkcji przejścia, rodzajów danych wprowadzanych na wejścia. Klasyfikacja sieci według tych kryteriów wygląda następująco:
 





Klasyfikacja sieci neuronowych.




Sieci nadzorowane są często spotykanymi sieciami w wielu zastosowaniach. Ich trening polega na prezentowaniu sieci wartości wejściowych wraz z odpowiednimi, pożądanymi wartościami na wyjściach. Na tej podstawie sieć tak ustawia wartości wag, by odpowiedź mieściła się w granicy błędu określonym przez użytkownika.
Sieci liniowe są stosowane raczej rzadko, ze względu na małe możliwości. Sieci jednokierunkowe nieliniowe są obecnie najczęściej stosowanymi strukturami neuronowymi. Cechują się dobrą efektywnością działania oraz prostą i intuicyjną budową. Są one również bardzo uniwersalne.
Sieci rekurencyjne działają w nieco inny sposób niż sieci jednokierunkowe. Wyjścia niektórych neuronów, lub całych warstw mogą być wprowadzane ponownie na wejścia tych samych neuronów lub warstw.
Sieci nie nadzorowane różnią się od sieci nadzorowanych sposobem treningu. Nie wymagają one podawania pożądanych wartości wyjściowych dla prezentowanych wejść lecz tylko wektorów wejściowych.

 

1.5. Wstępne przetwarzanie danych

 


Sieć neuronowa do odpowiedniego działania potrzebuje poprawnie zdefiniowanych danych wejściowych. Istnieje wiele metod zapewnienia poprawności danych zależnie od ich charakteru oraz rodzaju sieci. Niezależnie od rodzaju sieci i problemu, który ma być rozwiązany, dane powinny spełniać podstawowe warunki, takie jak reprezentatywność, pełne oddanie problemu, odpowiednie przeskalowanie i normalizacja, eliminacja niedokładności pomiarów. Przeprowadzenie tych czynności jest niezbędne do poprawnego działania sieci.


 

1.5.1. Skalowanie i normalizacja

 


Dane przetwarzane przez sieć pochodzą najczęściej z obserwacji pewnych wartości               w badanym modelu. Ich skala wartości zazwyczaj nie na bezpośrednie wprowadzenie na wejścia sieci. Istnieje kilka popularnych metod skalowania. Poniżej wymieniono najczęściej stosowane.

-        skalowanie względem wartości maksymalnej:

 
,
 

-        skalowanie względem wartości średniej:

 ,
 

-        skalowanie względem odchylenia od wartości średniej:

 ,
 

przeskalowanie do zakresu (-1,1),


-        skalowanie względem odchylenia od wartości minimalnej:

 ,

transformacja do wartości (0,1),

-        skalowanie względem standardowego odchylenia średniokwadratowego:



 .


Wybór odpowiedniej metody skalowania jest uzależniony od rodzaju rozwiązywanego problemu.

1.6. Uczenie sieci

 



Jedną z głównych zalet sieci neuronowej w stosunku do innych metod przetwarzania danych jest umiejętność generalizacji wiedzy, co umożliwia poprawną reakcję na sygnały nie przewidziane przez projektanta. W odróżnieniu od metod matematycznych lub algorytmicznych sieć może być wykorzystywana dla wielu różnych modeli, bez znaczących modyfikacji. Powyższe cechy mogą zostać uzyskane tylko przez zastosowanie odpowiedniego algorytmu uczenia. Istnieje wiele algorytmów uczenia sieci. Do najczęściej stosowanych zalicza się metodę wstecznej propagacji błędów i jej modyfikacje.


 

1.6.1. Algorytm wstecznej propagacji błędów

 


Algorytm wstecznej propagacji błędów jest podstawowym algorytmem uczenia nadzorowanego wielowarstwowych jednokierunkowych sieci neuronowych. Polega na takiej zmianie wag  sygnałów wejściowych każdego neuronu w każdej warstwie, by wartość błędu dla kolejnych par uczących zawartych w zbiorze uczącym była jak najmniejsza. Wykorzystuje on w tym celu metodę gradientową  - najszybszego spadku.


Ogólny przebieg uczenia nadzorowanego sieci neuronowej przebiega według algorytmu przedstawionego na rys:
 






Schemat przebiegu algorytmu wsteczn...

  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • jucek.xlx.pl






  • Formularz

    POst

    Post*

    **Add some explanations if needed