我可以在CNN上使用Layer Normalization吗?

时间:2017-07-06 06:24:10

标签: tensorflow deep-learning normalization data-processing batch-normalization

我看到Layer Normalization是现代规范化方法而不是Batch Normalization,在Tensorflow中编码非常简单。 但我认为图层标准化是针对RNN设计的,以及CNN的批量标准化。 我可以使用与处理图像分类任务的CNN进行图层规范化吗? 选择批量标准化或图层的标准是什么?

2 个答案:

答案 0 :(得分:4)

你可以在CNN中使用Layer normalisation,但我不认为它更像现代'比Batch Norm。它们都标准化不同。 Layer norm通过从层中的每个单元收集统计信息来规范化批处理中单个层的所有激活,而batch norm为每个单个激活标准化整个批处理,其中为每个单元收集统计数据整个批次。

Batch norm通常比layer norm更受欢迎,因为它会尝试将每次激活归一化为单位高斯分布,而layer norm则尝试获得“平均值”&#39}。对单位高斯的所有激活。但如果批量太小而无法收集合理的统计数据,则首选layer norm

答案 1 :(得分:3)

我还想补充一点,正如original paper for Layer Norm, page 10 section 6.7中所提到的,不建议使用Layer Norm,作者告诉“CNN必须进行更多的研究”

另外,对于RNN,Layer norm似乎是比Batch Norm更好的选择,因为训练案例在同一个小批量中可以有不同的长度