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 | 统计维度 | 是否用 batch | train / test 行为 |
|---|---|---|---|
| BatchNorm | (按 C) | 是 | 不同 |
| InstanceNorm | (按 N,C) | 否 | 一样 |
| LayerNorm | (按 N) | 否 | 一样 |
| GroupNorm | 否 | 一样 |