批量归一化和辍学订购?
conv-neural-network
neural-network
python
tensorflow
7
0

最初的问题是关于TensorFlow实现的。但是,答案是针对一般的实现。这个通用答案也是TensorFlow的正确答案。

在TensorFlow中使用批量归一化和辍学时(特别是使用contrib.layers),我需要担心订购吗?

如果我在退出后立即使用批处理规范化,则可能会出现问题。例如,如果批次归一化训练中的偏移量训练输出的比例尺数字较大,但随后将相同的偏移量应用于较小的比例尺数字(由于补偿了具有更多输出量)的比例尺数字,而在测试过程中没有丢失,则轮班可能关闭。 TensorFlow批处理规范化层会自动对此进行补偿吗?还是由于某种原因我不会想念这件事吗?

另外,将两者一起使用时还有其他陷阱吗?例如,假设我使用他们以正确的顺序在关于上述(假设一个正确的顺序),可以存在与使用分批正常化和漏失在多个连续层烦恼?我没有立即看到问题,但是我可能会丢失一些东西。

非常感谢!

更新:

实验测试似乎表明排序确实很重要。我在相同的网络上运行了两次,但批次标准和退出均相反。当辍学在批处理规范之前时,验证损失似乎会随着培训损失的减少而增加。在另一种情况下,它们都下降了。但就我而言,运动缓慢,因此在接受更多培训后情况可能会发生变化,这只是一次测试。一个更加明确和明智的答案仍然会受到赞赏。

参考资料:
Stack Overflow
收藏
评论
共 6 个回答
高赞 时间 活跃

正如评论中所指出的, 这里是阅读层顺序的绝佳资源。我已经浏览了评论,这是我在互联网上找到的主题的最佳资源

我的2美分:

辍学是指完全阻止某些神经元发出的信息,以确保神经元不共适应。因此,批处理规范化必须在退出之后进行,否则您将通过规范化统计信息传递信息。

如果考虑一下,在典型的机器学习问题中,这就是我们不计算整个数据的均值和标准差,然后将其分为训练,测试和验证集的原因。我们拆分并计算训练集上的统计信息,并使用它们对验证和测试数据集进行归一化和居中

所以我建议方案1(这考虑了伪马文对已接受答案评论)

-> CONV / FC-> ReLu(或其他激活)->退出-> BatchNorm-> CONV / FC

与方案2相反

-> CONV / FC-> BatchNorm-> ReLu(或其他激活)->退出-> CONV / FC->接受的答案

请注意,这意味着与方案1下的网络相比,方案2下的网络应显示出过拟合的状态,但是OP进行了上述测试,并且它们支持方案2

收藏
评论

在《 Ioffe and Szegedy 2015》中 ,作者指出“我们希望确保对于任何参数值,网络始终以期望的分布产生激活”。因此,批处理规范化层实际上是在转换层/完全连接层之后,但在馈入ReLu(或任何其他种类的)激活之前插入的。有关详情,请在53分钟左右观看此视频

就辍学而言,我相信辍学是在激活层之后应用的。在丢弃纸图3b中,将隐藏层l的丢弃因子/概率矩阵r(l)应用于y(l),其中y(l)是应用激活函数f之后的结果。

因此,总而言之,使用批处理规范化和退出的顺序为:

-> CONV / FC-> BatchNorm-> ReLu(或其他激活)->退出-> CONV / FC->

收藏
评论

为了获得更好的性能,基于研究论文 ,我们应该在应用Dropouts之前使用BN

收藏
评论

我找到了一篇论文,解释了Dropout和Batch Norm之间的不和谐。关键思想是他们所谓的“方差转移” 。这是因为,辍学在训练和测试阶段之间的行为有所不同,这改变了BN学习的输入统计数据。主要思想可以在此图中找到,该图取自论文: https : //arxiv.org/abs/1801.05134 在此处输入图片说明

可以在此笔记本中找到有关此效果的小型演示https://github.com/adelizer/kaggle-sandbox/blob/master/drafts/dropout_bn.ipynb

收藏
评论

正确的顺序为:转换>规范化>激活>退出>池化

收藏
评论

通常,只要删除Dropout (当您拥有BN ):

  • “在某些情况下,BN消除了对Dropout的需求,因为BN直观上提供了与Dropout类似的正则化好处”
  • “诸如ResNet,DenseNet等的架构未使用Dropout

有关更多详细信息,请参见本文[ 通过方差Shift理解辍学和批处理规范化之间的不和谐 ],如@Haramoz在评论中已经提到的。

收藏
评论
新手导航
  • 社区规范
  • 提出问题
  • 进行投票
  • 个人资料
  • 优化问题
  • 回答问题

关于我们

常见问题

内容许可

联系我们

@2020 AskGo
京ICP备20001863号