我可以在输入层之后使用批量规范化层而不规范化我的数据吗?我可以期望获得类似的效果/性能吗?在keras函数中,它是这样的:
x = Input (...) x = Batchnorm(...)(x) ...
字符串
ve7v8dk21#
你可以的但是batchnorm的好处是,除了激活分布的稳定性之外,平均值和标准偏差可能会随着网络的学习而迁移。实际上,在输入层之后设置batchnorm是一个花哨的 * 数据预处理 * 步骤。有时候会有很大的帮助(例如:在线性回归中)。但是,一次性计算整个训练样本的均值和方差比逐批学习更容易,更有效。请注意,batchnorm在性能方面并不是免费的,您不应该滥用它。
fkvaft9z2#
是的,这是可能的,我已经非常成功地将其用于视觉模型。不过,这种方法也有一些优点和缺点,主要优点是:1.在生产中集成模型时,您不能忘记规范化步骤,因为它是模型本身的一部分(这种情况比您想象的要频繁)。1.规范化是以这种方式感知数据增强的。其主要缺点是:1.如果您已经有可用的标准化输入,则会增加执行阶段成本。我在这里也详细地写过关于这个主题的文章:在Vision AI模型中,将手动归一化替换为批量归一化。https://towardsdatascience.com/replace-manual-normalization-with-batch-normalization-in-vision-ai-models-e7782e82193c
2条答案
按热度按时间ve7v8dk21#
你可以的但是batchnorm的好处是,除了激活分布的稳定性之外,平均值和标准偏差可能会随着网络的学习而迁移。
实际上,在输入层之后设置batchnorm是一个花哨的 * 数据预处理 * 步骤。有时候会有很大的帮助(例如:在线性回归中)。但是,一次性计算整个训练样本的均值和方差比逐批学习更容易,更有效。请注意,batchnorm在性能方面并不是免费的,您不应该滥用它。
fkvaft9z2#
是的,这是可能的,我已经非常成功地将其用于视觉模型。不过,这种方法也有一些优点和缺点,主要优点是:
1.在生产中集成模型时,您不能忘记规范化步骤,因为它是模型本身的一部分(这种情况比您想象的要频繁)。
1.规范化是以这种方式感知数据增强的。
其主要缺点是:
1.如果您已经有可用的标准化输入,则会增加执行阶段成本。
我在这里也详细地写过关于这个主题的文章:在Vision AI模型中,将手动归一化替换为批量归一化。https://towardsdatascience.com/replace-manual-normalization-with-batch-normalization-in-vision-ai-models-e7782e82193c