Relu 根据定义确实有 0 梯度,那么为什么梯度消失对于 x < 0 不是问题?

数据挖掘 深度学习
2021-10-06 07:18:39

根据定义,Relu 是max(0,f(x)). 那么它的梯度定义为: 1 if x > 0 and 0 if x < 0

这是否意味着当 x < 0 时梯度始终为 0(消失)?那为什么我们说 Relu 没有梯度消失问题呢?

2个回答

你基本上是对的!ReLU 确实存在梯度消失的问题,但只是一方面,所以我们称它为别的:“垂死的 ReLU 问题”。有关更多信息,请参阅此堆栈溢出响应:什么是神经网络中的“垂死的 ReLU”问题?

这是一个小的语义差异。当您超出标准操作范围时,许多函数(tanh 和逻辑/sigmoid)的导数非常接近于零。这就是“梯度消失”问题。你越糟糕,就越难回到好的区域。ReLU不会随着您在正方向上越远而变得更糟,因此不会出现梯度消失问题(在那一侧)。这种不对称性可能足以证明将其称为不同的东西是合理的,但这些想法非常相似。

消失意味着它趋向于 0,但永远不会真正为 0。梯度为 0 使得计算非常容易,梯度接近 0 意味着存在变化,只是非常微小的变化,这意味着学习缓慢和数值问题。1 和 0 是这类优化问题中最容易计算的两个数字。