nlp-keypoints
  • 前言
  • 中文NER掠影
    • overview
    • LatticeLSTM
    • WC-LSTM
    • SoftLexicon
    • FLAT
    • LEBERT
    • 中文NER总结
  • Embedding知识板块
    • Word2Vec
    • Transformer
    • Bert
    • XLNet
    • Albert
    • Roberta
  • ML/DL基础板块
    • 特征工程
    • 初始化
    • 激活函数
    • 正则化
    • Dropout
    • 损失函数
    • 优化方法
    • Attention
    • CNN
    • LSTM
    • CRF
    • Jieba分词原理
    • 其他统计学习
  • 知识图谱板块
    • Brat标注
    • NER
    • NRE
    • 远程监督
    • 事件图谱/事理图谱
  • 文本分类知识板块
    • FastText
    • TextCNN
    • DPCNN
  • 相似匹配板块
    • Ranking Loss
    • 匹配模型
  • 树模型知识板块
    • 决策树考点
    • Bagging vs Boosting
    • GBDT考点
    • Xgboost
  • 面试复盘整理
    • MM科技
    • V哥面的知识图谱
    • HS
    • HSJY
    • HM医疗
    • 平安科技
    • M科技
由 GitBook 提供支持
在本页
  • 问题1:Inverted Dropout是如何操作的?
  • 问题2:Dropout在remain-rate为0.5和1时,导致预测结果不同的原理分析?
  • 问题3:为什么Dropout会缓解过拟合?
  • 问题4:为什么加Dropout训练时间要比不加时间长?

这有帮助吗?

  1. ML/DL基础板块

Dropout

上一页正则化下一页损失函数

最后更新于5年前

这有帮助吗?

在面试中,面到了Dropout的内容,我对于他的印象是仅在训练时生效,预测时并不生效,但是对于底层的原理和探究并没有掌握的很透彻,导致面试问题直接GG。

问题1:Inverted Dropout是如何操作的?

dropout 有两种实现方式:Vanilla Dropout 和 Inverted Dropout。

前者是 中的朴素版,后者在 Andrew Ng 的 课程中有介绍。

  • Vanilla Dropout

    在vanilla Dropout中,因为使用伯努利二项分布的随机变量使得有1-p的神经元失活,在梯度更新的中,会对保留下来的占比为p的神经元参与了训练,而在预测时是由全部神经元参与预测的,从概率统计上来看,在预测时期望会比训练时放大了1/p倍,所以会在预测时根据dropout策越做调整,很麻烦。

  • Inverted Dropout

    在Inverted Dropout中,是在训练阶段进行了缩放操作。在选择1-p的神经元失活的同时,会对再除掉一个p用于数据缩放,然后再参与正向传播和反向更新。这样就会保证训练和与预测时,不会因Dropout带来的神经元失活而导致数学期望发生变化(但是方差会变的哦~~)。

问题2:Dropout在remain-rate为0.5和1时,导致预测结果不同的原理分析?

考察的内容其实在于:Inverted Dropout在做缩放的时候,虽然保证了期望不变,但是会有方差的偏移。

下图取自于论文:

我们知道,在Inverted Dropout在训练时,对Dropout后的数据进行了1/p倍的放大,用来保证期望不变。但是方差呢?

我们另XXX表示α∼Bernoulli(p)\alpha \sim Bernoulli(p)α∼Bernoulli(p),另YYY表示x∼N(0,1)x \sim N(0,1)x∼N(0,1)。

在XXX与YYY独立时,有E(XY)=E(X)E(Y)E(XY)=E(X)E(Y)E(XY)=E(X)E(Y)。下面对于D(XY)D(XY)D(XY)进行一步整理。

D(XY)=E(X2Y2)−E2(XY)=E(X2)E(Y2)−E2(XY)=[D(X)+E2(X)][D(Y)+E2(Y)]−E2(XY)=D(X)D(Y)+D(X)E2(Y)+D(Y)E2(X)+E2(X)E2(Y)−E2(XY)=D(X)D(Y)+D(X)E2(Y)+D(Y)E2(X)\begin{align} D(XY)&= E(X^2Y^2)-E^2(XY)\\\\ &= E(X^2)E(Y^2)-E^2(XY)\\\\ &= \big[D(X)+E^2(X)\big]\big[D(Y)+E^2(Y)\big]-E^2(XY)\\\\ &= D(X)D(Y)+D(X)E^2(Y)+D(Y)E^2(X)+E^2(X)E^2(Y)-E^2(XY)\\\\ &= D(X)D(Y)+D(X)E^2(Y)+D(Y)E^2(X) \end{align}D(XY)​=E(X2Y2)−E2(XY)=E(X2)E(Y2)−E2(XY)=[D(X)+E2(X)][D(Y)+E2(Y)]−E2(XY)=D(X)D(Y)+D(X)E2(Y)+D(Y)E2(X)+E2(X)E2(Y)−E2(XY)=D(X)D(Y)+D(X)E2(Y)+D(Y)E2(X)​​

再来看,XXX为伯努利二项分布,E(X)=pE(X)=pE(X)=p,D(X)=p(1−p)D(X)=p(1-p)D(X)=p(1−p)。YYY为0-1正态分布,E(Y)=0E(Y)=0E(Y)=0,D(Y)=1D(Y)=1D(Y)=1。

则有:

D(1pXY)=1p2(D(X)D(Y)+D(X)E2(Y)+D(Y)E2(X))=1p2(p(1−p)+1×p2)=1p\begin{align} D(\frac{1}{p}XY)&=\frac{1}{p^2}\big(D(X)D(Y)+D(X)E^2(Y)+D(Y)E^2(X)\big)\\\\ &= \frac{1}{p^2}\big(p(1-p)+1\times p^2\big)\\\\ &= \frac{1}{p} \end{align}D(p1​XY)​=p21​(D(X)D(Y)+D(X)E2(Y)+D(Y)E2(X))=p21​(p(1−p)+1×p2)=p1​​​

这回我们再回到问题本身上来看:

在使用remain-rate为0.5和1时,训练时的期望相同,方差不同,一个是2一个是1;这样会导致训练学习得到的模型参数产生变化,数据分布在方差上存在差异,所以最后,会导致预测结果在概率上会存在差异。

问题3:为什么Dropout会缓解过拟合?

先来比较口语化的解释吧,后面找到比较数学再补充过来吧!

  1. 取平均的作用:

    dropout掉不同的隐藏神经元就类似在训练不同的网络,随机删掉一半隐藏神经元导致网络结构已经不同,整个dropout过程就相当于对很多个不同的神经网络的综合结果取平均。而不同的网络产生不同的过拟合,一些互为“反向”的拟合相互抵消就可以达到整体上减少过拟合。

  2. 减少神经元之间复杂的共适应关系:

    dropout强迫神经单元和随机挑选出来的其他神经单元共同工作,达到好的效果,这样权值的更新不再依赖于有固定关系的隐含节点的共同作用,阻止了某些特征仅仅在其它特定特征下才有效果的情况 。消除减弱了神经元节点间的联合适应性,增强模型的鲁棒性。

问题4:为什么加Dropout训练时间要比不加时间长?

Dropout因为在每次更新时,是只更新到了

(待定)

参考资料:

https://blog.csdn.net/program_developer/article/details/80737724
原始论文
cs231
《Understanding the disharmony between dropout and batch normalization by variance shift》