【学习笔记】 失败案例以及丢弃正则化

神经网络有很多情况导致反向传播算法出现问题:

1.梯度消失:较低层(更接近输入层)的梯度非常小,计算这些梯度时可能涉及到很多小项的乘积,较低层的梯度逐渐消失到0时,这些层的训练会非常缓慢,甚至不再训练。ReLU激活函数有助于防止梯度消失。

2.梯度爆炸:如果网络层的权重过大,则较低层的梯度会涉及到许多大项的乘积,在这种情况下梯度就会爆炸,难以收敛。批标准化可以降低学习速率有助于防止梯度爆炸。

3.ReLU单元格消失:一旦 ReLU 单元的加权和低于 0,ReLU 单元就可能会停滞。它会输出对网络输出没有任何贡献的 0 激活,而梯度在反向传播算法期间将无法再从中流过。由于梯度的来源被切断,ReLU 的输入可能无法作出足够的改变来使加权和恢复到 0 以上。降低学习速率有助于防止 ReLU 单元消失。

 

丢弃正则化:

这是称为丢弃的另一种正则化,在梯度下降的过程中随机丢弃一些单元格,丢弃的越多,正则化效果越强

>>>x=np.array([1,2,3,4,5]).astype('float32')
>>>sess.run(tf.nn.dropout(x,keep_prob=0.6))
array([1.6666666, 0.       , 5.       , 6.6666665, 0.       ],
      dtype=float32)

丢弃正则化在train阶段起效,请不要在验证阶段也加入dropout。 keep_prob 为保留率,1为完全不丢弃,0为完全丢弃(不能取到0)。keep_prob的取值范围为(0,1]。输出结果为 原数值*(1/keep_prob)。

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值