1. 简介
Batch Normalization是深度学习中常用的技巧,Batch Normalization: Accelerating Deep Network Training by Reducing Internal Covariate Shift (Ioffe and Szegedy, 2015) 第一次介绍了这个方法。
这个方法的命名,明明是Standardization, 非要叫Normalization, 把本来就混用、意义不明的两个词更加搅得一团糟。那standardization 和 Normalization有什么区别呢?
一般是下面这样(X是输入数据集):
- normalization(也叫 min-max scaling),一般译做 “归一化”:

- standardization,一般译做 “标准化”:

Batch-Norm 是一个网络层,对中间结果作上面说的 standardization 操作。实际上 standardization 也可以叫做 Z-score normalization。所以可以这样理解,standardization 是一种特殊的 normalization。normalization 作为一个 scaling 的大类,包括 min-max scaling,standardization 等。
2. BatchNorm
对输入进行标准化的时候,计算每个特征在样本集合中的均值、方差;然后将每个样本的每个特征减去该特征的均值,并除以它的方差。用数学公式表示,即:

而所谓的BatchNorm, 就是神经网络中间,在一小撮batch样本中进行标准化。具体如下(B: batch size)

注意,BatchNorm作为神经网络的一层,是有两个参数要训练的,分别称为拉伸和偏移参数。可能你会有疑问,既然已经对
作了标准化得到了
,为什么还要用
将它“还原”呢?
实际上,设置这两个参数是为了给神经网络足够的自由度。如果经过训练

本文详细解释了BatchNormalization在深度学习中的作用,区分了标准化和标准化的区别,探讨了BN的特点、位置选择以及与其他标准化方法如LayerNorm和GroupNorm的差异。同时提到了BatchNorm在Transformer和PyTorchResNet中的应用实例。
最低0.47元/天 解锁文章
1800

被折叠的 条评论
为什么被折叠?



