Dropout vs BatchNormalization

本文对比了Dropout和BatchNormalization两种防止神经网络过拟合的技术。Dropout通过随机忽略部分神经元减少依赖,而BatchNormalization通过正则化数据分布和加速训练稳定性。两者在神经网络的不同位置和阶段发挥效果,如Dropout适用于全连接层,而BatchNormalization适合在卷积层和激活层之间插入。
摘要由CSDN通过智能技术生成

Dropout
Dropout是神经网络中防止模型过拟合的重要正则化方式。2014年 Hinton 提出了一个神器,
《Dropout: A Simple Way to Prevent Neural Networks from Overfitting 》。原文:(http://jmlr.org/papers/v15/srivastava14a.html)。
dropout 是指在深度学习网络的训练过程中,按照一定的概率将一部分神经网络单元暂时从网络中丢弃,相当于从原始的网络中找到一个更瘦的网络。
在这里插入图片描述
一般情况下,我们只需要在网络存在过拟合风险时才需要实现正则化。如果网络太大,如果训练时间太长,或者没有足够的数据,就会发生这种情况。如果在卷积网络末端有全连接层,那么实现Dropout是很容易的。

在大规模的神经网络中有这样两个缺点:1. 费时;2. 容易过拟合

对于一个有 N 个节点的神经网络,有了 dropout后,就可以看做是 2^N 个模型的集合了,但此时要训练的参数数目却是不变的,这就缓解了费时的问题。

Dropout层只适用于CNN的全连接层,放在激活函数之后,对于其它层,不应该使用Dropout层。相反,应该在卷积之间插入批量标准化处理,BatchNormalization层,使得模型在训练期间更加稳定。

Batch Normalization
Batch Normalization是批量正则化,也是正则化的一个重要方式。原文:(http://de.arxiv.org/pdf/1502.03167)。BN重新调整数据的分布,使数据服从均值为0,方差为1的正态分布。在正则化效果的基础上,批处理规范化还可以减少卷积网络在训练过程中的梯度弥散。这样可以减少训练时间,提升结果。在CNN使用BN层时需要在卷积层和激活层之间插入BN层,(BN层的位置:CONV / FC - > Batch Normalization- > ReLu(或其他激活) - > Dropout - > CONV / FC)或者(BN层的位置:CONV / FC - > ReL

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值