Mówiąc najkrócej, zbiera sygnały wejściowe, przelicza je i wysyła sygnał wyjściowy. Jego działanie wyjaśnimy na naszym ulubionym przykładzie zakupów internetowych.

Załóżmy, że robimy zakupy w markecie spożywczym. Kupujemy różne warzywa na wagę. Jakie to warzywa, ile ich kupiliśmy i ile kosztował kilogram widzisz na poniższej liście zakupów:

Teraz przełóżmy nasze zakupy na sztuczny neuron.

Wejścia:

Ponieważ kupujemy cztery różne rodzaje warzyw, nasz neuron musi mieć cztery wejścia. Daną wejściową będzie cena kilograma każdego z warzyw, czyli:

  • wejście 1: cena marchwi (4 zł),
  • wejście 2: cena ziemniaków (3 zł),
  • wejście 3: cena cukinii (8 zł),
  • wejście 4: cena papryki (10 zł).

Wagi:

Zauważ, że każde warzywo ma inną wagę, więc nazwiemy wagi analogicznie:

  • waga 1: waga marchwi (1 kg),
  • waga 2: waga ziemniaków (0,5 kg),
  • waga 3: waga cukinii (0,8 kg),
  • waga 4: waga papryki (1,5 kg).

Żeby wszystko było jasne i proste do przeliczenia, zebraliśmy te dane w tabelce:

towar wejście
(cena w zł)
waga (waga w kg)
1 marchew 4 1
2 ziemniaki 3 0,5
3 cukinia 8 0,8
4 papryka 10 1,5

Stała:

To coś, co jest niezmienne, bez względu na to, ile warzyw kupimy. Będzie to opłata za transport w wysokości 5 zł.

Blok sumujący

Skoro już rozpisaliśmy sobie wagi, wejścia i stałą, to umieścimy te dane w sztucznym neuronie:

Sztuczny neuron w wersji rozbudowanej. Na schemacie widzisz:
czerwone kółka – wejścia neuronu;
beżowe kółka– wagi;
blok sumujący, który wykonuje odpowiednie obliczenia na podstawie wartości wejść i wag;
blok funkcji aktywacji, który „decyduje”, co zrobić z wynikiem. Może to być prosta decyzja typu: „jeśli wynik jest większy niż 0, uruchom; jeśli mniejszy niż 0, zatrzymaj”

To teraz nieco matematyki. Wiesz, że neuron liczy wartości (wejścia, wagi i stałą) i przesyła wynik do funkcji aktywacji. Policzmy więc to, co liczyłby blok sumujący neuronu:

stała + waga1 × wejście 1 + waga2 × wejście2 + waga3 × wejście 3 + waga4 × wejście4 = ?

Podstawmy odpowiednie dane z tabeli:

5 + 1 × 4 + 0,5 × 3 + 0,8 × 8 + 1,5 × 10 = 5 + 4 + 1,5 + 6,4 + 15 = 31,9

Zatem nasz xbloku sumującego = 31,9.

Ta liczba wysyłana jest do funkcji aktywacji. Zanim jednak do niej przejdziemy, zatrzymamy się jeszcze na chwilę przy bloku sumującym.
Do obliczeń dostaliśmy konkretne dane: wagi i wejścia. A co by się stało, gdybyśmy kupili więcej albo mniej warzyw? Oczywiście przełożyłoby się to na wynik końcowy. Jeśli każdego warzywa kupimy dokładnie o połowę mniej, to wynik, który uzyska blok sumujący, będzie wynosił 18,45, a jeśli dwa razy więcej, to wyniesie on 58,8. Zwróć uwagę, że wartości wejść pozostają w tym przypadku bez zmian, a wagi zwiększają się lub zmniejszają.

Wagi są bardzo ważne w sztucznych neuronach, bo wpływają na to, czy dany sygnał wejściowy jest ważny, czy nie. Uczenie się sztucznej inteligencji polega właśnie na ustaleniu prawidłowych wartości wag. Gdy sieć np. poprawnie rozpoznaje dany znak (np. cyfry pisma odręcznego), oznacza to, że wagi w sztucznych neuronach mają odpowiednie wartości.

Co się dzieje dalej?

Funkcja aktywacji

Blok sumujący przesyła wynik obliczeń do bloku funkcji aktywacji. Wcześniej napisaliśmy, że funkcja „decyduje”, co zrobić z wynikiem, i teraz to twierdzenie rozwiniemy.

Jeśli nie pamiętasz funkcji, to nic nie szkodzi. Poniżej są wykresy trzech funkcji, które mogą być w bloku funkcji aktywacji:

Funkcja liniowa. Żółta linia funkcji pokazuje, jaki wynik otrzymamy na wyjściu, przy konkretnej wartości na wejściu. Np. gdy na wejściu neuron otrzyma wartość 10, na wyjściu da wartość 10. Można więc powiedzieć, że ta funkcja nic nie robi. Jeśli z bloku sumującego otrzyma wartość 18,45, to taką samą da na wyjściu. Dlatego raczej nie stosuje się jej w bloku aktywacyjnym.
Funkcja progowa. W tej funkcji decydujemy o wartości sygnału, który aktywuje funkcję. Na naszej funkcji to wartość = 5. Jeśli otrzyma z bloku sumującego wartość większą niż 5, wysyła sygnał dalej. Jeśli wartość z bloku sumującego jest mniejsza niż 5 (np. 0), funkcja nie wysyła żadnego sygnału.
Skoro już wiesz, jak działa funkcja progowa, umieść na niej wartość 4. Jak myślisz, co się stanie?
A co się stanie, jeśli umieścisz na niej wartość -10? Czy sygnał zostanie wysłany?
Funkcja sigmoidalna. Działa podobnie do funkcji progowej, ale jest jej bardziej „miękką” wersją.

Blok funkcji aktywacji umieszcza wynik otrzymany z bloku sumującego na funkcji. Dzięki temu blok funkcji „wie”, czy ma przesłać sygnał dalej, czy nic nie robić. Oto całe działanie sztucznego neuronu!

Pamiętaj, że tak naprawdę neuron bądź jego elementy nic nie wiedzą ani o niczym nie decydują. Użyliśmy tych porównań, żeby wyjaśnić, jak to działa. W sztucznych neuronach, jak i w całej sztucznej inteligencji, wszystko polega na obliczaniu.