神经网络训练过程避免过拟合问题的利器——dropout

L1、L2正则化是通过修改代价函数来实现防止过拟合的,而 Dropout则是通过修改神经网络本身来实现 的,它是在训练网络时用的一种技巧(trike)。在模型训练时按照一定的概率 暂时让网络某些隐含层节点的权 重不工作(也称丢弃),不工作的那些节点可以暂时认为不是网络结构的一部分,但是它的权重得保留下来, 对于神经网络单元,按照一定的概率将其暂时从网络中丢弃。对于随机梯度下降来说,由于是随机丢弃,故而 每一个mini-batch都在训练不同的网络。这样 阻止特征检测器的共同作用,减弱了神经元节点间的联合适应性, 增强了泛化能力,提高神经网络的性能。

 

 

TensorFlow中,可以用一个placeholder来代表一个神经元 的输出在 dropout 中保持不变的概率。这样我们可以在训 练过程中启用dropout,在测试过程中关闭dropout。 TensorFlow的 tf.nn.dropout操作除了可以屏蔽神经元的 输出外,还会自动处理神经元输出值的 scale。所以用 dropout的时候可以不用考虑 scale。

实例代码(片段):

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值