gpt4 book ai didi

machine-learning - "batch normalizaiton"是什么?为什么使用它?它如何影响预测?

转载 作者:行者123 更新时间:2023-11-30 08:27:58 25 4
gpt4 key购买 nike

最近,许多深度架构使用“批量归一化”进行训练。

什么是“批量归一化”?它在数学上有什么作用?它对培训过程有何帮助?

训练期间如何使用批量归一化?它是插入到模型中的特殊层吗?我需要在每一层之前标准化,还是只需要标准化一次?

假设我使用批量归一化进行训练。这会影响我的测试时模型吗?我应该用“部署”网络中的其他/等效层/操作替换批量标准化吗?

<小时/>

This question关于批量归一化仅涵盖了这个问题的一部分,我的目标是并希望得到更详细的答案。更具体地说,我想知道批量归一化训练如何影响测试时间预测,即“部署”网络和网络的测试阶段。

最佳答案

批量归一化适用于可能遭受有害漂移的层。数学很简单:找到每个分量的均值和方差,然后应用标准变换将所有值转换为相应的 Z 分数:减去均值并除以标准差。这确保了组件范围非常相似,以便它们都有机会影响训练增量(在反向传播中)。

如果您使用网络进行纯测试(无需进一步训练),则只需删除这些层即可;他们已经完成了他们的工作。如果您在测试/预测/分类时进行训练,则将它们保留在原处;这些操作根本不会损害您的结果,并且几乎不会减慢前向计算的速度。

至于 Caffe 的细节,Caffe 确实没有什么特别的。计算是一个基本的统计过程,对于任何框架来说都是相同的代数。当然,支持向量和矩阵数学的硬件将会有一些优化,但这些优化只是利用芯片的内置运算。

<小时/>

回复评论

如果您能承受一点额外的训练时间,是的,您会希望在每一层进行标准化。在实践中,不太频繁地插入它们(例如,每 1-3 次启动)就可以很好地工作。

您可以在部署中忽略这些,因为它们已经完成了自己的工作:当没有反向传播时,就没有权重漂移。此外,当模型在每个批处理中仅处理一个实例时,Z 分数始终为 0:每个输入恰好是该批处理的平均值(即整个批处理)。

关于machine-learning - "batch normalizaiton"是什么?为什么使用它?它如何影响预测?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41269570/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com