When Error Surface is Rugged

一种情况:

所以,我们可以让不同的 dimension 到一个类似的数值范围,就会有更好地 Error Surface

Feature Normalization

Batch Normalization

Training

在实践中,对 或者 做 normalization 都有,影响并没有那么大。对于 ,先做会好一些,因为 0 处斜率大,可以有效拉开不同 dimension 的差异

所以这一步会导致,一个输入和所有输出都关联,相当于一个巨大的网络,收到一批输入,给出一批输出。
在实际中,我们不可能计算所有样本的标准化,所以一般是在一个 batch 内做,因此得名Batch Normalization在 Batch Size 比较大的时候更有效。

实际情况中,会再后面再进行一点变换,防止 normalization 抹除了维度间均值和大小的差异,降低网络表达能力。初始时, 为全 1 向量, 为全 0 向量,然后作为神经层的学习参数,自主学习修改。

Testing

EMA,指数滑动平均

Other Normalization

Norm统计维度是否用 batchtrain / test 行为
BatchNorm(按 C)不同
InstanceNorm(按 N,C)一样
LayerNorm(按 N)一样
GroupNorm一样