Цель функции активации состоит в том, чтобы ввести нелинейность в сеть
, в свою очередь, это позволяет моделировать переменную ответа (она же цель)переменная, метка класса или оценка), которая изменяется нелинейно с ее пояснительными переменными
нелинейно означает, что выходные данные не могут быть воспроизведены из линейной комбинации входных данных (что не являетсяТо же, что и вывод, который отображается в виде прямой линии. Слово для этого - affine ).
Другой способ думать об этом: без нелинейного Функция активации в сети, NN, независимо от количества слоев, будет вести себя как однослойный персептрон, потому что суммирование этих слоев даст вам еще одну линейную функцию (см. определение чуть выше).
>>> 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])
Общая функция активации, используемая в backprop ( гиперболический тангенс ), оцениваемая от -2 до 2: