“dying ReLU“问题

一、RELU激活函数

relu函数:
r ( x ) = max ⁡ ( x , 0 ) r(x) = \max(x, 0) r(x)=max(x,0)
梯度:
∇ x r ( x ) = 1 { x > 0 } \nabla_xr(x) = \Bbb{1}\{x > 0\} xr(x)=1{x>0}

二、RELU神经元坏死场景

假设一个神经网络的输入是X,X服从某个分布。R是一个激活函数为RELU的神经元。对于任意的参数更新,X的分布表示神经元R的输入数据的分布。假设神经元R开始输入是一个中心为+0.1的低方差高斯分布。

此时

  • R的大多数输入都是正数;
  • R中RULE函数被激活;
  • 梯度通过R向后流动;
  • 由于SGD后向传播,R的输入更新

现在假设一次backprop中一个很大的梯度流向R。R被激活,将这个非常大的梯度向后传递为R的输入。这导致计算R的输入的函数发生很大的改变。这表示R的输入数据的分布发生改变 ——现在是中心为-0.1的低方差高斯分布。
此时:

  • R的大多数输入为负;
  • R不被激活;
  • 梯度无法从R向后传播;
  • R的输入不通过SGD backprop更新

R的输入的分布发生了一个微小的变化(跨越了0界),导致R的行为发生本质的变化。这是神经元R将总是不能被激活。

三、重激活

神经元R在某次前向传播时没有激活,SGD backprop时此神经元的参数 W W W没有更新,但是神经元的前一层的输出(即R所在层的输入在更新),下一次迭代时神经元R可能重新被激活。
神经元R中激活函数RELU的输入 W X + b WX+b WX+b,其中, W W W在神经元坏死时不更新,但 X X X一直在更新。当某次跟新后 W X + b > 0 WX+b>0 WX+b>0时,神经元R被激活。
但是,如果坏死的神经元在第一个隐藏层,那么这个神经元100%不可能被重新激活。

参考

What is the “dying ReLU” problem in neural networks?

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值