Le but de la fonction d'activation est d'introduire la non-linéarité dans le réseau
à son tour, cela vous permet de modéliser une variable de réponse (aka variable cible, étiquette de classe ou score) qui varie de manière non linéaire avec ses variables explicatives
non linéaire signifie que la sortie ne peut pas être reproduite à partir d'une combinaison linéaire des entrées (ce qui n'est pas la même chose que la sortie qui donne une ligne droite - le mot pour cela est affine ).
une autre façon de penser: sans fonction d'activation non linéaire dans le réseau, un NN, quel que soit le nombre de couches dont il dispose, se comporterait comme un perceptron monocouche, car la somme de ces couches ne vous donnerait qu'une autre fonction linéaire (voir la définition juste au-dessus).
>>> 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])
Une fonction d'activation courante utilisée dans backprop ( tangente hyperbolique ) évaluée de -2 à 2: