假设有一个神经网络的输入 W 遵循某种分布, 对于一组固定的参数(样本),w 的分布也就是 ReLU 的输入的分布. 假设 ReLU 输入是一个低方差中心在 + 0.1 的高斯分布.
在这个场景下:
大多数 ReLU 的输入是正数, 因此
大多数输入经过 ReLU 函数能得到一个正值(ReLU is open), 因此
大多数输入能够反向传播通过 ReLU 得到一个梯度, 因此
ReLU 的输入 (w) 一般都能得到更新通过随机反向传播(SGD)
现在, 假设在随机反向传播的过程中, 有一个巨大的梯度经过 ReLU, 由于 ReLU 是打开的, 将会有一个巨大的梯度传给输入(w). 这会引起输入 w 巨大的变化, 也就是说输入 w 的分布会发生变化, 假设输入 w 的分布现在变成了一个低方差的, 中心在 - 0.1 高斯分布.
在这个场景下:
大多数 ReLU 的输入是负数, 因此
大多数输入经过 ReLU 函数能得到一个 0(ReLU is close), 因此
大多数输入不能反向传播通过 ReLU 得到一个梯度, 因此
ReLU 的输入 w 一般都得不到更新通过随机反向传播(SGD)
发生了什么? 只是 ReLU 函数的输入的分布函数发生了很小的改变(-0.2 的改变), 导致了 ReLU 函数行为质的改变. 我们越过了 0 这个边界, ReLU 函数几乎永久的关闭了. 更重要的是 ReLU 函数一旦关闭, 参数 w 就得不到更新, 这就是所谓的'dying ReLU'.
(译者: 下面有一段关于神经元死亡后能够复活的讨论, 未翻译)
从数学上说, 这是因为 ReLU 的数学公式导致的
- r
- (
- x
- )
- =
- m
- a
- x
- (x,0)
- r(x)=max(x,0)
导数如下
Δ
- x
- r
- (
- x
- )
- =
- 1
- (x>0)
Δxr(x)=1(x>0)
所以可以看出, 如果在前向传播的过程中 ReLU is close, 那么反向传播时, ReLU 也是 close 的.
来源: http://www.bubuko.com/infodetail-2661781.html