Jak działa sieć neuronowa
Sieć neuronowa to funkcja złożona z wielu prostych elementów. Każdy z nich robi niewiele, ale razem potrafią rozpoznawać obrazy, mowę i tekst.
Sztuczny neuron
Neuron otrzymuje na wejściu kilka liczb. Każdą mnoży przez jej wagę, wyniki sumuje, dodaje wyraz wolny, nazywany biasem, i przepuszcza całość przez funkcję aktywacji. Wagi mówią, które wejścia są dla neuronu ważne.
Tu to wejścia, ich wagi, wyraz wolny, a funkcja aktywacji.
Funkcja aktywacji
Bez funkcji aktywacji nawet bardzo głęboka sieć sprowadzałaby się do jednego przekształcenia liniowego. Funkcja nieliniowa pozwala jej uczyć się złożonych zależności.
| Funkcja | Zakres wartości | Typowe zastosowanie |
|---|---|---|
| Sigmoida | od 0 do 1 | wyjście w klasyfikacji dwuklasowej |
| Tangens hiperboliczny | od −1 do 1 | starsze sieci rekurencyjne |
| ReLU | od 0 w górę | warstwy ukryte większości współczesnych sieci |
Neuron w kodzie
Cały neuron mieści się w kilku linijkach Pythona. Tu z funkcją aktywacji ReLU, która przepuszcza wartości dodatnie, a ujemne zamienia na zero.
import numpy as np
def neuron(x, w, b):
z = np.dot(w, x) + b # suma ważona
return max(0.0, z) # aktywacja ReLU
x = np.array([0.5, 1.0]) # wejścia
w = np.array([0.8, -0.2]) # wagi
print(neuron(x, w, b=0.1)) # wynik: ok. 0.3Warstwy
Neurony układa się w warstwy: wejściową, jedną lub więcej ukrytych i wyjściową. Wyjścia jednej warstwy stają się wejściami następnej. O tym, jak sieć dobiera wagi we wszystkich warstwach naraz, opowie następna lekcja.
Strefa uczestnika
Zadania do tej lekcji
Ćwiczenia z rozwiązaniami, dostępne po podaniu loginu i hasła od prowadzącego.