Action Science

Pojedynczy neuron

Sztuczna sieć neuronowa, jak sama nazwa wskazuje, składa się z całej gromady neuronów odpowiednio ze sobą połączonych. Tekst ten opowiada o najmniejszych elementach składowych tej sieci, czyli o neuronikach właśnie.
Pojedyncze sztuczne neuronki mają być podobne do naturalnych neuronów którymi wypełniony jest nasz mózg... Niestety obecny poziom techniki, nauki itp. nie pozwala na stworzenie dokładnej kopi mózgu (to chyba dobrze...). W mózgu neuroników jest bardzo durzo, a poza tym to wszystkie neuroniki w mózgu działają równolegle.
Jednak już dawno temu udało się opracować matematyczny model neuronu, który jest okrojoną wersją neuronu naturalnego. Model ten stworzony został w 1943 przez McCullocha i Pittsa.
Model ten opisywał pewne urządzenie do którego dochodziły jakieś sygnały wejściowe (od jednego do bardzo dużo), a wychodził jeden. Wartość wyjścia była zależna od wartości sygnałów podanych na wejście oraz od wag przypisanych do wejść.
Schematyczny obrazek sztucznego neuronu:



Na rysunku widać wszystkie najważniejsze elementy neuronu...
- x1-xn - sygnały wejściowe
- w1-wn - wagi wejściowe
- symbol sumy
- funkcja aktywacji
- y - wyjście

Pierwsza część neuronu oblicza sumę ważoną wejść. Oznacza to, że sygnał z opuszczający tą część jest równy:
z=w1*x1+w2*x2+...+wn*xn
Tak obliczony sygnał jest przepuszczany przez funkcję aktywacji f. Dopiero ten sygnał jest podawany na wyjście y.
O ile część piersza neuronu jest zazwyczaj taka sama (suma ważona) to funkcja aktywacji w różnych rodzajach neuronów jest różna. Poniżej przedstawiam te najczęściej spotykane:

Funkcja liniowa
W przypadku tej funkcji wielkiej filozofii nie ma: suma ważona jest bezpośrednio przepisywana na wyjście:
y=z
Samotnik

'Obcięta' funkcja liniowa
Funkcja ta zapewnia, że sygnał wyjściowy nigdy nie będzie mniejszy niż -1 ani większy od jedynki. Dzieje się to jednak w sposób bardzo brutalny: jeżeli z<-1 to y=-1, jeżeli z>1 to y=1, w pozystałych przypadkach y=z
Samotnik

Funkcja progowa unipolarna
Tą funkcą było aktywowane wyjście w modelu McCullocha i Pittsa. Funkcja jest bardzo prosta:
y=0 gdy z<0
y=1 gdy z>=0

Dzięki swojej prostocie neurony z progową funkcją aktywacji są wdzięcznym przykładem przy omawianiu algorytmów nauki sieci (o nauce takiego neuronu będzie opowiadał mój kolejny tekst, ale kiedy ujrzy światło dzienne to się jeszcze zobaczy)
Samotnik

Funkcja progowa bipolarna
Funkcja w zasadzie taka sama jak powyższa - zmienia się tylko zakres wartości:
y=-1 gdy z<0
y=1 gdy z>=0

Samotnik

Funkcja sigmoidalna unipolarna
Funkcja ta jest najczęściej wykorzystywana przy budowie sieci. Opisana jest następującym wzorem:
y=1/(1+exp(-beta*z))
Sam wzór jest bardzo skomplikowany jednak jego pochodna jest bardzo prosta do wyznaczenia. Dzięki temu proces nauki jest bardzo prosty...
We wzorze pojawia się współczynnik beta. Jego wartość określa 'ściśnięcie' wykresu. Im beta mniejsze tym wykres bardziej ściśnięty, przy beta rosnącym do nieskończoności wykres pokrywa się z wykresem funkcji progowej.
Samotnik

Funkcja sigmoidalna bipolarna
Funkca jest drobnym przetworzeniem powyższej. Dzięki temu został rozszerzony przedział wartości wyjścia (-1,1):
y=2/(1+exp(-beta*z))-1
Samotnik

Tangens hiperboliczny
Funkcja wyglądem przypomina poprzedną, jednak wzór jest zupełnie różny:
y=(1-exp(-alfa*z))/(1+exp(-alfa*z))
Jak do tej pory nie spotkałem się z jej praktycznym wykorzystaniem.
Samotnik

To chyba wszystkie funkcje aktywacji z jakimi do tej pory się spotkałem.
Chciałbym teraz powrócić do budowy neuronu i opowiedzieć o bardzo ważnej rzeczy.
Aby neuron mógł nauczyć się każdej funkcji separowalnej liniowo (co to znaczy zaraz napiszę), musi istnieć jeszcze jedno wejście, które jest połączone do jakiegoś stałego sygnału. Dzięki temu możliwe jest przesuwanie funkcji aktywacji (nie muszą one przechodzić przez punk 0,0). Jest to potrzebne gdzy chcemy próg aktywacji neuronu przestawić na jakąś wartość różną od zera. Dodatkowy sygnał posiada również odpowiadającą mu wagę (w0), jest również brany pod uwagę przy obliczaniu sumy ważonej wejść.
A czego potrafi nauczyć się taki pojedynczy neuronik... Jest on w stanie (po odpowiedniej nauce oczywiście) klasyfikować wielowymiarowe obrazy wejściowe do dwóch różnych klas. Jednak ze względu na fakt, że pojedynczy neuroj jest bardzo 'ubogi' potrafi klasyfikować tylko obrazy liniowo separowalne, oznacza to, że musi istnieć linia prosta która będzie oddzielała od siebie obrazy z różnych klas. To ograniczenie przełamują sieci wielowarstwowe (ale to już temat na inną pogadankę)
Na koniec chciałbym napisać, że cała 'wiedza' neurnu jest zawarta w wagach (w0-wn) i na modyfikacji tych wag polega nauka neuronu. Ze względu na fakt, że waga w0 również bierze udział w modyfikacji podczas nauki nie jest ważne jaką wartość będzie miał sygnał do którego będzie podłączona, ponieważ podczas nauki waga w0 sama ustawi się na odpowiednim poziomie.


Autor: Kopper
E-mail: kopper@box43.gnet.pl


  Poprzedni artykułNastępny artykuł  

  Menu Kontakt  



Przedruk artykułów tylko za zgodą redakcji.
Copyright 2000 - 2001 Action Science. Wszelkie prawa zastrzeżone.


Action Science