BatchNorm与LayerNorm

BatchNorm批量归一化:批量归一化是对一个中间层的单个神经元进行归一化操作。计算第l层网络中每个神经元在Batch大小为N的样本上输出的N个结果,计算每个神经元输出的N个结果的均值和方差,然后使用均值和方差来对这N个输出结果做归一化,所以归一化的维度是在Batch上进行的

LayerNorm层归一化:层归一化是对一个中间层的所有神经元进行归一化。计算第l层网络中的每个神经元在Batch中每个输入样本的输出,对于每个输入样本,计算所有神经元输出结果的均值和方差,使用均值和方差来归一化对于这个输入样本的输出结果,所以归一化的维度以在整个层上进行的

LocalResponseNorm局部响应归一化:

BatchNorm与LayerNorm_第1张图片

区别:层归一化和批量归一化整体上是十分类似的差别在于归一化的方法不同对于K个样本的一个Batch集合:

层归一化是对矩阵的每一列进行归一化(也就是在整个层上),批量归一化是对每一行进行归一化(也就是在整个Batch的每个维度上)。

BatchNorm和LayerNorm图解:

假设神经网络的某全连接层有M个神经元,输入Batch大小为N:

BatchNorm与LayerNorm_第2张图片

 

你可能感兴趣的:(机器学习,深度学习,正则化,BatchNorm,LayerNorm,LRN)