algorytm.org

Sztuczny neuron



Baza Wiedzy
wersja offline serwisu przeznaczona na urządzenia z systemem Android
Darowizny
darowiznaWspomóż rozwój serwisu
Nagłówki RSS
Artykuły
Implementacje
Komentarze
Forum
Bookmarki






Sonda
Implementacji w jakim języku programowania poszukujesz?

Sztuczny neuron
Ocena użytkowników:***** / 20
SłabyŚwietny 
Wpisany przez Tomasz Lubiński, 27 lipca 2005 19:00

Mózg ludzki składa się z około 1011 elementów przetwarzających sygnały zwanych neuronami. Neuron razem ze swoimi wypustkami - dendrytami i zawsze jednym neurytem (aksonem), jest przystosowany do przewodzenia i przetwarzania, a także wytwarzania bodźców nerwowych. Charakteryzuje się tym, że przewodzi bodźce zawsze w jednym kierunku od dendrytów do ciała komórki (perikarionu) i z komórki dalej przez neuryt (wypustkę osiową). Nerony komunikują się poprzez łączącą je sieć aksonów i synaps, których jest około 1015, co daje około 104 synaps na neuron. Neuron jest podstawowym elementem biologicznej sieci neuronowej.
Pierwszą formalna definicję sztucznego neuronu opartą na uproszczonym modelu biologicznym opisanym wyżej podali McCulloch i Pitts. Zaproponowany przez nich model oparty jest na następujących zasadach. Sygnały wejściowe xi, i = 1,2,..., n mają wartość 1 lub 0, zależnie od tego czy w chwili k impuls wejściowy pojawił się, czy tez nie. Sygnał wyjściowy neuronu oznaczony jest przez y. Natomiast T określa poziom aktywacji neuronu. Reguła aktywacji ma dla tego modelu postać:
\begin{cases} y^{k+1}=1 & \text{ jeżeli } w_1*x_1+w_2*x_2+...+w_n*x_n \geq T\\ y^{k+1}=0 & \text{ w przeciwnym wypadku } \end{cases}
W praktyce wykorzystuje się jednak bardziej rozwinięty model neuronu:

Model neuronu

Wejście neronu stanowią sygnały wejściowe xi, i = 1,2,..., n (w szczególności mogą to być wartości tylko 0 i 1). Są one połączone poprzez połączenia etykietowane pewnymi wagami wi, i = 1,2,..., n. Sygnały wejściowe są mnożone przez odpowiednie wagi (xi*wi, i = 1,2,..., n - chodzi o możliwość określenia ilość synaps łączących z tym samym neuronem oraz chemiczną zmianę sygnału na synapsach), następnie są one sumowane dając pobudzenie całkowite neuronu:
y = w_1*x_1+w_2*x_2+...+w_n*x_n
Właściwa odpowiedź neuronu z zależy od pobudzenia y zgodnie z funkcją przenoszenia (przejścia lub aktywacji) z=f(y) (tę funkcję realizuje jądro komórkowe).

Oto najczęściej wykorzystywane funkcje przenoszenia:
  • funkcja liniowa: f(y) = ay+b,

    Funkcja liniowa

  • funkcja signum: f(y) = sgn(y), (-1 dla y<0, 0 dla y=0, 1 dla y>0)

    Funkcja signum

  • funkcja sigmoidalna f(y) = 1/(1+exp(-y)),

    Funkcja sigmoidalna

  • funkcja Gaussa f(y) = exp(-y2).

    Funkcja Gaussa

  • tangens hiperboliczny f(y) = tanh(y),

    Tangens hiperboliczny

Model matematyczny opisuje prawdziwy neuron w znacznie przybliżony sposób, wystarcza to jednak do budowania sprawnie działających sztucznych sieci neuronowych.

Implementacje
AutorJęzyk
programowania
KomentarzOtwórzPobierzOcena
Tomasz LubińskiDelphi/PascalBorland Delphi 5
.pas
.pas
***** / 4
 
Dodaj własną implementację tego algorytmu
  • Zaloguj się na stronie
Plik:
Język
programowania:
Komentarz:
  By móc dodać implementacje zaloguj się na stronie

Poprawiony: 15 sierpnia 2012 13:46
Dodaj komentarz