聊聊深度学习中的两个超参数batch-size与drop-out

好久没有在csdn中发过文章了,最近接触了不少机器学习与人工智能的内容。今天聊聊关于深度学习中的batch-size与drop-out这两个参数。

在深度学习中,涉及到一个参数batch-size,关于这个参数:

关于BATCH_SIZE

BATCH_SIZE:即一次训练所抓取的数据样本数量;

BATCH_SIZE的大小影响训练速度和模型优化,同时其大小同样影响每一epoch训练模型次数。

BATCH_SIZE带来的好处

最大的好处在于使得CPU或GPU满载运行,提高了训练的速度。

其次是使得梯度下降的方向更加准确。

如果batch-size过低,就会出现梯度变化波动大,网络不容易收敛的结果,那么,为什么不直接把梯度设置成训练集样本数量呢?

如果这样设置,相当于直接抓取整个数据集,训练时间长,但梯度准确。但不适用于大样本训练,只适用于小样本训练,但小样本训练一般会导致过拟合现象。

若BATCH_SIZE=1;梯度变化波动大,网络不容易收敛。

若BATCH_SIZE设置合适,梯度会变准确。

此时再增加BATCH_SIZE大小,梯度也不会变得更准确。

同时为了达到更高的训练网络精度,应该增大epoch,使训练时间变长。

关于drop-out

在机器学习的模型中,如果模型的参数太多,而训练样本又太少,训练出来的模型很容易产生过拟合的现象。在训练神经网络的时候经常会遇到过拟合的问题,过拟合具体表现在:模型在训练数据上损失函数较小,预测准确率较高;但是在测试数据上损失函数比较大,预测准确率较低。

过拟合是很多机器学习的通病。如果模型过拟合,那么得到的模型几乎不能用。为了解决过拟合问题,一般会采用模型集成的方法,即训练多个模型进行组合。此时,训练模型费时就成为一个很大的问题,不仅训练多个模型费时,测试多个模型也是很费时。

综上所述,训练深度神经网络的时候,总是会遇到两大缺点:

(1)容易过拟合

(2)费时

Dropout可以比较有效的缓解过拟合的发生,在一定程度上达到正则化的效果。

drop-out实现了什么

Dropout可以作为训练深度神经网络的一种trick供选择。在每个训练批次中,通过忽略一半的特征检测器(让一半的隐层节点值为0),可以明显地减少过拟合现象。这种方式可以减少特征检测器(隐层节点)间的相互作用,检测器相互作用是指某些检测器依赖其他检测器才能发挥作用。

具体可用一张图来表示:

Dropout为什么可以缓解过拟合

  1. 集成的作用:训练的时候每个批次仅仅使用了一部分的神经元,并且每次使用的神经元不相同,相当于使用了不同的数据训练了多个模型,测试的时候,所有的神经元都其到作用,但是是以一定权重起作用的。所以相当于训练阶段训练了多个模型,测试阶段集成了多个模型。多个模型集成可以有效缓解过拟合。
  2. 减少神经元之间复杂的共适应关系:即减少神经元之间的固定的依赖关系。由于Dropout每轮都会随机失活,导致神经元每次依赖的前一层的神经元都不一样,使得参数的学习不会依赖于固定关系的隐含节点,阻止了某些神经元的学习仅仅依赖于某些特定神经元才有效的现象,这样可以增强模型的泛化能力。换句话说假如我们的神经网络是在做出某种预测,它不应该对一些特定的线索片段太过敏感,即使丢失特定的线索,它也应该可以从众多其它线索中学习一些共同的特征。这种作用有点类似于L2正则化,L2正则化的作用也是分散权重。Dropout也是一种正则化方法。

 

  • 12
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值