"relu"在tf.nn.relu中代表什么?

What does "relu" stand for in tf.nn.relu?

在其 API documentation 中显示 "Computes rectified linear"。

是Re(ctified) L(inear)...那U是什么?

Re(ctified) L(inear) (U)nit

通常神经网络中的一个层有一些输入,比如一个向量,然后将其乘以一个权重矩阵,结果即又是一个向量。

结果中的每个值(通常是浮点数)然后被视为输出。然而,如今神经网络中的大多数层都涉及非线性,因此您可能会说附加功能增加了这些输出值的复杂性。很长一段时间以来,这些都是 sigmoids 和 tanhs。

但最近人们使用一个函数,如果输入为负,则结果为 0,如果输入为 0 或正,则为输入本身。这个特定的附加功能(或更好的 "activation function")称为 relu。

在 Friesel 的回答之上,我想补充 Relu 的两个重要特征。

1。它不可微分。

Relu 的图表:它是尖的,而不是弯曲的。

定义为f(x) = max(0,x) 因此它不可微。

2。 ReLU的导数很简单!比 sigmoid 更简单,即 x(1-x).

The derivative of ReLU:
 1 if x > 0
 0 otherwise 

这是我们主要在隐藏层上使用的最简单的非线性函数。想想反向传播会有多容易!