当输出 < 0 时,带有 ReLU 的网络不会学习吗?

人工智能 深度学习 反向传播 雷路
2021-11-06 10:55:56

如果 ReLU 的输出低于 0,则 ReLU 的导数为 0 - dReLU(x)/dReLU0如果x<0. 让我们将一些网络的输出表示为Out, 所以如果这个网络的最后一层是 ReLU 那么我们得到dOut/dReLU0如果Out<0. 随后,对于每个参数p在网络中,我们会得到dOut/dp0. 这是否意味着对于每个样本x这样Out(x)<0网络根本不会从该样本中学习,因为每个参数的导数是0?

1个回答

使用 ReLU 作为神经网络的输出激活没有任何好处。正如您所说,网络将忽略零以下的训练标签,它将在零以上的标签上进行训练,就好像没有输出激活存在一样。但是,您所描述的问题也可能发生在隐藏层的各个单元中,其中 ReLU 激活很常见。这被称为死 ReLU 问题。在实践中,这几乎不是问题,但可以使用 ELU 和 Swish 等平滑整流器来避免。另一个有趣的想法是 CRelu,它将预激活的正负部分连接起来,产生两倍的输出,其中一半总是接收非零梯度。