Решение, является ли функция линейной или нет, конечно, не является вопросом мнения или спора;существует очень простое определение линейной функции, которое примерно равно:
f(a*x + b*y) = a*f(x) + b*f(y)
для каждые x
& y
в области функций иa
& b
constants.
Требование «для каждого» означает, что, если нам удастся найти хотя бы один пример, где вышеуказанное условие не выполняется, то функция будет нелинейной.
Для простоты предположим, что a = b = 1
, давайте попробуем x=-5, y=1
с f
, являющимся функцией ReLU:
f(-5 + 1) = f(-4) = 0
f(-5) + f(1) = 0 + 1 = 1
, поэтому для этих x
& y
(фактически длякаждые x
& y
с x*y < 0
) условие f(x + y) = f(x) + f(y)
не выполняется, поэтому функция является нелинейной ...
Тот факт, что мы можем найти поддоменов (например, здесь x
и y
являются либо отрицательными, либо положительными), где выполняется условие линейности - это то, что определяет некоторые функции (такие как ReLU) как кусочно -линейный , которые все еще являются нелинейными.
Теперь, чтобы быть справедливым к вашему вопросу, если в годПри прямом применении входные данные оказались всегда либо положительными, либо отрицательными, тогда да, в этом случае ReLU на практике будет вести себя как линейная функция.Но для нейронных сетей это не так, поэтому мы можем действительно полагаться на нее, чтобы обеспечить необходимую нелинейность ...