Multi-Sample Dropout

1. 模型结构

orginal dropout  : 对单个样本,进行单次drop out。

original dropout vs multi-sample dropout

2. 思想

    stacking方法中的子模型。事实证明,用多个子模型做模型融合可以提高模型的性能。

    训练时,对原始数据进行变换,创建出多个分身。分身可能是带噪音,可能是不完整(此方法)。从而提高泛化能力。

3. 实现方法

    训练阶段,每次dropout首先会随机的选取50%(这个比例可以自己设置)的神经元,其他50%被丢弃。

    通过多次的dropout,从特征中选择了不同的特征子集进行训练,相当于重采样。

    再通过共享的全连接层和loss层。

    loss:每条样本,多个分身,得到的多个loss的平均值最小。

4. 优点

    加快收敛,性能提升。dropout只使用在最后的几层,而全连接层的训练时间较快。因此,对比更大的 mini-batch,虽然可以达到相同的效果,但是实际上会增加计算的耗时。

    实现简单:在 dropout 层后复制部分训练网络,并在这些复制的全连接层之间共享权重就可以了,无需新运算符。

5. 发散

    传统的机器学习算法,如排序中常用的树模型。stack思想下,得到了不同的树。如果就用一棵树呢??泛化能力能变强吗?

    Stacking是通过一个元分类器或者元回归器来整合多个分类模型或回归模型的集成学习技术。基础模型利用整个训练集做训练,元模型将基础模型的特征作为特征进行训练。(N->1) 。基础模型通常包含不同的学习算法,因此stacking通常是异质集成。

6. 缺点

    1)模型的设计,存在训练和预测不一致问题。训练时,Dropout 往(某些层的)输入加上了乘性噪声。而预测时,理论上,应该是对同一个输入多次传入模型中(模型不关闭Dropout),然后把多次的预测结果平均值作为最终的预测结果。实际上,预测的时候用的是关闭Dropout的单模型,两者未必等价,这就是Dropout的训练预测不一致问题。

    2)损失函数的设计,只有交叉熵。如果只有交叉熵这一项,模型的训练结果是“不同的Dropout下,目标类的得分都大于非目标类的得分”。

链接:https://kexue.fm/archives/8496

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 1 为什么要对特征做归一化 特征归一化是将所有特征都统一到一个大致相同的数值区间内,通常为[0,1]。常用的特征归...
    顾子豪阅读 6,815评论 2 22
  • 1 为什么要对特征做归一化 特征归一化是将所有特征都统一到一个大致相同的数值区间内,通常为[0,1]。常用的特征归...
    顾子豪阅读 1,468评论 0 1
  • 一. 数学基础 1. 最大似然估计,最大后验概率、贝叶斯估计 参考: https://blog.csdn.net/...
    木木xixi1997阅读 1,651评论 0 1
  • 1、数据量比较大的时候,svm和lr哪个更快? svm适用于相对稀疏的数据,所以xgb的效果比svm要好。面试官也...
    DaiMorph阅读 2,317评论 0 0
  • id: 9vyvlNjQhL0ZiLxDj0Apotitle: Kerasdesc: 《Deep Learning...
    walkerwzy阅读 652评论 0 0