为什么 ReLU 是非线性激活函数?

Why is ReLU a non-linear activation function?

据我了解,在深度神经网络中,我们在应用权重 (w) 和偏差 (b) (z := w * X + b | a := g(z)) 之后使用激活函数 (g)。所以有一个 (g o z) 的组合函数和激活函数使得我们的模型可以学习线性函数以外的函数。我看到 Sigmoid 和 Tanh 激活函数使我们的模型非线性,但我看到 ReLu(从 0 和 z 中取最大值)可以使模型非线性......

假设每个 Z 总是正的,那么就好像没有激活函数一样...

那么为什么 ReLu 会使神经网络模型变得非线性?

决定一个函数是否是线性的当然不是意见或争论的问题;有一个很简单的definition的线性函数,大致是:

f(a*x + b*y) = a*f(x) + b*f(y)

for every x & y 在函数域和 a & b 常量。

要求"for every"意味着,如果我们能够找到一个不满足上述条件的例子,那么这个函数就是非线性的。

为简单起见,假设 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 with x*y < 0)条件 f(x + y) = f(x) + f(y)不成立,因此函数是非线性的...

事实上,我们可以找到 子域 (例如,xy 在这里要么为负要么为正),其中线性条件hold 是将某些函数(例如 ReLU)定义为 piecewise-linear 的原因,但它们仍然是非线性的。

现在,为了公平对待您的问题,如果在特定应用程序中输入碰巧 总是 要么全为正要么全为负,那么是的,在这种情况下 ReLU实际上最终会表现得像一个线性函数。但对于神经网络而言,情况并非如此,因此我们确实可以依靠它来提供我们必要的非线性......