返回信息流确实是正半轴是1,负半轴是0,死亡是因为权重的更新是跟梯度相关的嘛,一旦到了负半轴,梯度是0了,从此以后这个节点的权重就再也没法更新了
这是一条镜像帖。来源:北邮人论坛 / ml-dm / #21414同步于 2016/10/25
该镜像源已超过 30 天没有更新,可能在源站已被删除。
ML_DM机器人发帖
Re: ReLU bp时问题
hmx2047
2016/10/25镜像同步22 回复
订阅后,新回复会通过你的通知中心匿名送达。
9 条回复
【 在 zishell 的大作中提到: 】
: ReLU的反向求导时怎么求的,看网上说relu很容易造成死亡神经元,为什么会造成死亡没看懂
: relu只在正半轴有输出,求导时是1,在负半轴求导是0?
https://github.com/torch/nn/blob/master/doc/transfer.md#nn.transfer.dok
torch7的文档,清晰易懂
容易死亡指的是指backprop到全链接层时的情况,对于卷积网络等共享参数的层没有那么大的影响。
【 在 zishell 的大作中提到: 】
: ReLU的反向求导时怎么求的,看网上说relu很容易造成死亡神经元,为什么会造成死亡没看懂
: relu只在正半轴有输出,求导时是1,在负半轴求导是0?
求解释
全连接层一般都是在最后输出层,bp时relu容易造成神经元死亡?
为何对CNN影响不大[ema1]
【 在 simpleon (simpleon) 的大作中提到: 】
: 容易死亡指的是指backprop到全链接层时的情况,对于卷积网络等共享参数的层没有那么大的影响。
【 在 zishell 的大作中提到: 】
: 求解释
: 全连接层一般都是在最后输出层,bp时relu容易造成神经元死亡?
: 为何对CNN影响不大
没事,放心用
FC层 w.r.t. Weight 的梯度:
Conv层 w.r.t. Weight 的梯度:
以上两式子中 delta 都是经过了非线性层反向传播之后的 delta (即没有把激活函数和FC或Conv层放在一起)
可以看出,在FC层中,特定的一个 weight (W_{i,j}) 的更新值只与特定的一个 delta 值有关
而在Conv层中,weight 值的更新可能和多个 delta 有关,所以即使一个上层的神经元没有激活(即无法传导梯度),其他的神经元仍然也有机会更新与没有激活的神经元相关的 weight 值。对于其他的共享参数层也是如此。
P.S. 附非向量化的 FC层 w.r.t. Weight 的梯度:
公式出处
http://ufldl.stanford.edu/tutorial/supervised/MultiLayerNeuralNetworks/
【 在 zishell 的大作中提到: 】
: 求解释
: 全连接层一般都是在最后输出层,bp时relu容易造成神经元死亡?
: 为何对CNN影响不大
【 在 zishell 的大作中提到: 】
: 求解释
: 全连接层一般都是在最后输出层,bp时relu容易造成神经元死亡?
: 为何对CNN影响不大
thanks
got it
【 在 simpleon 的大作中提到: 】
: FC层 w.r.t. Weight 的梯度:
: [upload=2][/upload]
: Conv层 w.r.t. Weight 的梯度:
: ...................
【 在 soeaver 的大作中提到: 】
: https://github.com/torch/nn/blob/master/doc/transfer.md#nn.transfer.dok
: torch7的文档,清晰易懂
竟然还有人在用torch,简直不能再感动。。。。。
我怎么觉得torch 比caffe好用很多诶,我的c++太渣了
【 在 cxp1001 的大作中提到: 】
:
: 竟然还有人在用torch,简直不能再感动。。。。。