Важно использовать функцию нелинейной активации в нейронных сетях, особенно в глубоких NN и обратном распространении. По заданному в теме вопросу сначала скажу причину необходимости использования нелинейной функции активации для обратного распространения ошибки.
Проще говоря: если используется линейная функция активации, производная функции стоимости является константой по отношению к (wrt) входу, поэтому значение входа (для нейронов) не влияет на обновление весов . Это означает, что мы не можем определить, какие веса наиболее эффективны для создания хорошего результата, и поэтому мы вынуждены изменять все веса одинаково.
Deeper: как правило, веса обновляются следующим образом:
W_new = W_old - Learn_rate * D_loss
Это означает, что новый вес равен старому весу за вычетом производной функции стоимости. Если функция активации является линейной функцией, то ее производная по входу является константой, и входные значения не имеют прямого влияния на обновление веса.
Например, мы намерены обновить веса нейронов последнего слоя, используя обратное распространение. Нам нужно вычислить градиент весовой функции по весу. С цепным правилом мы имеем:
h и y - (оценочные) выход нейрона и фактическое выходное значение соответственно. А x - это вход нейронов. grad (f) выводится из входной функции активации. Вычисленное выше значение (с коэффициентом) вычитается из текущего веса, и получается новый вес. Теперь мы можем более четко сравнить эти два типа функций активации.
1- Если активирующая функция является линейной функцией, например: F (x) = 2 * x
тогда:
новый вес будет:
Как видите, все веса обновляются одинаково, и не имеет значения, какое входное значение !!
2- Но если мы используем нелинейную функцию активации, такую как Tanh (x), то:
а также:
и теперь мы можем видеть прямой эффект ввода при обновлении весов! различное входное значение приводит к разным изменениям веса .
Я думаю, что вышеизложенного достаточно, чтобы ответить на вопрос темы, но полезно упомянуть и другие преимущества использования функции нелинейной активации.
Как упоминалось в других ответах, нелинейность позволяет NN иметь больше скрытых слоев и более глубокие NN. Последовательность слоев с функцией линейного активатора может быть объединена в слой (с комбинацией предыдущих функций) и фактически представляет собой нейронную сеть со скрытым слоем, которая не использует преимущества глубокого NN.
Функция нелинейной активации также может давать нормализованный выходной сигнал.