我看到 Layer Normalization 是比 Batch Normalization 更现代的规范化方法,在 Tensorflow 中编码非常简单。但我认为层归一化是为 RNN 设计的,批量归一化是为 CNN 设计的。我可以使用处理图像分类任务的 CNN 层归一化吗?选择批量标准化或层的标准是什么?
问问题
7534 次
2 回答
7
您可以Layer normalisation
在 CNN 中使用,但我不认为它比Batch Norm
. 他们都以不同的方式正常化。Layer norm
通过从层中的每个单元收集统计信息来规范化批次中单个层的所有激活,同时batch norm
针对每个单个激活对整个批次进行规范化,其中为批次中的每个单元收集统计信息。
Batch norm
通常比layer norm
它更受欢迎,因为它试图将每个激活归一化为单位高斯分布,同时layer norm
试图将所有激活的“平均”归一化为单位高斯分布。但如果批量太小而无法收集合理的统计信息,则layer norm
首选。
于 2017-07-06T11:12:56.593 回答
7
我还想补充一点,正如Layer Norm 的原始论文第 10 页第 6.7 节所述,不建议使用 Layer Norm,作者告诉 CNN 必须进行更多研究
另外,提醒一下——对于 RNN,Layer norm 似乎比 Batch Norm 更好,因为在同一个 minibatch 中训练用例的长度可以不同
于 2018-01-05T05:37:41.473 回答