Multi-Sample Dropout介绍及代码实现

本文介绍了Multi-Sample Dropout,一种改进的dropout技术,旨在加速训练并提高模型泛化能力。它通过在每个训练批次中使用多个具有不同掩码的dropout层,产生多个样本,从而实现类似数据增强的效果,降低了过拟合风险。文章提供了基于PyTorch的代码示例,展示了如何应用Multi-Sample Dropout。
摘要由CSDN通过智能技术生成


前言

随着深度学习的大火,各种深度学习的网络模型层出不穷,但是随着深度网络越来越深,过拟合问题成为了每一个深度学习使用者挥之不去的问题,dropout的出现极大的缓解了这个问题。
在一次进行数据处理竞赛的时候,我和我的小伙伴们很偶然的发现了dropout的一个新变种方法Multi-Sample Dropout,可以很好的帮助我们来上分。Multi-Sample Dropout相当于采用了dropout方法来快速廉价的获得了数据扩充的效果,并且还会加快模型训练的速度。
因此本文主要针对dropout的这种技术变形——Multi-Sample Dropout进行了讲解。

一、什么是drop out?

要了解Multi-Sample Dropout,首先我们要了解什么是dropout。

dropout在深度学习中通常被用来防止模型过拟合。dropout最初由Hinton于2012年在其论文《Improving neural networks by preventing co-adaptation of feature detectors》中提出[1]。我们都知道通常过拟合形成的原因是因为对于复杂的模型(模型参数较多)给定数据规模较小的数据集。因此为了防止模型过拟合,我们可以在每个训练批次中,按照一定的概率暂时随机忽略掉一些特征选择器(隐层节点)。这样模型在训练每一批次的数据时都在训练不同的网络,模型不会太依赖某些局部的特征,所以模型的泛化性更强,降低了过拟合发生的概率。

dropout

图1: Dropout 示意图 [1]

二、Multi-Sample Dropout

Multi-Sample Dropout是对dropout方法的一种改进(论文:Multi-Sample Dropout for Accelerated Training and Better Generalization)[2]。Multi-Sample Dropout相比于dropout加快了模型训练过程的收敛速度和提高了泛化能力。通过论文中的图片(图2),我们可以简单直观的了解到multi-sample dropout与dropout的区别。

图2的左侧为传统的dropout,右侧为论文中新提出的multi-sample dropout。multi-sample dropout与dropout的差别主要集中在dropout层、全连接层、分类层。在multi-sample dropout中的每一个样本经过多个具有不同掩码的dropout层,得到多个不同的样本。但是在这些不同的dropout任务之间全连接层会共享参数,然后分别对这多个样本使用与原始dropout相同的激活函数和损失函数。最后对得到的多个损失取平均值。这就是multi-sample dropout的整个训练过程。

PS:本例子中multi-sample dropout只使用了两个dropout样本,在实际使用中,我们可以根据需要来调节multi-sample dropout 中dropout 样本的数量。

在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值