11

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

假设如果每个 Z 始终为正,那么就好像没有激活函数......

所以我的问题是,为什么 ReLu 在神经网络中使模型成为非线性模型?

4

1 回答 1

15

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

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

对于函数域中的每个 x&和&常量。yab

“对于每个”的要求意味着,如果我们能够找到上述条件不成立的单个示例,则该函数是非线性的。

假设为简单起见a = b = 1,让我们尝试x=-5, y=1使用fReLU 函数:

f(-5 + 1) = f(-4) = 0
f(-5) + f(1) = 0 + 1 = 1

所以,对于这些x& y(实际上对于每个x& ywith x*y < 0)条件f(x + y) = f(x) + f(y)不成立,因此函数是非线性的......

我们可能能够找到线性条件成立的子域(例如,两者都是负xy正),这一事实将某些函数(例如 ReLU)定义为分段线性,尽管如此,它们仍然是非线性的。

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

于 2018-09-21T15:32:03.380 回答