Celem funkcji aktywacji jest wprowadzenie nieliniowości do sieci
to z kolei umożliwia modelowanie zmiennej odpowiedzi (inaczej zmiennej docelowej, etykiety klasy lub wyniku), która zmienia się nieliniowo wraz ze zmiennymi objaśniającymi
nieliniowe oznacza, że wynik nie może być odtworzony z liniowej kombinacji danych wejściowych (co nie jest tym samym, co wyjście, które renderuje do linii prostej - określenie to jest afiniczne ).
inny sposób myślenia o tym: bez nieliniowej funkcji aktywacji w sieci NN, bez względu na to, ile miał warstw, zachowywałby się jak perceptron jednowarstwowy, ponieważ sumowanie tych warstw dałoby po prostu kolejną funkcję liniową (patrz definicja powyżej).
>>> in_vec = NP.random.rand(10)
>>> in_vec
array([ 0.94, 0.61, 0.65, 0. , 0.77, 0.99, 0.35, 0.81, 0.46, 0.59])
>>> # common activation function, hyperbolic tangent
>>> out_vec = NP.tanh(in_vec)
>>> out_vec
array([ 0.74, 0.54, 0.57, 0. , 0.65, 0.76, 0.34, 0.67, 0.43, 0.53])
Typowa funkcja aktywacji stosowana w backprop ( stycznej hiperbolicznej ) oceniana od -2 do 2: