layer normalization公式
Layer normalization是一种神经网络正则化方法,它应用于深度神经网络的每一层中,用于稳定网络的训练和加速收敛过程。Layer normalization的公式是基于batch normalization的公式发展而来,它通过对每个样本在每个特征上的标准差进行归一化来实现对层内中心值的规范化。本文将详细介绍layer normalization的公式及其作用。
1. 基本公式
Layer normalization的基本公式如下:
$$ LN(x_{i,j}) = \frac{x_{i,j} - \mu_i}{\sqrt{\sigma_i^2+\epsilon}}*\gamma_i+\beta_i $$
其中,$x_{i,j}$表示第i个样本中特征j的值;$\mu_i = \frac{1}{N}\sum_{j=1}^{m}x_{i,j}$是第i个样本中所有特征的平均值;$\sigma_i^2 = \frac{1}{N}\sum_{j=1}^{m}(x_{i,j}-\mu_i)^2$是第i个样本中所有特征的方差;$\gamma_i$是可学习参数,其规模与每个特征相同,用于缩放特征;$\beta_i$是可学习参数,其规模与每个特征相同,用于偏置特征。$\epsilon$是一个小的常数,用于防止方差为零的情况。这里,$\mu$和$\sigma^2$是在样本级别上计算的,而不是
batch级别上,这使得该算法更适合于小batch大小的情况。
正则化 归一化2. layer normalization的作用
在深度神经网络中,层与层之间的分布具有非常大的变化,这是由于每一层都使用不同的参数和激活函数,因此,输入数据的分布往往是高度不同的。Batch normalization可以适用于批量级别的归一化,但是不适用于样本级别的归一化,特别是对于小batch大小的情况会出现较大的随机波动。 Layer normalization做到了数据归一化的效果,同时也具有抑制过拟合的效果,因为它在每个特征上分别设置了缩放和偏置参数,这可以使模型更加适合训练集数据,并减少测试集数据的泛化误差。此外,layer normalization也可以使得神经网络在相同的训练步骤中收敛更快,并帮助解决梯度消失和梯度弥散问题。
3. layer normalization vs. batch normalization
Layer normalization和batch normalization是两种不同的归一化方式。Batch normalization将输入数据沿着batch大小的方向进行归一化,而layer normalization则是沿着特征大小的方向进行归一化。因此,layer normalization相对于batch normalization来说具有以下优点:
a. 更小的batch大小:layer normalization在每个样本级别上进行归一化,因此可以适用更小的batch大小,对于像语音识别这类需要长时间序列训练的任务来说,这个优点非常明显。
b. 更稳定的泛化效果:layer normalization的归一化方式更加稳定,因此适用于在训练样本不足情况下进行泛化的任务。batch normalization在训练和测试阶段之间需要考虑batch大小的影响,如果测试batch大小和训练batch大小不同,则会引起不同批次之间的不稳定性。
c. 消除covariate shift:layer normalization可以消除covariate shift问题,这是由于后者进行的是样本级别的归一化。而batch normalization的归一化方式是基于batch的,因此解决不了数据分布在连续时间上变化的问题,并且存在难以处理的异常情况,例如当数据开始稀疏时会出现零方差值,而进行变量缩放会残余差异。
4. 总结
Layer normalization是一种有效的神经网络正则化方法,其目的是在保证数据有效归一化的前提下提升模型的泛化能力和消除层与层之间分布的不稳定性。Layer normalization的公式是基于batch normalization的公式发展而来,它通过对每个样本在每个特征上的标准差进行
归一化来实现对层内中心值的规范化。与batch normalization相比,layer normalization可以适用更小的batch大小,更稳定的泛化效果,并消除covariate shift的问题。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。